Accès intercompte aux octrois d’accès S3 - 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.

Accès intercompte aux octrois d’accès S3

Avec S3 Access Grants, vous pouvez accorder à Amazon S3 l'accès aux données suivantes :

  • AWS Identity and Access Management (IAM) identités au sein de votre compte

  • IAMidentités dans d'autres AWS comptes

  • Répertoriez les utilisateurs ou les groupes de votre AWS IAM Identity Center instance

Tout d'abord, configurez l'accès entre comptes pour l'autre compte. Cela inclut l'octroi de l'accès à votre instance S3 Access Grants à l'aide d'une politique de ressources. Accordez ensuite l'accès à vos données S3 (compartiments, préfixes ou objets) en utilisant des autorisations.

Une fois que vous avez configuré l'accès entre comptes, l'autre compte peut demander des informations d'accès temporaires à vos données Amazon S3 auprès de S3 Access Grants. L'image suivante montre le flux d'utilisateurs pour l'accès entre comptes S3 via S3 Access Grants :

Flux d'utilisateurs entre comptes S3 Access Grants
  1. Les utilisateurs ou les applications d'un deuxième compte (B) demandent des informations d'identification à l'instance S3 Access Grants de votre compte (A), où les données Amazon S3 sont stockées. Pour de plus amples informations, veuillez consulter Demande d’un accès aux données Amazon S3 via les octrois d’accès S3.

  2. L'instance S3 Access Grants de votre compte (A) renvoie des informations d'identification temporaires si une autorisation permet au deuxième compte d'accéder à vos données Amazon S3. Pour plus d'informations sur les autorisations d'accès, voirUtilisation des subventions dans S3 Access Grants.

  3. Les utilisateurs ou les applications du second compte (B) utilisent les informations d'identification fournies par S3 Access Grants pour accéder aux données S3 de votre compte (A).

Configuration de S3 Access : octroie un accès entre comptes

Pour accorder un accès S3 entre comptes via S3 Access Grants, procédez comme suit :

  • Étape 1 : configurez une instance S3 Access Grants dans votre compte, par exemple, l'ID de compte111122223333, où les données S3 sont stockées.

  • Étape 2 : Configurez la politique de ressources pour l'instance S3 Access Grants de votre compte 111122223333 afin de donner accès au deuxième compte, par exemple, l'ID du compte444455556666.

  • Étape 3 : Configurez les IAM autorisations permettant au IAM principal du deuxième compte de demander des informations d'identification 444455556666 à l'instance S3 Access Grants de votre compte111122223333.

  • Étape 4 : Créez une subvention dans votre compte 111122223333 qui donne au IAM principal du deuxième compte l'444455556666accès à certaines des données S3 de votre compte111122223333.

Étape 1 : configurer une instance S3 Access Grants dans votre compte

Tout d'abord, vous devez disposer d'une instance S3 Access Grants dans votre compte 111122223333 pour gérer l'accès à vos données Amazon S3. Vous devez créer une instance S3 Access Grants dans chaque Région AWS endroit où sont stockées les données S3 que vous souhaitez partager. Si vous partagez des données entre plusieurs entités Région AWS, répétez chacune de ces étapes de configuration pour chacune d'entre elles Région AWS. Si vous disposez déjà d'une instance S3 Access Grants dans l' Région AWS endroit où sont stockées vos données S3, passez à l'étape suivante. Si vous n'avez pas configuré d'instance S3 Access Grants, consultez Utilisation des instances S3 Access Grants pour terminer cette étape.

Étape 2 : configurer la politique de ressources pour votre instance S3 Access Grants afin d'accorder un accès entre comptes

Après avoir créé une instance S3 Access Grants dans votre compte 111122223333 pour un accès entre comptes, configurez la politique basée sur les ressources pour l'instance S3 Access Grants de votre compte 111122223333 afin d'accorder un accès entre comptes. L’instance d’octrois d’accès S3 elle-même prend en charge les politiques basées sur les ressources. Lorsque la bonne politique basée sur les ressources est en place, vous pouvez accorder l'accès à AWS Identity and Access Management (IAM) à des utilisateurs ou à des rôles provenant d'autres utilisateurs Comptes AWS à votre instance S3 Access Grants. L'accès entre comptes n'accorde que les autorisations (actions) suivantes :

  • s3:GetAccessGrantsInstanceForPrefix— l'utilisateur, le rôle ou l'application peut récupérer l'instance S3 Access Grants qui contient un préfixe particulier.

  • s3:ListAccessGrants

  • s3:ListAccessLocations

  • s3:ListCallerAccessGrants

  • s3:GetDataAccess— l'utilisateur, le rôle ou l'application peut demander des informations d'identification temporaires en fonction de l'accès qui vous a été accordé via S3 Access Grants. Utilisez ces informations d’identification pour accéder aux données S3 auxquelles l’accès vous a été accordé.

Parmi ces autorisations, vous pouvez choisir les autorisations à inclure dans la politique de ressources. Cette politique de ressources sur l'instance S3 Access Grants est une politique normale basée sur les ressources et prend en charge tout ce que le langage de IAM politique prend en charge. Dans la même politique, vous pouvez accorder l'accès à des IAM identités spécifiques de votre compte111122223333, par exemple en utilisant aws:PrincipalArn cette condition, mais vous n'êtes pas obligé de le faire avec S3 Access Grants. Au sein de votre instance S3 Access Grants, vous pouvez plutôt créer des autorisations pour IAM des identités individuelles à partir de votre compte, ainsi que pour l'autre compte. En gérant chaque autorisation d'accès par le biais de S3 Access Grants, vous pouvez augmenter vos autorisations.

Si vous utilisez déjà AWS Resource Access Manager(AWS RAM), vous pouvez l'utiliser pour partager vos s3:AccessGrantsressources avec d'autres comptes ou au sein de votre organisation. Consultez la section Utilisation de AWS ressources partagées pour plus d'informations. Si vous ne l'utilisez pas AWS RAM, vous pouvez également ajouter la politique de ressources en utilisant les API opérations S3 Access Grants ou le AWS Command Line Interface (AWS CLI).

Nous vous recommandons d'utiliser la console AWS Resource Access Manager (AWS RAM) pour partager vos s3:AccessGrants ressources avec d'autres comptes ou au sein de votre organisation. Pour partager des subventions d'accès S3 entre comptes, procédez comme suit :

Pour configurer la politique de ressources de l'instance S3 Access Grants, procédez comme suit :
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Sélectionnez-le dans Région AWS le Région AWS sélecteur.

  3. Dans le volet de navigation de gauche, sélectionnez Access Grants.

  4. Sur la page de l'instance Access Grants, dans la section Instance dans ce compte, sélectionnez Partager l'instance. Cela vous redirigera vers la AWS RAM console.

  5. Sélectionnez Créer un partage de ressources.

  6. Suivez les AWS RAM étapes pour créer le partage de ressources. Pour plus d'informations, consultez la section Création d'un partage de ressources dans AWS RAM.

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 ajouter la politique de ressources à l'aide de la put-access-grants-instance-resource-policy CLI commande.

Si vous souhaitez accorder un accès entre comptes pour l'instance S3 Access Grants de votre compte 111122223333 au second compte444455556666, la politique de ressources de l'instance S3 Access Grants de votre compte 111122223333 doit 444455556666 autoriser le second compte à effectuer les actions suivantes :

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

Dans la politique de ressources de l'instance S3 Access Grants, spécifiez votre instance S3 Access Grants comme étant leResource, et le second compte 444455556666 comme lePrincipal. ARN Pour utiliser l'exemple suivant, remplacez user input placeholders avec vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

Pour ajouter ou mettre à jour la politique de ressources d'instance S3 Access Grants, utilisez la commande suivante. Lorsque vous utilisez l'exemple de commande suivant, remplacez-le user input placeholders par vos propres informations.

Exemple Ajouter ou mettre à jour la politique de ressources de l'instance S3 Access Grants
aws s3control put-access-grants-instance-resource-policy \ --account-id 111122223333 \ --policy file://resourcePolicy.json \ --region us-east-2 { "Policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"444455556666\"\n },\n \"Action\": [\n \"s3:ListAccessGrants\",\n \"s3:ListAccessGrantsLocations\",\n \"s3:GetDataAccess\",\n \"s3:GetAccessGrantsInstanceForPrefix\",\n \"s3:ListCallerAccessGrants"\n ],\n \"Resource\": \"arn:aws:s3:us-east-2:111122223333:access-grants/default\"\n }\n ]\n }\n", "CreatedAt": "2023-06-16T00:07:47.473000+00:00" }
Exemple Obtenir une politique de ressources d’octrois d’accès S3

Vous pouvez également utiliser le CLI pour obtenir ou supprimer une politique de ressources pour une instance S3 Access Grants.

Pour obtenir une politique de ressources S3 Access Grants, utilisez l'exemple de commande suivant. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3control get-access-grants-instance-resource-policy \ --account-id 111122223333 \ --region us-east-2 { "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:root\"},\"Action\":[\"s3:ListAccessGrants\",\"s3:ListAccessGrantsLocations\",\"s3:GetDataAccess\",\"s3:GetAccessGrantsInstanceForPrefix\",\"s3:ListCallerAccessGrants\"],\"Resource\":\"arn:aws: s3:us-east-2:111122223333:access-grants/default\"}]}", "CreatedAt": "2023-06-16T00:07:47.473000+00:00" }
Exemple Supprimer une politique de ressources d’octrois d’accès S3

Pour supprimer une politique de ressources S3 Access Grants, utilisez l'exemple de commande suivant. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3control delete-access-grants-instance-resource-policy \ --account-id 111122223333 \ --region us-east-2 // No response body

Vous pouvez ajouter la politique de ressources en utilisant le PutAccessGrantsInstanceResourcePolicy API.

Si vous souhaitez accorder un accès entre comptes pour l'instance S3 Access Grants de votre compte 111122223333 au second compte444455556666, la politique de ressources de l'instance S3 Access Grants de votre compte 111122223333 doit 444455556666 autoriser le second compte à effectuer les actions suivantes :

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

Dans la politique de ressources de l'instance S3 Access Grants, spécifiez votre instance S3 Access Grants comme étant leResource, et le second compte 444455556666 comme lePrincipal. ARN Pour utiliser l'exemple suivant, remplacez user input placeholders avec vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

Vous pouvez ensuite utiliser le PutAccessGrantsInstanceResourcePolicy APIpour configurer la politique.

Pour plus d'informations sur la REST API prise en charge de la mise à jour, de l'obtention ou de la suppression d'une politique de ressources pour une instance S3 Access Grants, consultez les sections suivantes du manuel Amazon Simple Storage Service API Reference :

Cette section fournit des AWS SDK exemples de configuration de votre politique de ressources S3 Access Grants afin d'accorder à un deuxième AWS compte l'accès à certaines de vos données S3.

Java

Ajoutez, mettez à jour, obtenez ou supprimez une politique de ressources pour gérer l’accès intercompte à votre instance d’octrois d’accès S3.

Exemple Ajouter ou mettre à jour une politique de ressources d'instance S3 Access Grants

Si vous souhaitez accorder un accès entre comptes pour l'instance S3 Access Grants de votre compte 111122223333 au second compte444455556666, la politique de ressources de l'instance S3 Access Grants de votre compte 111122223333 doit 444455556666 autoriser le second compte à effectuer les actions suivantes :

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

Dans la politique de ressources de l'instance S3 Access Grants, spécifiez votre instance S3 Access Grants comme étant leResource, et le second compte 444455556666 comme lePrincipal. ARN Pour utiliser l'exemple suivant, remplacez user input placeholders avec vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

Pour ajouter ou mettre à jour une politique de ressources d'instance S3 Access Grants, utilisez l'exemple de code suivant :

public void putAccessGrantsInstanceResourcePolicy() { PutAccessGrantsInstanceResourcePolicyRequest putRequest = PutAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .policy(RESOURCE_POLICY) .build(); PutAccessGrantsInstanceResourcePolicyResponse putResponse = s3Control.putAccessGrantsInstanceResourcePolicy(putRequest); LOGGER.info("PutAccessGrantsInstanceResourcePolicyResponse: " + putResponse); }

Réponse :

PutAccessGrantsInstanceResourcePolicyResponse( Policy={ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "444455556666" }, "Action": [ "s3:ListAccessGrants", "s3:ListAccessGrantsLocations", "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix", "s3:ListCallerAccessGrants" ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" }] } )
Exemple Obtenir une politique de ressources d’octrois d’accès S3

Pour obtenir une politique de ressources S3 Access Grants, utilisez l'exemple de code suivant. Pour utiliser l'exemple de commande suivant, remplacez user input placeholders par vos propres informations.

public void getAccessGrantsInstanceResourcePolicy() { GetAccessGrantsInstanceResourcePolicyRequest getRequest = GetAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); GetAccessGrantsInstanceResourcePolicyResponse getResponse = s3Control.getAccessGrantsInstanceResourcePolicy(getRequest); LOGGER.info("GetAccessGrantsInstanceResourcePolicyResponse: " + getResponse); }

Réponse :

GetAccessGrantsInstanceResourcePolicyResponse( Policy={"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::444455556666:root"},"Action":["s3:ListAccessGrants","s3:ListAccessGrantsLocations","s3:GetDataAccess","s3:GetAccessGrantsInstanceForPrefix","s3:ListCallerAccessGrants"],"Resource":"arn:aws:s3:us-east-2:111122223333:access-grants/default"}]}, CreatedAt=2023-06-15T22:54:44.319Z )
Exemple Supprimer une politique de ressources d’octrois d’accès S3

Pour supprimer une politique de ressources S3 Access Grants, utilisez l'exemple de code suivant. Pour utiliser l'exemple de commande suivant, remplacez user input placeholders par vos propres informations.

public void deleteAccessGrantsInstanceResourcePolicy() { DeleteAccessGrantsInstanceResourcePolicyRequest deleteRequest = DeleteAccessGrantsInstanceResourcePolicyRequest.builder() .accountId(111122223333) .build(); DeleteAccessGrantsInstanceResourcePolicyResponse deleteResponse = s3Control.putAccessGrantsInstanceResourcePolicy(deleteRequest); LOGGER.info("DeleteAccessGrantsInstanceResourcePolicyResponse: " + deleteResponse); }

Réponse :

DeleteAccessGrantsInstanceResourcePolicyResponse()

Étape 3 : accorder aux IAM identités d'un deuxième compte l'autorisation d'appeler l'instance S3 Access Grants de votre compte

Une fois que le propriétaire des données Amazon S3 a configuré la politique inter-comptes pour l'instance S3 Access Grants en compte111122223333, le propriétaire du second compte 444455556666 doit créer une politique basée sur l'identité pour ses IAM utilisateurs ou ses rôles, et le propriétaire doit leur donner accès à l'instance S3 Access Grants. Dans la politique basée sur l'identité, incluez une ou plusieurs des actions suivantes, en fonction de ce qui est accordé dans la politique de ressources d'instance S3 Access Grants et des autorisations que vous souhaitez accorder :

  • s3:ListAccessGrants

  • s3:ListAccessGrantsLocations

  • s3:GetDataAccess

  • s3:GetAccessGrantsInstanceForPrefix

  • s3:ListCallerAccessGrants

Selon le modèle d'accès AWS entre comptes, les IAM utilisateurs ou les rôles du second compte 444455556666 doivent explicitement disposer d'une ou de plusieurs de ces autorisations. Par exemple, accordez l's3:GetDataAccessautorisation afin que l'IAMutilisateur ou le rôle puisse appeler l'instance S3 Access Grants associée au compte 111122223333 pour demander des informations d'identification.

Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetDataAccess", ], "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default" } ] }

Pour plus d'informations sur la modification IAM des politiques basées sur l'identité, consultez la section Modification IAM des politiques du AWS Identity and Access Management guide.

Étape 4 : Créez une autorisation dans l'instance S3 Access Grants de votre compte qui donne à l'IAMidentité du second compte l'accès à certaines de vos données S3

Pour la dernière étape de configuration, vous pouvez créer une autorisation dans l'instance S3 Access Grants de votre compte 111122223333 qui donne accès à l'IAMidentité du deuxième compte 444455556666 à certaines données S3 de votre compte. Vous pouvez le faire en utilisant la console Amazon S3,CLI,API, etSDKs. Pour de plus amples informations, veuillez consulter Création d’octrois.

Dans l'autorisation, spécifiez l' AWS ARNIAMidentité du deuxième compte et spécifiez à quel emplacement dans vos données S3 (un compartiment, un préfixe ou un objet) vous accordez l'accès. Cet emplacement doit déjà être enregistré auprès de votre instance S3 Access Grants. Pour de plus amples informations, veuillez consulter Enregistrement d’un emplacement. Vous pouvez éventuellement spécifier un sous-préfixe. Par exemple, si l'emplacement auquel vous accordez l'accès est un compartiment et que vous souhaitez limiter davantage l'accès à un objet spécifique de ce compartiment, transmettez le nom de la clé de l'objet dans le S3SubPrefix champ. Ou si vous souhaitez limiter l'accès aux objets du compartiment dont les noms de clé commencent par un préfixe spécifique2024-03-research-results/, tel que « pass S3SubPrefix=2024-03-research-results/ ».

Voici un exemple de CLI commande permettant de créer une autorisation d'accès pour une identité dans le deuxième compte. Pour plus d’informations, consultez Création d’octrois. Pour utiliser cet exemple de commande, remplacez user input placeholders par vos propres informations.

aws s3control create-access-grant \ --account-id 111122223333 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix=prefixA* \ --permission READ \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::444455556666:role/data-consumer-1

Après avoir configuré l'accès entre comptes, l'utilisateur ou le rôle du second compte peut effectuer les opérations suivantes :