Comment puis-je accorder à mon instance Amazon EC2 l’accès à un compartiment Amazon S3 dans un autre compte AWS ?
Je souhaite utiliser une instance Amazon Elastic Compute Cloud (Amazon EC2) pour accéder à mon compartiment Amazon Simple Storage Service (Amazon S3) dans un autre compte AWS.
Résolution
Pour accorder un accès intercompte à un compartiment S3 depuis une instance EC2, configurez une relation d’approbation entre deux comptes AWS. Utilisez des rôles Gestion des identités et des accès AWS (AWS IAM) pour créer la relation. À partir du compte du propriétaire du compartiment, créez un rôle qui accorde des autorisations S3. À partir du compte du propriétaire de l'instance EC2, créez un rôle pouvant assumer le rôle du propriétaire du compartiment pour accéder au compartiment.
Créer un rôle à partir du compte du propriétaire du compartiment
Pour créer un rôle Gestion des identités et des accès (IAM) depuis le compte du propriétaire du compartiment, procédez comme suit :
-
Utilisez le compte du propriétaire du compartiment pour vous connecter à la console de gestion AWS.
-
Ouvrez la console IAM.
-
Dans le volet de navigation, choisissez Rôles, puis Créer un rôle.
-
Pour Type d’entité approuvée, sélectionnez Compte AWS.
-
Sélectionnez Un autre compte AWS, puis saisissez l'identifiant du compte du propriétaire de l'instance EC2.
Remarque : ne sélectionnez pas Exiger un identifiant externe ou Exiger l'authentification MFA à moins que vos exigences de sécurité ne prescrivent ces options. -
Sélectionnez Suivant.
-
Attachez une politique IAM au rôle qui délègue l’accès à Amazon S3, puis choisissez Suivant. Par exemple, la politique IAM suivante accorde l’accès s3:GetObject aux objets du compartiment :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] } ] }Remarque : remplacez DOC-EXAMPLE-BUCKET par le nom de votre compartiment. Modifiez également la politique IAM en fonction des autorisations au niveau du compartiment Amazon S3 et au niveau de l’objet qui sont requises pour votre cas d’utilisation.
-
Pour Nom du rôle, saisissez le nom du rôle.
-
(Facultatif) Ajoutez des identifications au rôle.
-
Sélectionnez Créer un rôle.
Depuis le compte du propriétaire du compartiment, rechercher l’Amazon Resource Name (ARN) du rôle IAM
Pour trouver l’ARN du rôle IAM, procédez comme suit :
- Dans le volet de navigation de la console IAM, choisissez Rôles.
- Choisissez le rôle IAM que vous avez créé.
- Notez la valeur répertoriée pour le champ ARN de rôle.
À partir du compte du propriétaire de l'instance EC2, créer un autre rôle et l’associer à l'instance
Pour créer un autre profil d’instance depuis le compte du propriétaire de l’instance EC2 et l’associer à l’instance, procédez comme suit :
- Utilisez le compte du propriétaire de l'instance EC2 pour vous connecter à la console de gestion AWS.
- Ouvrez la console IAM.
- Dans le volet de navigation, choisissez Rôles, puis Créer un rôle.
- Pour Type d’entité approuvée, choisissez Service AWS.
- Pour Service ou cas d’utilisation, choisissez EC2, puis sélectionnez votre cas d’utilisation.
- Sélectionnez Suivant.
- Sur la page Ajouter des autorisations, choisissez Suivant.
- Pour Nom du rôle, saisissez le nom du rôle.
- (Facultatif) Ajoutez des identifications au rôle.
- Sélectionnez Créer un rôle.
- Dans la liste des rôles, choisissez le rôle que vous avez créé.
- Pour Ajouter des autorisations, choisissez Créer une politique en ligne.
- Pour Éditeur de politiques, sélectionnez JSON, puis saisissez la politique suivante :
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111111111111:role/ROLENAME" }] }
Remarque : remplacez arn:aws:iam::111111111111:role/ROLENAME par l’ARN du rôle IAM que vous avez créé sur le compte du propriétaire du compartiment.
- Sélectionnez Suivant.
- Pour Nom, saisissez un nom pour la politique, puis choisissez Créer une politique.
- Attachez le rôle IAM à l’instance que vous utilisez pour accéder au compartiment Amazon S3.
Créer un profil pour le rôle dans le fichier de configuration CLI depuis l’instance Amazon EC2
Remarque : si vous utilisez SSH et Session Manager pour vous connecter à vos instances, vous devez effectuer ces étapes pour ec2-user et pour ssm-user. Session Manager est un outil intégré à AWS Systems Manager.
Pour créer un profil pour le rôle dans le fichier de configuration CLI depuis l’instance, procédez comme suit :
-
Connectez-vous à l’instance. Pour en savoir plus, consultez la section Se connecter à votre instance Linux à l’aide de SSH ou Se connecter à votre instance Windows à l’aide de RDP.
-
Pour savoir si le répertoire contient déjà un dossier nommé ~/.aws, exécutez la commande ls suivante afin de lister le répertoire d’instance :
ls -l ~/.aws -
Si vous trouvez le dossier ~/.aws, passez à l’étape suivante. Si vous ne trouvez pas de dossier ~/.aws, exécutez la commande mkdir suivante pour le créer :
mkdir ~/.aws/ -
Dans le dossier ~/.aws, utilisez un éditeur de texte pour créer un fichier. Nommez le fichier configuration.
-
Dans le fichier, entrez le texte suivant pour définir un profil pour le rôle :
[profile enterprofilename] role_arn = arn:aws:iam::111111111111:role/ROLENAME credential_source = Ec2InstanceMetadataRemarque : remplacez enterprofilename par votre valeur. Remplacez arn:aws:iam::111111111111:role/ROLENAME par l’ARN du rôle que vous avez créé sur le compte du propriétaire du compartiment.
-
Enregistrez le fichier.
Vérifier que le profil d’instance peut assumer le rôle
Pour vérifier que le rôle de votre instance peut assumer le rôle sur le compte du propriétaire de l’instance, connectez-vous à l’instance, puis exécutez la commande suivante :
aws sts get-caller-identity --profile profilename
Remarque : remplacez le profilename par le nom du rôle que vous avez attaché à l’instance.
La commande renvoie une sortie semblable à la suivante :
"Account": "11111111111", "UserId": "AROAEXAMPLEID:sessionName", "Arn": "arn:aws:sts::111111111111:assumed-role/ROLENAME/sessionName"
Vérifiez que la valeur du champ "Arn" correspond à l’ARN du rôle que vous avez créé sur le compte du propriétaire du compartiment.
Vérifier l’accès au compartiment Amazon S3
Pour vérifier que votre instance peut accéder au compartiment S3, connectez-vous à l’instance, puis exécutez la commande de liste suivante :
aws s3 ls s3://DOC-EXAMPLE-BUCKET --profile profilename
Remarque : remplacez DOC-EXAMPLE-BUCKET par le nom de votre compartiment et remplacez profilename par le nom que vous avez configuré dans le fichier de configuration.
Si votre instance parvient à accéder au compartiment, vous recevez une réponse semblable à la suivante :
PRE Hello/ 2018-08-15 16:16:51 89 index.html
Informations connexes
Didacticiel IAM : Déléguer l’accès entre les comptes AWS à l’aide des rôles IAM
- Sujets
- Storage
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a un an
- demandé il y a 10 mois
- demandé il y a 2 ans
- demandé il y a 10 mois