Безопасность объектов

Введение в 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

Presigned URL

Введение в AWS Boto на Python

Системы разрешений AWS

IAM

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

ACL

Presigned 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

Presigned 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...