Mantener los objetos seguros

Introducción a AWS Boto en Python

Maksim Pecherskiy

Data engineer

¿Por qué importan los permisos?

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

Resumen de permisos

Introducción a AWS Boto en Python

¿Por qué importan los permisos?

¡Permiso concedido!

# 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')
Introducción a AWS Boto en Python

Sistemas de permisos de AWS

IAM

Política del bucket

ACL

URL prefirmada

Introducción a AWS Boto en Python

Sistemas de permisos de AWS

IAM

Política del bucket

ACL

URL prefirmada

Introducción a AWS Boto en Python

ACLs

ACL

Introducción a AWS Boto en Python

ACLs

Subir archivo

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

Establecer ACL a 'public-read'

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='public-read')
Introducción a AWS Boto en Python

Configurar ACLs al subir

Subir archivo con ACL 'public-read'

s3.upload_file(
  Bucket='gid-requests', 
  Filename='potholes.csv', 
  Key='potholes.csv', 
  ExtraArgs={'ACL':'public-read'})
Introducción a AWS Boto en Python

Acceder a objetos públicos

Plantilla de URL de objeto S3

https://{bucket}.{key}

URL para Key='2019/potholes.csv'

https://gid-requests.2019/potholes.csv
Introducción a AWS Boto en Python

Generar la URL de un objeto público

Generar cadena de URL del objeto

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

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

# Read the URL into Pandas
df = pd.read_csv(url)
Introducción a AWS Boto en Python

Cómo se decide el acceso

Jerarquía de acceso

Introducción a AWS Boto en Python

Cómo se decide el acceso

Jerarquía de acceso

Introducción a AWS Boto en Python

Resumen

IAM

Política del bucket

ACL

URL prefirmada

Introducción a AWS Boto en Python

Resumen

Establecer ACL a 'public-read'

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

Establecer ACL a 'private'

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='private')
Introducción a AWS Boto en Python

Resumen

Subir archivo con ACL 'public-read'

s3.upload_file(
  Bucket='gid-requests', 
  Filename='potholes.csv', 
  Key='potholes2.csv', 
  ExtraArgs={'ACL':'public-read'})
Introducción a AWS Boto en Python

Resumen

Generar cadena de URL del objeto

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

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

# Read the URL into Pandas
df = pd.read_csv(url)
Introducción a AWS Boto en Python

¡Vamos a practicar!

Introducción a AWS Boto en Python

Preparing Video For Download...