Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Comment puis-je autoriser un utilisateur à accéder à un dossier spécifique dans mon compartiment Amazon S3 ?
Je souhaite limiter l'accès d'un utilisateur Gestion des identités et des accès AWS (AWS IAM) à certains dossiers spécifiques dans Amazon Simple Storage Service (Amazon S3).
Résolution
Si l'utilisateur IAM et le compartiment appartiennent au même compte AWS, utilisez une politique IAM pour autoriser l'utilisateur à accéder à un dossier du compartiment. Lorsque vous accordez l'accès dans la politique IAM, il n'est pas nécessaire de mettre à jour la politique de compartiment. Cependant, si la politique de compartiment Amazon S3 refuse explicitement à l'utilisateur IAM d'accéder au dossier, vous devez la mettre à jour.
Si l'utilisateur IAM et le compartiment S3 appartiennent à des comptes différents, vous devez accorder l'accès à la fois dans la politique IAM et dans la politique de compartiment. Pour en savoir plus, consultez la section Comment puis-je autoriser un utilisateur appartenant à un autre compte AWS à charger des objets dans mon compartiment Amazon S3 ?
Vous pouvez accorder l'accès à un ou plusieurs utilisateurs dans la politique IAM. Pour plusieurs utilisateurs, la politique peut inclure des groupes ou un ID AWS IAM Identity Center.
Accorder l'accès à un utilisateur unique
Pour accorder l'accès à un utilisateur unique pour son dossier uniquement, créez une politique IAM.
Exemple de politique :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowStatement1", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowStatement2A", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "home/", "home/David" ], "s3:delimiter": [ "/" ] } } }, { "Sid": "AllowStatement3", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringLike": { "s3:prefix": [ "home/David/*" ] } } }, { "Sid": "AllowStatement4A", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/home/David/*" ] } ] }
Dans votre police, vous pouvez inclure des instructions comme les suivantes :
- Utilisez AllowStatement1 pour permettre à l'utilisateur de répertorier les compartiments qui appartiennent à son compte et d'accéder au compartiment sur la console.
- Utilisez AllowStatement2a pour permettre à l'utilisateur de répertorier les dossiers dans DOC-EXAMPLE-BUCKET et d'accéder au dossier sur la console.
- Utilisez AllowStatement3 pour permettre à l'utilisateur de répertorier le contenu du dossier DOC-EXAMPLE-BUCKET/home/Username.
- Utilisez AllowStatement4a pour autoriser toutes les actions, telles que les autorisations de lecture, d'écriture et de suppression, uniquement dans le dossier DOC-EXAMPLE-BUCKET/home/Username.
Utiliser une politique de groupe pour accorder l'accès à plusieurs utilisateurs
Utilisez des variables de politique pour créer une politique de groupe pour plusieurs utilisateurs.
Exemple de politique de compartiment utilisant la variable de politique ${aws:username} :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGroupToSeeBucketListInTheConsole", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowRootAndHomeListingOfCompanyBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "home/" ], "s3:delimiter": [ "/" ] } } }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringLike": { "s3:prefix": [ "home/${aws:username}/*", "home/${aws:username}" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/home/${aws:username}/*" ] } ] }
La politique précédente utilise la clé aws:username et renvoie le nom convivial de l'utilisateur, tel que « Adele » ou « David ». Vous pouvez également utiliser un ID unique lorsque la valeur de aws:username peut ne pas être valide pour un rôle IAM spécifique.Pour en savoir plus, consultez la section Valeurs de la clé du principal.
Les utilisateurs IAM peuvent répertorier tous les préfixes au niveau parent, par exemple DOC-EXAMPLE-BUCKET/. Les utilisateurs peuvent également accéder à leur répertoire de base dans n'importe quel client d'interface utilisateur graphique. Si vous ne fournissez pas l'action Liste au niveau parent, vous devez utiliser une interface de ligne de commande pour accéder directement au dossier spécifié.
Utiliser AWS IAM Identity Center pour accorder l'accès à plusieurs utilisateurs
Vous pouvez contrôler l'accès à un dossier de compartiment S3 en fonction du principal AWS IAM Identity Center. Chaque utilisateur du répertoire IAM Identity Center a un ID d'utilisateur unique. Utilisez la variable de politique ${identitystore:UserId} pour chaque utilisateur auquel vous souhaitez restreindre l'accès au dossier.
Lorsque vous créez le dossier S3, utilisez un nom de dossier qui correspond à l'ID d'utilisateur dans le répertoire IAM Identity Center. Par exemple, l'utilisateur John dispose d’un ID utilisateur unique 1111111111-2a2aaa222-bb33-4444-5555-5cc5555c555c. Pour gérer cet utilisateur, créez un dossier destiné à John dans le compartiment S3 avec le nom /home/1111111111-2a2aaa222-bb33-4444-5555-5cc5555c555c. Pour trouver les ID de vos utilisateurs, accédez à chaque utilisateur dans la console IAM Identity Center ou utilisez l'API DescribeUser.
L'exemple de politique IAM suivant utilise la variable ${identitystore:UserId} :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGroupToSeeBucketListInTheConsole", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowRootAndHomeListingOfCompanyBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "home/" ], "s3:delimiter": [ "/" ] } } }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringLike": { "s3:prefix": [ "home/${identitystore:UserId}/*", "home/${identitystore:UserId}" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/home/${identitystore:UserId}/*" ] } ] }
Informations connexes
Contrôle de l'accès à un compartiment à l'aide de politiques utilisateur
Exemples : Clés de condition Amazon S3 pour les opérations de compartiment
Test de politiques IAM à l'aide du simulateur de politique IAM
Vidéos associées


Contenus pertinents
- demandé il y a un anlg...
- demandé il y a 8 moislg...
- demandé il y a 2 anslg...
- demandé il y a un anlg...
- demandé il y a un moislg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans