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 es posible crear una política de IAM con la que permite a los usuarios federados obtener acceso 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 permisos para el acceso mediante programación y a la consola.Para utilizar esta política, sustituya el texto rojo en cursiva del ejemplo de política 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": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "*" }, { "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}/*" ] } ] }