5

J'essaie de définir le flux logique d'un modèle AWS CloudFormation qui assumera un rôle IAM pouvant extraire des fichiers d'un compartiment S3 dans un autre compte AWS.Comment puis-je utiliser AssumeRole à partir d'un autre compte AWS dans un modèle CloudFormation?

Ce que j'ai à ce jour est la suivante:

  1. a une roleA compte Pour
  2. roleA a une politique qui permet m: AssumeRole pour un rôle dans CompteB: arn: aws: iam :: 11122233444: rôle/AllowPullS3
  3. CompteB a un rôle (AllowPullS3) avec
  4. politique permet: s3 listBucket + get, put, supprimer
  5. relation de confiance pour compte pour: action: "m: AssumeRole"

Si je crée manuellement une instance EC2 avec IAM: roleA et que j'utilise ensuite l'interface de ligne de commande pour obtenir les informations d'identification assumer-rôle, je peux extraire les fichiers du compartiment S3 de l'autre compte comme prévu. Mais qu'est-ce que j'ai besoin de mettre où dans mon modèle accountA CF qui permettra à l'instance EC2 d'assumer le rôle B et tirer le fichier du seau accountB S3 dans le cadre de la formation?

J'ai essayé de suivre beaucoup de tutoriels tels que this cfn-iam:init tutorial mais je n'arrive toujours pas à comprendre ce qui se passe.

Merci pour votre avis.

Art

+0

Avez-vous d'utiliser AssumeRole? Est-ce qu'une politique de seau suffirait ou essayez-vous d'éviter cela? Si vous avez créé manuellement le rôle dans accountA et l'avez attaché à l'instance EC2 à l'aide de la propriété IamInstanceProfile, vous pouvez ajouter l'ARN de rôle de accountA à une stratégie de compartiment dans le compartiment s3 du compteB si vous le souhaitez. C'est plus simple que de jouer avec des rôles inter-comptes. – lokulin

Répondre

1

Il est impossible de dire CloudFormation d'assumer un autre rôle. Toutefois, si vous disposez d'un script/commande CLI fonctionnant sur l'instance Amazon EC2, transmettez simplement ce script en tant que données utilisateur. Le script s'exécutera au démarrage de votre instance. Les données utilisateur peuvent être transmises dans votre modèle CloudFormation, où l'instance EC2 est définie.

Voir: Running Commands on Your Linux Instance at Launch

Questions connexes