Amazon S3 : autorise les utilisateurs fédérés à accéder à leur répertoire de base S3, par programmation et dans la console - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Amazon S3 : autorise les utilisateurs fédérés à accéder à leur répertoire de base S3, par programmation et dans la console

Cet exemple montre comment vous pouvez créer une politique basée sur l'identité qui autorise des utilisateurs fédérés à accéder à leur propre objet de compartiment de répertoire de base dans S3. Le répertoire de base est un compartiment qui inclut un dossier home et des dossiers pour les utilisateurs fédérés individuels. Cette politique définit des autorisations pour l'accès à la console et par programmation. Pour utiliser cette politique, remplacez le texte de l'espace réservé en italique dans l'exemple de politique par vos propres informations de ressource. Ensuite, suivez les instructions fournies dans create a policy (créer une politique) ou edit a policy (modifier une politique).

La variable ${aws:userid} de cette politique se résout à role-id:specified-name. La partie role-id de l'ID de l'utilisateur fédéré est un identifiant unique attribué au rôle de l'utilisateur fédéré au moment de la création. Pour plus d’informations, veuillez consulter Identifiants uniques. Le specified-name est le Paramètre RôleSessionNom transmis à la demande AssumeRoleWithWebIdentity lorsque l'utilisateur fédéré endosse son rôle.

Vous pouvez consulter l'ID de rôle à l'aide de la commande d'AWS CLI aws iam get-role --role-name specified-name. Par exemple, imaginons que vous spécifiez le nom convivial John et que l'CLI renvoie l'ID de rôle AROAXXT2NJT7D3SIQN7Z6. Dans ce cas, l'ID de l'utilisateur fédéré est AROAXXT2NJT7D3SIQN7Z6:John. Cette politique permet ensuite à l'utilisateur fédéré John d'accéder au compartiment Amazon S3 avec le préfixe 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}/*" ] } ] }