Захист об'єктів

Вступ до AWS Boto в Python

Maksim Pecherskiy

Data engineer

Навіщо дбати про дозволи?

df = pd.read_csv('https://gid-staging.potholes.csv')

Огляд дозволів

Вступ до AWS Boto в Python

Навіщо дбати про дозволи?

Дозвіл надано!

# Generate the boto3 client for interacting with S3
s3 = boto3.client('s3', region_name='us-east-1', 
                         aws_access_key_id=AWS_KEY_ID, 
                         aws_secret_access_key=AWS_SECRET)

# Use client to download a file s3.download_file( Filename='potholes.csv', Bucket='gid-requests', Key='potholes.csv')
Вступ до AWS Boto в Python

Системи дозволів AWS

IAM

Політика бакета

ACL

Попередньо підписаний URL

Вступ до AWS Boto в Python

Системи дозволів AWS

IAM

Політика бакета

ACL

Попередньо підписаний URL

Вступ до AWS Boto в Python

ACL

ACL

Вступ до AWS Boto в Python

ACL

Завантажте файл

s3.upload_file(
  Filename='potholes.csv', Bucket='gid-requests', Key='potholes.csv')

Встановіть ACL на 'public-read'

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='public-read')
Вступ до AWS Boto в Python

Встановлення ACL під час завантаження

Завантажте файл з ACL 'public-read'

s3.upload_file(
  Bucket='gid-requests', 
  Filename='potholes.csv', 
  Key='potholes.csv', 
  ExtraArgs={'ACL':'public-read'})
Вступ до AWS Boto в Python

Доступ до публічних об'єктів

Шаблон URL об'єкта S3

https://{bucket}.{key}

URL для Key='2019/potholes.csv'

https://gid-requests.2019/potholes.csv
Вступ до AWS Boto в Python

Генерація публічного URL об'єкта

Згенеруйте рядок URL об'єкта

url = "https://{}.{}".format(
  "gid-requests", 
  "2019/potholes.csv")

'https://gid-requests.2019/potholes.csv'

# Read the URL into Pandas
df = pd.read_csv(url)
Вступ до AWS Boto в Python

Як ухвалюється доступ

Ієрархія доступу

Вступ до AWS Boto в Python

Як ухвалюється доступ

Ієрархія доступу

Вступ до AWS Boto в Python

Підсумок

IAM

Політика бакета

ACL

Попередньо підписаний URL

Вступ до AWS Boto в Python

Підсумок

Встановіть ACL на 'public-read'

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='public-read')

Встановіть ACL на 'private'

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='private')
Вступ до AWS Boto в Python

Підсумок

Завантажте файл з ACL 'public-read'

s3.upload_file(
  Bucket='gid-requests', 
  Filename='potholes.csv', 
  Key='potholes2.csv', 
  ExtraArgs={'ACL':'public-read'})
Вступ до AWS Boto в Python

Підсумок

Згенеруйте рядок URL об'єкта

url = "https://{}.{}".format(
  "gid-requests", 
  "2019/potholes.csv")

'https://gid-requests.2019/potholes.csv'

# Read the URL into Pandas
df = pd.read_csv(url)
Вступ до AWS Boto в Python

Давайте потренуємось!

Вступ до AWS Boto в Python

Preparing Video For Download...