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.
Enregistrement d’un emplacement
Après avoir créé une instance Amazon S3 Access Grants Région AWS dans un compte, vous enregistrez un emplacement S3 dans cette instance. Un emplacement S3 Access Grants associe l'emplacement S3 par défaut (s3://
), un compartiment ou un préfixe à un rôle AWS Identity and Access Management (IAM). Les autorisations d’accès S3 endosseront ce rôle IAM pour fournir des informations d’identification temporaires au bénéficiaire qui accédera à cet emplacement particulier. Vous devez d’abord enregistrer au moins un emplacement auprès de votre instance d’autorisations d’accès S3 avant de pouvoir créer des autorisations d’accès.
Cas d’utilisation recommandé
Nous vous recommandons d’enregistrer l’emplacement par défaut (s3://
) et de le mapper à un rôle IAM. L'emplacement situé sur le chemin S3 par défaut (s3://
) couvre l'accès à tous vos compartiments S3 dans celui Région AWS de votre compte. Lorsque vous créez une autorisation d’accès, vous pouvez restreindre la portée de cette autorisation à un compartiment, à un préfixe ou à un objet situé à l’emplacement par défaut.
Cas d’utilisation complexes de gestion des accès
Les cas d’utilisation plus complexes liés à la gestion des accès peuvent vous obliger à enregistrer un autre emplacement que l’emplacement par défaut. Voici quelques exemples de tels cas d’utilisation :
-
Supposons qu’
amzn-s3-demo-bucket
soit un emplacement enregistré dans votre instance d’autorisations d’accès S3 et qu’un rôle IAM lui soit associé, mais que ce rôle IAM se voit refuser l’accès à un préfixe particulier dans le compartiment. Dans ce cas, vous pouvez enregistrer le préfixe auquel le rôle IAM n’a pas accès en tant qu’emplacement distinct et associer cet emplacement à un autre rôle IAM disposant de l’accès nécessaire. -
Supposons que vous souhaitiez créer des autorisations qui limitent l’accès aux utilisateurs au sein d’un point de terminaison de cloud privé virtuel (VPC). Dans ce cas, vous pouvez enregistrer un emplacement pour un compartiment dans lequel le rôle IAM restreint l’accès à ce point de terminaison du VPC. Ultérieurement, lorsqu’un bénéficiaire demandera des informations d’identification aux autorisations d’accès S3, les autorisations d’accès S3 endosseront le rôle IAM de l’emplacement pour fournir des informations d’identification temporaires. Ces informations d’identification refuseront l’accès au compartiment spécifique, sauf si l’appelant se trouve dans le point de terminaison du VPC. Cette autorisation de refus sera appliquée en plus de l’autorisation READ, WRITE ou READWRITE habituellement spécifiée dans l’autorisation d’accès.
Lorsque vous enregistrez un emplacement, vous devez également spécifier le rôle IAM que les autorisations d’accès S3 endossent pour fournir des informations d’identification temporaires et délimiter la portée d’une autorisation spécifique.
Si votre cas d’utilisation vous oblige à enregistrer plusieurs emplacements dans votre instance d’autorisations d’accès S3, vous pouvez enregistrer l’un des emplacements suivants :
URI S3 | Rôle IAM | Description |
---|---|---|
s3:// |
|
L’emplacement par défaut, |
s3:// |
|
Cet emplacement inclut tous les objets figurant dans le compartiment spécifié. |
s3:// |
|
Cet emplacement inclut tous les objets du compartiment dont le nom de clé d’objet commence par ce préfixe. |
Avant de pouvoir enregistrer un compartiment ou un préfixe spécifique, assurez-vous d’effectuer les opérations suivantes :
-
Créez un ou plusieurs compartiments contenant les données auxquelles vous souhaitez accorder l’accès. Ces compartiments doivent être situés au même endroit Région AWS que votre instance S3 Access Grants. Pour de plus amples informations, veuillez consulter Créer un compartiment.
L’ajout d’un préfixe est une étape facultative. Les préfixes sont les chaînes qui se trouvent au début du nom de la clé d’objet. Vous pouvez les utiliser pour organiser les objets dans votre compartiment ainsi que pour gérer les accès. Pour ajouter un préfixe à un compartiment, consultez Création de noms de clés d’objets.
-
Créez un rôle IAM qui dispose de l’autorisation nécessaire pour accéder à vos données S3 dans la Région AWS. Pour plus d’informations, consultez Création de rôles IAM dans le Guide de l’utilisateur AWS IAM Identity Center .
Dans la politique de confiance du rôle IAM, accordez au service d’autorisations d’accès S3 (
access-grants.s3.amazonaws.com
) l’accès au rôle IAM que vous avez créé. Pour ce faire, vous pouvez créer un fichier JSON contenant les instructions suivantes. Pour ajouter la politique d’approbation à votre compte, consultez Création d’un rôle à l’aide de politiques d’approbation personnalisées.TestRolePolicy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount":"
accountId
", "aws:SourceArn":"arn:aws:s3:region
:accountId
:access-grants/default" } } }, //Optionally, for an IAM Identity Center use case, add: { "Sid": "Stmt1234567891012", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": "sts:SetContext", "Condition":{ "StringEquals":{ "aws:SourceAccount":"accountId
", "aws:SourceArn":"arn:aws:s3:region
:accountId
:access-grants/default" }, "ForAllValues:ArnEquals": { "sts:RequestContextProviders":"arn:aws:iam::aws:contextProvider/IdentityCenter" } } } ] }-
Créez une politique IAM pour attacher les autorisations Amazon S3 au rôle IAM que vous avez créé. Consultez l’exemple de fichier
iam-policy.json
suivant et remplacez les
par vos propres informations.user input placeholders
Note
-
Si vous utilisez le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) pour chiffrer vos données, l'exemple suivant inclut les AWS KMS autorisations nécessaires pour le rôle IAM dans la politique. Si vous n’utilisez pas cette fonctionnalité, vous pouvez supprimer ces autorisations de votre politique IAM.
-
Vous pouvez faire en sorte que le rôle IAM ne puisse accéder aux données S3 que si les informations d’identification sont fournies par les autorisations d’accès S3. Cet exemple montre comment ajouter une instruction
Condition
pour une instance d’autorisations d’accès S3 spécifique. Pour utiliser cetteCondition
, remplacez l’ARN de l’instance d’autorisations d’accès S3 dans l’instructionCondition
par l’ARN de votre instance d’autorisations d’accès S3, au format suivant :arn:aws:s3:
region
:accountId
:access-grants/default
iam-policy.json
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "
accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region
:accountId
:access-grants/default"] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Région AWS
:accountId
:access-grants/default"] } } }, { "Sid": "BucketLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Région AWS
:accountId
:access-grants/default"] } } }, //Optionally add the following section if you use SSE-KMS encryption { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] } -
Vous pouvez enregistrer un emplacement dans votre instance S3 Access Grants à l'aide de la console Amazon S3, du AWS Command Line Interface (AWS CLI), de l'API REST Amazon S3 ou du AWS SDKs.
Note
Une fois que vous avez enregistré le premier emplacement dans votre instance d’autorisations d’accès S3, celle-ci ne dispose toujours d’aucune autorisation d’accès individuelle. Pour créer une autorisation d’accès, consultez Création d’octrois.
Avant de pouvoir accorder l’accès à vos données S3 avec les autorisations d’accès S3, vous devez avoir au moins un emplacement enregistré.
Pour enregistrer un emplacement dans votre instance d’autorisations d’accès S3
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans le volet de navigation de gauche, choisissez Access Grants.
-
Sur la page Octrois d’accès S3, choisissez la région qui contient l’instance d’octrois d’accès S3 qui vous intéresse.
Si vous utilisez une instance d’autorisations d’accès S3 pour la première fois, assurez-vous d’avoir terminé l’étape 1 : Créer une instance d’autorisations d’accès S3 et d’être passé à l’étape 2 de l’Assistant Mise en place de l’instance Access Grants. Si vous possédez déjà une instance d’autorisations d’accès S3, choisissez Afficher les détails, puis, dans l’onglet Succursales, choisissez Enregistrer l’emplacement.
-
Pour Champ d’application de l’emplacement, choisissez Parcourir S3 ou entrez le chemin d’URI S3 menant à l’emplacement que vous souhaitez enregistrer. Pour les formats d’URI S3, consultez le tableau des formats d’emplacement. Après avoir entré un URI, vous pouvez choisir Afficher pour accéder à l’emplacement.
-
Pour Rôle IAM choisissez l’une des options suivantes :
-
Sélectionner parmi les rôles IAM existants
Choisissez un rôle IAM dans la liste déroulante. Après avoir choisi un rôle, choisissez Afficher pour vous assurer que ce rôle dispose des autorisations nécessaires pour gérer l’emplacement que vous enregistrez. Plus précisément, assurez-vous que ce rôle accorde aux autorisations d’accès S3 les autorisations
sts:AssumeRole
etsts:SetSourceIdentity
. -
Saisir l’ARN du rôle IAM
Accédez à la console IAM
. Copiez l’Amazon Resource Name (ARN) du rôle IAM et collez-le dans cette zone.
-
-
Pour terminer, choisissez Suivant ou Enregistrer l’emplacement.
-
-
Résolution des problèmes :
Impossible d’enregistrer l’emplacement
-
L’emplacement est peut-être déjà enregistré.
Il se peut que vous n’ayez pas l’autorisation
s3:CreateAccessGrantsLocation
d’enregistrer des emplacements. Contactez l’administrateur de votre compte.
-
Pour l'installer AWS CLI, reportez-vous à la section Installation du AWS CLI dans le guide de AWS Command Line Interface l'utilisateur.
Vous pouvez enregistrer l’emplacement par défaut, s3://
, ou un emplacement personnalisé dans votre instance d’autorisations d’accès S3. Assurez-vous d’abord de créer un rôle IAM avec un accès principal à l’emplacement, puis d’accorder aux autorisations d’accès S3 l’autorisation d’endosser ce rôle.
Pour utiliser les exemples de commandes suivants, remplacez les
par vos propres informations.user input
placeholders
Exemple Créer une politique de ressources
Créez une politique permettant aux autorisations d’accès S3 d’endosser le rôle IAM. Pour ce faire, vous pouvez créer un fichier JSON contenant les instructions suivantes. Pour ajouter la politique de ressources à votre compte, consultez Créer et attacher votre première politique gérée par le client.
TestRolePolicy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Action": ["sts:AssumeRole", "sts:SetSourceIdentity"], "Effect": "Allow", "Principal": {"Service":"access-grants.s3.amazonaws.com"} } ] }
Exemple Créer le rôle
Exécutez la commande IAM suivante pour créer le rôle.
aws iam create-role --role-name
accessGrantsTestRole
\ --regionus-east-2
\ --assume-role-policy-document file://TestRolePolicy.json
L’exécution de la commande create-role
renvoie la politique :
{ "Role": { "Path": "/", "RoleName": "accessGrantsTestRole", "RoleId": "AROASRDGX4WM4GH55GIDA", "Arn": "arn:aws:iam::
111122223333
:role/accessGrantsTestRole", "CreateDate": "2023-05-31T18:11:06+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1685556427189", "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" } } ] } } }
Créez une politique IAM pour attacher les autorisations Amazon S3 au rôle IAM. Consultez l’exemple de fichier iam-policy.json
suivant et remplacez les
par vos propres informations. user input placeholders
Note
Si vous utilisez le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) pour chiffrer vos données, l'exemple suivant ajoute les AWS KMS autorisations nécessaires pour le rôle IAM dans la politique. Si vous n’utilisez pas cette fonctionnalité, vous pouvez supprimer ces autorisations de votre politique IAM.
Pour vous assurer que le rôle IAM ne peut être utilisé que pour accéder aux données dans S3 si les informations d’identification sont proposées par les autorisations d’accès S3, cet exemple vous montre comment ajouter une déclaration Condition
spécifiant l’instance d’autorisations d’accès S3 (s3:AccessGrantsInstance:
) dans votre politique IAM. Lorsque vous utilisez l’exemple de politique suivant, remplacez les InstanceArn
par vos propres informations.user input placeholders
iam-policy.json
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "
accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region
:accountId
:access-grants/default"] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Région AWS
:accountId
:access-grants/default"] } } }, { "Sid": "BucketLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Région AWS
:accountId
:access-grants/default"] } } }, { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] }
Exécutez la commande suivante :
aws iam put-role-policy \ --role-name accessGrantsTestRole \ --policy-name accessGrantsTestRole \ --policy-document file://iam-policy.json
Exemple Enregistrer l’emplacement par défaut
aws s3control create-access-grants-location \ --account-id
111122223333
\ --location-scopes3://
\ --iam-role-arn arn:aws:iam::111122223333
:role/accessGrantsTestRole
Réponse :
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00", "AccessGrantsLocationId": "default", "AccessGrantsLocationArn": "arn:aws:s3:
us-east-2
:111122223333
:access-grants/default/location/default", "LocationScope": "s3://” "IAMRoleArn": "arn:aws:iam::111122223333
:role/accessGrantsTestRole" }
Exemple Enregistrer un emplacement personnalisé
aws s3control create-access-grants-location \ --account-id
111122223333
\ --location-scopes3://DOC-BUCKET-EXAMPLE/
\ --iam-role-arn arn:aws:iam::123456789012
:role/accessGrantsTestRole
Réponse :
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00", "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456", "AccessGrantsLocationArn": "arn:aws:s3:
us-east-2
:111122223333
:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888", "LocationScope": "s3://DOC-BUCKET-EXAMPLE/", "IAMRoleArn": "arn:aws:iam::111122223333
:role/accessGrantsTestRole" }
Pour plus d’informations sur la prise en charge de l’API REST Amazon S3 pour la gestion d’une instance d’autorisations d’accès S3, consultez les sections suivantes dans la Référence d’API Amazon Simple Storage Service :
Cette section fournit des exemples de la manière d'enregistrer des emplacements à l'aide du AWS SDKs.
Pour utiliser les exemples suivants, remplacez
par vos propres informations.user input
placeholders