IAM es identity y access management.

  1. Centralized access
  2. Shared access
  3. Granular permissions (por servicios)
  4. Federation (lo mismo que su windows AD, Facebook, etc)
  5. MFA
  6. Temporal access
  7. Password policies
  8. PCI compliant

No olvidarse que los usuarios nuevos no tienen permisos hay que asignarles una policy.
Un usuario puede tener un access key y un secret key para tener acceso en el CLI y el SDK

S3 es simple storage service

  1. Object based (key (nombre), value (bytes), version id -> como dropbox, metadata y subresources)
  2. Files de 0 a 5 tb
  3. Bucket es un folder
  4. El nombre es https://nombre.region.amazonaws.com por ejemplo https://mexicanpentester.eu-north.amazonaws.com
  5. No puedes usarlo para OS o para databases
  6. Puedes usar MFA delete

S3 Price es ridicula e insultantemente barato.

S3 versioning

  1. Guarda todos los archivos incluidos los borrados
  2. No puede ser desactivado, solo suspendido
  3. Puedes activar MFA para deletes

Lifecycle esta super cool, te deja mover archivos o versiones viejas de los archivos a otros pricing tiers o de plano eliminarlo después de x días.

S3 object lock es WORM (write once, read many)

Sirve para que una vez subido el archivo no lo puedas borrar por x tiempo.

  1. Governance mode, dependiendo del rol del usuario
  2. Compliance mode, nadie lo puede borrar hasta que expira el archivo
  3. Legal hole: es un mix de los de arriba pero es como un tag que le pones al archivo para que no se pueda borrar (como en azure)
  4. Puede ser para S3 y para S3 glacier. Pero con Glacier una vez que pones la policy no la puedes borrar

Performance

  1. Mientras más prefixes más rápido
  2. SSE KMS tiene limites de requests
  3. Puedes usar multipar uploads/downloads (no es opcional para archivos de más de 5 gb)

S3 Select te deja hacer SLQ antes de bajar los archivos

Sirve sobretodo cuando tienes cosas en zip y no quieres bajar, descomprimir y buscar.

r = s3.select_object_content(
        Bucket='jbarr-us-west-2',
        Key='sample-data/airportCodes.csv',
        ExpressionType='SQL',
        Expression="select * from s3object s where s.\"Country (Name)\" like '%United States%'",
        InputSerialization = {'CSV': {"FileHeaderInfo": "Use"}},
        OutputSerialization = {'CSV': {}},
)

for event in r['Payload']:
    if 'Records' in event:
        records = event['Records']['Payload'].decode('utf-8')
        print(records)
    elif 'Stats' in event:
        statsDetails = event['Stats']['Details']
        print("Stats details bytesScanned: ")
        print(statsDetails['BytesScanned'])
        print("Stats details bytesProcessed: ")
        print(statsDetails['BytesProcessed'])

S3 sharing across accounts

  1. Con bucket policies y IAM (programatic only)
  2. Buckets ACML y IAM (programatic only)
  3. Cross account IAM roles

AWS DataSync es un agent que se conecta a tu SMB o tu NFS para subir cosas.

Signed URLs y Cookies

  1. URLs un file
  2. Cookies muchos files
  3. EC2 usa cloufront S3 puede firmar por si mismo.

Storage Gateway

  1. File gateway se guarda en S3
  2. Volume gatwaway:
    1. Stored volumes para entire datasets. Toda la info esta on site y se sincroniza con la nube
    2. Cached volumes todo se guarda en S3 pero lo más accessed se cachea en sitio
  3. Virtual tape library. pues eso…

Athena S3 query por ejemplo para logs

Macie encuentra PII en tu S3