Amazon S3: permite a los usuarios federados obtener acceso a su directorio principal de Amazon S3, mediante programación y en la consola - AWS Identity and Access Management

Amazon S3: permite a los usuarios federados obtener acceso a su directorio principal de Amazon S3, mediante programación y en la consola

Este ejemplo muestra cómo podría crear una política basada en identidades que permita a las entidades principales federadas acceder a su propio objeto de directorio principal en un bucket de S3. El directorio principal es un bucket que contiene una carpeta home y carpetas para entidades principales federadas individuales. Esta política define los permisos para el acceso programático y a la consola. Para utilizar esta política, sustituya el texto en cursiva de la política de ejemplo por su propia información. A continuación, siga las instrucciones en Crear una política o Editar una política.

La variable ${aws:userid} de esta política se resuelve como role-id:specified-name. La parte role-id del ID de la entidad principal federada es un identificador único asignado al rol de la entidad principal federada durante su creación. Para obtener más información, consulte Identificadores únicos. El specified-name es el parámetro RoleSessionName transferido en la solicitud AssumeRoleWithWebIdentity cuando la entidad principal federada asumió su rol.

Puede ver el ID de rol con el comando aws iam get-role --role-name specified-name de la AWS CLI. Por ejemplo, imagine que especifica el nombre fácil de recordar John y que la CLI devuelve el ID de rol AROAXXT2NJT7D3SIQN7Z6. En este caso, el ID de usuario de la entidad principal federada es AROAXXT2NJT7D3SIQN7Z6:John. Esta política permite entonces que la entidad principal federada John acceda al bucket de Amazon S3 con el prefijo AROAXXT2NJT7D3SIQN7Z6:John.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ConsoleAccess", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}", "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}/*" ] } ] }