Amazon S3: permite a los usuarios federados obtener acceso a su directorio principal de 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 S3, mediante programación y en la consola

En este ejemplo se muestra cómo podría crear una política de IAM que permita a los usuarios federados acceder a su propio objeto de bucket de directorio principal en S3. El directorio principal es un bucket que incluye una carpeta home y carpetas para usuarios federados 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 usuario federado es un identificador exclusivo que se asigna al rol del usuario federado durante la creación. Para obtener más información, consulte Identificadores únicos. El specified-name es el parámetro RoleSessionName que se pasa a la solicitud AssumeRoleWithWebIdentity cuando el usuario federado asume 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 federado es AROAXXT2NJT7D3SIQN7Z6:John. En este caso, la política permite que el usuario federado John tenga acceso al bucket de Amazon S3 con el prefijo AROAXXT2NJT7D3SIQN7Z6:John.

{ "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:::bucket-name", "Condition": { "StringLike": { "s3:prefix": [ "", "home/", "home/${aws:userid}/*" ] } } }, { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucket-name/home/${aws:userid}", "arn:aws:s3:::bucket-name/home/${aws:userid}/*" ] } ] }