Enregistrement d’un emplacement - Amazon Simple Storage Service

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). S3 Access Grants assume ce IAM rôle pour vendre des informations d'identification temporaires au bénéficiaire qui accède à cet emplacement particulier. Vous devez d'abord enregistrer au moins un emplacement dans votre instance S3 Access Grants avant de pouvoir créer une autorisation d'accès.

Cas d'utilisation recommandé

Nous vous recommandons d'enregistrer l'emplacement par défaut (s3://) et de le mapper à un IAM rôle. 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 l'autorisation à un compartiment, à un préfixe ou à un objet situé dans 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 que le amzn-s3-demo-bucket est un emplacement enregistré dans votre instance S3 Access Grants auquel un IAM rôle est mappé, mais ce IAM rôle se voit refuser l'accès à un préfixe particulier dans le compartiment. Dans ce cas, vous pouvez enregistrer le préfixe auquel le IAM rôle n'a pas accès en tant qu'emplacement distinct et associer cet emplacement à un autre IAM rôle disposant de l'accès nécessaire.

  • Supposons que vous souhaitiez créer des autorisations qui limitent l'accès aux seuls utilisateurs d'un point de terminaison de cloud privé virtuel (VPC). Dans ce cas, vous pouvez enregistrer un emplacement pour un compartiment dans lequel le IAM rôle restreint l'accès au VPC point de terminaison. Plus tard, lorsqu'un bénéficiaire demande des informations d'identification à S3 Access Grants, S3 Access Grants assume le IAM rôle de l'établissement pour vendre les informations d'identification temporaires. Ces informations d'identification refuseront l'accès au compartiment spécifique à moins que l'appelant ne se trouve dans le VPC point de terminaison. Cette autorisation de refus est appliquée en plus de l'READWRITEautorisation normale READ ou spécifiée dans la subvention. WRITE

Lorsque vous enregistrez un emplacement, vous devez également spécifier le IAM rôle assumé par S3 Access Grants pour vendre des informations d'identification temporaires et définir les autorisations associées à une autorisation spécifique.

Si votre cas d'utilisation vous oblige à enregistrer plusieurs emplacements dans votre instance S3 Access Grants, vous pouvez enregistrer l'un des sites suivants :

S3 URI IAMrôle Description
s3:// Default-IAM-role

L’emplacement par défaut, s3://, inclut tous les compartiments figurant dans la Région AWS.

s3://amzn-s3-demo-bucket1/ IAM-role-For-bucket

Cet emplacement inclut tous les objets figurant dans le compartiment spécifié.

s3://amzn-s3-demo-bucket1/prefix-name IAM-role-For-prefix

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 bucket 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 des chaînes situées au début du nom de clé d'un objet. Vous pouvez les utiliser pour organiser les objets de 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 IAM rôle autorisé à accéder à vos données S3 dans le Région AWS. Pour plus d'informations, consultez la section Création de IAM rôles dans le guide de AWS IAM Identity Center l'utilisateur.

  • Dans la politique de confiance des IAM rôles, accordez au service S3 Access Grants (access-grants.s3.amazonaws.com) l'accès principal au IAM rôle que vous avez créé. Pour ce faire, vous pouvez créer un JSON fichier contenant les instructions suivantes. Pour ajouter la politique de confiance à votre compte, voir Créer un rôle à l'aide de politiques de confiance personnalisées.

    TestRolePolicy.json

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Action": ["sts:AssumeRole", "sts:SetSourceIdentity", "sts:SetContext"], "Effect": "Allow", "Principal": {"Service":"access-grants.s3.amazonaws.com"}, "Condition":{ "StringEquals":{ "aws:SourceAccount":"accountId", "aws:SourceArn":"arn:aws:s3:region:accountId:access-grants/default" } //Optionally, for an IAM Identity Center use case, add: "ForAnyValue:StringEquals": { "aws:RequestContextProvider":"arn:aws:iam::aws:contextProvider/IdentityCenter" } } } ] }
  • Créez une IAM politique pour associer des autorisations Amazon S3 au IAM rôle que vous avez créé. Consultez l’exemple de fichier iam-policy.json suivant et remplacez les user input placeholders par vos propres informations.

    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 IAM rôle dans la politique. Si vous n'utilisez pas cette fonctionnalité, vous pouvez supprimer ces autorisations de votre IAM politique.

    • Vous pouvez restreindre l'accès du IAM rôle aux données S3 uniquement si les informations d'identification sont fournies par S3 Access Grants. Cet exemple montre comment ajouter une Condition instruction pour une instance S3 Access Grants spécifique. Pour l'utiliserCondition, remplacez l'instance S3 Access Grants ARN dans l'Conditioninstruction par votre instance S3 Access GrantsARN, dont le format est le 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), du Amazon S3 REST API ou du AWS SDKs.

Note

Une fois que vous avez enregistré le premier emplacement dans votre instance S3 Access Grants, celle-ci ne dispose toujours d'aucune autorisation d'accès individuelle. Pour créer une autorisation d'accès, voirCréation d’octrois.

Avant de pouvoir accorder l’accès à vos données S3 avec les octrois d’accès S3, vous devez avoir au moins un emplacement enregistré.

Pour enregistrer un emplacement dans votre instance d’octrois d’accès S3
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans le volet de navigation de gauche, choisissez Access Grants.

  3. 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’octrois d’accès S3 pour la première fois, assurez-vous d’avoir terminé l’étape 1 : Créer une instance d’octrois 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’octrois d’accès S3, choisissez Afficher les détails, puis, dans l’onglet Succursales, choisissez Enregistrer l’emplacement.

    1. Pour l'étendue de localisation, choisissez Browse S3 ou entrez le URI chemin S3 menant à l'emplacement que vous souhaitez enregistrer. Pour les URI formats S3, consultez le tableau des formats de localisation. Après avoir saisi unURI, vous pouvez choisir Afficher pour parcourir l'emplacement.

    2. Pour le IAMrôle, choisissez l'une des options suivantes :

      • Choisissez parmi les IAM rôles existants

        Choisissez un IAM rôle 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 octrois d’accès S3 les autorisations sts:AssumeRole et sts:SetSourceIdentity.

      • Entrez le IAM rôle ARN

        Accédez à la IAMconsole. Copiez le nom de ressource Amazon (ARN) du IAM rôle et collez-le dans cette zone.

    3. Pour terminer, choisissez Suivant ou Enregistrer l’emplacement.

  4. Résolution de 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’octrois d’accès S3. Assurez-vous d'abord de créer un IAM rôle avec un accès principal à l'emplacement, puis d'accorder à S3 Access Grants l'autorisation d'assumer ce rôle.

Pour utiliser les exemples de commandes suivants, remplacez les user input placeholders par vos propres informations.

Exemple Créer une politique de ressources

Créez une politique qui autorise S3 Access Grants à assumer le IAM rôle. Pour ce faire, vous pouvez créer un JSON fichier 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éation du rôle

Exécutez la IAM commande suivante pour créer le rôle.

aws iam create-role --role-name accessGrantsTestRole \ --region us-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 IAM politique pour associer des autorisations Amazon S3 au IAM rôle. Consultez l’exemple de fichier iam-policy.json suivant et remplacez les user input placeholders par vos propres informations.

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 IAM rôle dans la politique. Si vous n'utilisez pas cette fonctionnalité, vous pouvez supprimer ces autorisations de votre IAM politique.

Pour vous assurer que le IAM rôle ne peut être utilisé que pour accéder aux données dans S3 si les informations d'identification sont fournies par S3 Access Grants, cet exemple vous montre comment ajouter une Condition instruction spécifiant l'instance S3 Access Grants (s3:AccessGrantsInstance: InstanceArn) dans votre IAM politique. Lorsque vous utilisez l’exemple de politique suivant, remplacez les user input placeholders par vos propres informations.

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-scope s3:// \ --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-scope s3://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 le REST API support Amazon S3 pour la gestion d'une instance S3 Access Grants, consultez les sections suivantes du manuel Amazon Simple Storage Service API Reference :

Cette section fournit des exemples de la manière d'enregistrer des emplacements à l'aide du AWS SDKs.

Pour utiliser les exemples suivants, remplacez user input placeholders par vos propres informations.

Java

Vous pouvez enregistrer l’emplacement par défaut, s3://, ou un emplacement personnalisé dans votre instance d’octrois d’accès S3. Assurez-vous d'abord de créer un IAM rôle avec un accès principal à l'emplacement, puis d'accorder à S3 Access Grants l'autorisation d'assumer ce rôle.

Pour utiliser les exemples de commandes suivants, remplacez les user input placeholders par vos propres informations.

Exemple Enregistrer un emplacement par défaut

Requête :

public void createAccessGrantsLocation() { CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder() .accountId("111122223333") .locationScope("s3://") .iamRoleArn("arn:aws:iam::123456789012:role/accessGrantsTestRole") .build(); CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest); LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse); }

Réponse :

CreateAccessGrantsLocationResponse( CreatedAt=2023-06-07T04:35:11.027Z, 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é

Requête :

public void createAccessGrantsLocation() { CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder() .accountId("111122223333") .locationScope("s3://DOC-BUCKET-EXAMPLE/") .iamRoleArn("arn:aws:iam::111122223333:role/accessGrantsTestRole") .build(); CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest); LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse); }

Réponse :

CreateAccessGrantsLocationResponse( CreatedAt=2023-06-07T04:35:10.027Z, AccessGrantsLocationId=18cfe6fb-eb5a-4ac5-aba9-8d79f04c2012, AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/18cfe6fb-eb5a-4ac5-aba9-8d79f04c2666, LocationScope= s3://test-bucket-access-grants-user123/, IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole )