Accès intercompte aux autorisations d’accès S3
Avec les autorisations d’accès S3, vous pouvez accorder l’accès aux données Amazon S3 aux éléments suivants :
Identités AWS Identity and Access Management (IAM) au sein de votre compte
Identités IAM dans d’autres comptes AWS
Utilisateurs ou groupes issus d’annuaires dans votre instance AWS IAM Identity Center
Configurez d’abord l’accès intercompte pour l’autre compte. Cela inclut l’octroi de l’accès à votre instance d’autorisations d’accès S3 à 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.
Après avoir configuré l’accès intercompte, l’autre compte peut demander des informations d’accès temporaires à vos données Amazon S3 auprès des autorisations d’accès S3. L’image suivante montre le flux d’utilisateurs pour l’accès intercompte S3 via les autorisations d’accès S3 :
![Flux utilisateur intercompte avec les autorisations d’accès S3](images/access-grants-cross-account.png)
Les utilisateurs ou les applications d’un deuxième compte (B) demandent des informations d’identification à l’instance d’autorisations d’accès S3 de votre compte (A), où les données Amazon S3 sont stockées. Pour en savoir plus, consultez Demande d’un accès aux données Amazon S3 via les autorisations d’accès S3.
L’instance d’autorisations d’accès S3 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, consultez Octroi d’autorisations avec les autorisations d’accès S3.
Les utilisateurs ou les applications du second compte (B) utilisent les informations d’identification fournies par les autorisations d’accès S3 pour accéder aux données S3 de votre compte (A).
Configuration de l’accès intercompte avec les autorisations d’accès S3
Pour accorder un accès S3 intercompte via les autorisations d’accès S3, procédez comme suit :
Étape 1 : configurez une instance d’autorisations d’accès S3 dans votre compte (par exemple, l’ID de compte
111122223333
), où les données S3 sont stockées.Étape 2 : configurez la politique de ressources pour l’instance d’autorisations d’accès S3 de votre compte
111122223333
afin de donner accès au deuxième compte (par exemple, l’ID de compte444455556666
).Étape 3 : configurez les autorisations IAM pour que le principal IAM du deuxième compte
444455556666
demande des informations d’identification à l’instance d’autorisations d’accès S3 de votre compte111122223333
.Étape 4 : créez une autorisation dans votre compte
111122223333
qui donne au principal IAM du deuxième compte444455556666
l’accès à certaines des données S3 de votre compte111122223333
.
Étape 1 : configurer une instance d’autorisations d’accès S3 dans votre compte
Tout d’abord, vous devez disposer d’une instance d’autorisations d’autorisations d’accès S3 dans votre compte 111122223333
pour gérer l’accès à vos données Amazon S3. Vous devez créer une instance d’autorisations d’accès S3 dans chaque Région AWS où sont stockées les données S3 que vous souhaitez partager. Si vous partagez des données dans plus d’une Région AWS, répétez chacune de ces étapes de configuration pour chaque Région AWS. Si vous avez déjà une instance d’autorisations d’accès S3 dans le Région AWS dans lequel vos données S3 sont stockées, passez à l’étape suivante. Si vous n’avez pas configuré d’instance d’autorisations d’accès S3, consultez Utilisation des instances d’autorisations d’accès S3 pour mener à bien cette étape.
Étape 2 : configurer la politique de ressource pour votre instance d’autorisations d’accès S3 afin d’accorder un accès intercompte
Après avoir créé une instance d’autorisations d’accès S3 dans votre compte 111122223333
pour un accès intercompte, configurez la politique basée sur les ressources pour l’instance d’autorisations d’accès S3 de votre compte 111122223333
afin d’accorder un accès intercompte. L’instance d’autorisations d’accès S3 elle-même prend en charge les politiques basées sur les ressources. Avec la politique basée sur les ressources appropriée, vous pouvez accorder à des utilisateurs et à des rôles AWS Identity and Access Management (IAM) issus d’autres Comptes AWS l’accès à votre instance d’autorisations d’accès S3. L’accès intercompte accorde uniquement ces autorisations (actions) :
-
s3:GetAccessGrantsInstanceForPrefix
: l’utilisateur, le rôle ou l’application peut récupérer l’instance d’autorisations d’accès S3 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 les autorisations d’accès S3. 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 d’autorisations d’accès S3 est une politique standard basée sur les ressources et prend en charge tout ce que le langage de politique IAM prend en charge. Dans la même politique, vous pouvez accorder l’accès à des identités IAM spécifiques dans le compte 111122223333
(par exemple, avec la condition aws:PrincipalArn
), mais vous n’êtes pas obligé de le faire avec les autorisations d’accès S3. À la place, au sein de votre instance d’autorisations d’accès S3, vous pouvez créer des autorisations pour des identités IAM individuelles à partir de votre compte, ainsi que pour l’autre compte. En gérant chaque autorisation d’accès via les autorisations d’accès S3, vous pouvez mettre à l’échelle vos autorisations.
Si vous utilisez déjà AWS Resource Access Manager (AWS RAM), vous pouvez y recourir pour partager vos ressources s3:AccessGrants
avec d’autres comptes ou au sein de votre organisation. Consultez Utilisation des ressources AWS partagées pour plus d’informations. Si vous n’utilisez pas AWS RAM, vous pouvez également ajouter la politique de ressources en utilisant les opérations d’API d’autorisations d’accès S3 ou l’AWS Command Line Interface (AWS CLI).
Nous vous recommandons d’utiliser la console AWS Resource Access Manager (AWS RAM) pour partager vos ressources s3:AccessGrants
avec d’autres comptes ou au sein de votre organisation. Pour partager les autorisations d’accès S3 intercompte, procédez comme suit :
Pour configurer la politique de ressources de l’instance d’autorisations d’accès S3 :
Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/
. Sélectionnez la Région AWS dans le sélecteur de Région AWS.
Dans le volet de navigation de gauche, sélectionnez Access Grants.
Sur la page de l’instance d’autorisations d’accès, dans la section Instance dans ce compte, sélectionnez Partager une instance. Vous êtes redirigé vers la console AWS RAM.
Sélectionnez Créer un partage de ressources.
Suivez les étapes AWS RAM pour créer le partage de ressources. Pour plus d’informations, consultez Création d’un partage de ressources dans AWS RAM.
Pour installer la AWS CLI, consultez Installation de la AWS CLI dans le Guide de l’utilisateur AWS Command Line Interface.
Vous pouvez ajouter la politique de ressources à l’aide de la commande CLI put-access-grants-instance-resource-policy
.
Si vous souhaitez accorder un accès intercompte pour l’instance d’autorisations d’accès S3 se trouvant dans votre compte 111122223333
au deuxième compte 444455556666
, la politique de ressources de l’instance d’autorisations d’accès S3 de votre compte 111122223333
doit autoriser le deuxième compte 444455556666
à effectuer les actions suivantes :
s3:ListAccessGrants
s3:ListAccessGrantsLocations
s3:GetDataAccess
s3:GetAccessGrantsInstanceForPrefix
Dans la politique de ressources de l’instance d’autorisations d’accès S3, spécifiez l’ARN de votre instance d’autorisations d’accès S3 comme Resource
, et le deuxième compte 444455556666
comme Principal
. Pour utiliser l’exemple suivant, remplacez les espaces réservés d’entrée utilisateur
par 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 pour une instance d’autorisations d’accès S3, utilisez la commande suivante. Lorsque vous utilisez l’exemple de commande suivant, remplacez les
par vos propres informations.user input
placeholders
Exemple Ajout ou mise à jour de la politique de ressources pour une instance d’autorisations d’accès S3
aws s3control put-access-grants-instance-resource-policy \ --account-id
111122223333
\ --policy file://resourcePolicy.json \ --regionus-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’autorisations d’accès S3
Vous pouvez également utiliser l’interface de ligne de commande pour obtenir ou supprimer une politique de ressources pour une instance d’autorisations d’accès S3.
Pour obtenir une politique de ressources d’autorisations d’accès S3, utilisez l’exemple de commande suivant. Pour utiliser cet exemple de commande, remplacez
par vos propres informations.user input
placeholders
aws s3control get-access-grants-instance-resource-policy \ --account-id
111122223333
\ --regionus-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’autorisations d’accès S3
Pour supprimer une politique de ressources d’autorisations d’accès S3, utilisez l’exemple de commande suivant. Pour utiliser cet exemple de commande, remplacez
par vos propres informations.user input
placeholders
aws s3control delete-access-grants-instance-resource-policy \ --account-id
111122223333
\ --regionus-east-2
// No response body
Vous pouvez ajouter la politique de ressources à l’aide de l’API PutAccessGrantsInstanceResourcePolicy.
Si vous souhaitez accorder un accès intercompte pour l’instance d’autorisations d’accès S3 se trouvant dans votre compte 111122223333
au deuxième compte 444455556666
, la politique de ressources de l’instance d’autorisations d’accès S3 de votre compte 111122223333
doit autoriser le deuxième compte 444455556666
à effectuer les actions suivantes :
s3:ListAccessGrants
s3:ListAccessGrantsLocations
s3:GetDataAccess
s3:GetAccessGrantsInstanceForPrefix
Dans la politique de ressources de l’instance d’autorisations d’accès S3, spécifiez l’ARN de votre instance d’autorisations d’accès S3 comme Resource
, et le deuxième compte 444455556666
comme Principal
. Pour utiliser l’exemple suivant, remplacez les espaces réservés d’entrée utilisateur
par 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 l’API PutAccessGrantsInstanceResourcePolicy pour configurer la politique.
Pour plus d’informations sur la prise en charge de l’API REST pour mettre à jour, obtenir ou supprimer 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 kit SDK AWS expliquant comment configurer votre politique de ressources d’autorisations d’accès S3 afin d’accorder à un deuxième compte AWS l’accès à certaines de vos données S3.
Étape 3 : accorder aux identités IAM d’un deuxième compte l’autorisation d’appeler l’instance d’autorisations d’accès S3 de votre compte
Une fois que le propriétaire des données Amazon S3 a configuré la politique intercompte pour l’instance d’autorisations d’accès S3 dans le compte 111122223333
, le propriétaire du deuxième compte 444455556666
doit créer une politique basée sur l’identité pour ses utilisateurs ou rôles IAM, et le propriétaire doit leur donner accès à l’instance d’autorisations d’accès S3. 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 d’autorisations d’accès S3 et des autorisations que vous souhaitez accorder :
s3:ListAccessGrants
s3:ListAccessGrantsLocations
s3:GetDataAccess
s3:GetAccessGrantsInstanceForPrefix
s3:ListCallerAccessGrants
Selon le modèle d’accès intercompte AWS, les utilisateurs ou rôles IAM du deuxième compte 444455556666
doivent explicitement disposer d’une ou de plusieurs de ces autorisations. Par exemple, accordez l’autorisation s3:GetDataAccess
afin que l’utilisateur ou le rôle IAM puisse appeler l’instance d’autorisations d’accès S3 associée au compte 111122223333
pour demander des informations d’identification.
Pour utiliser cet exemple de commande, remplacez
par vos propres informations.user input placeholders
{ "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 d’une politique basée sur l’identité IAM, consultez Modification des politiques IAM dans le Guide AWS Identity and Access Management.
Étape 4 : créer une autorisation dans l’instance d’autorisations d’accès S3 de votre compte qui donne à l’identité IAM du deuxième compte l’accès à certaines de vos données S3
Pour l’étape finale de configuration, vous pouvez créer une autorisation dans l’instance d’autorisations d’accès S3 de votre compte 111122223333, qui donne accès à l’identité IAM du deuxième compte 444455556666 à certaines données S3 de votre compte. Pour ce faire, utilisez la console, l’interface de ligne de commande, l’API ou les kits SDK Amazon S3. Pour en savoir plus, consultez Création d’octrois.
Dans l’autorisation, spécifiez l’ARN AWS de l’identité IAM du deuxième compte et spécifiez l’emplacement dans lequel vous accordez l’accès à vos données S3 (compartiment, préfixe ou objet). Cet emplacement doit déjà être enregistré auprès de votre instance d’autorisations d’accès S3. Pour en savoir plus, consultez Enregistrement d’un emplacement. Vous pouvez la possibilité de 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 champ S3SubPrefix
. Ou si vous souhaitez limiter l’accès aux objets du compartiment dont les noms de clé commencent par un préfixe spécifique tel que 2024-03-research-results/
, transmettez S3SubPrefix=2024-03-research-results/
.
Voici un exemple de commande CLI 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
par vos propres informations.user input placeholders
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 intercompte, l’utilisateur ou le rôle du deuxième compte peut effectuer les opérations suivantes :
Appelle
ListAccessGrantsInstances
pour répertorier les instances d’autorisations d’accès S3 partagées avec ce service via AWS RAM. Pour en savoir plus, consultez Obtention des détails d’une instance d’autorisations d’accès S3.Demande des informations d’identification temporaires auprès des autorisations d’accès S3. Pour découvrir comment effectuer ces demandes, consultez Demande d’un accès aux données Amazon S3 via les autorisations d’accès S3.