Permettre à AWS OpsWorks Stacks d'agir en votre nom - AWS OpsWorks

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.

Permettre à AWS OpsWorks Stacks d'agir en votre nom

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

AWS OpsWorks Stacks doit interagir avec divers services AWS en votre nom. Par exemple, AWS OpsWorks Stacks interagit avec Amazon EC2 pour créer des instances et avec CloudWatch Amazon pour obtenir des statistiques de surveillance. Lorsque vous créez une pile, vous spécifiez un rôle IAM, généralement appelé rôle de service, qui accorde à AWS OpsWorks Stacks les autorisations appropriées.

Liste des rôles IAM sur la page Ajouter une pile.

Lorsque vous spécifiez le rôle de service d'une nouvelle pile, vous pouvez effectuer l'une des actions suivantes :

  • Spécifier un rôle de service standard que vous avez créé plus tôt.

    Vous pouvez généralement créer un rôle de service standard lorsque vous créez votre première pile, puis utiliser ce rôle pour toutes les piles suivantes.

  • Spécifiez un rôle de service personnalisé que vous avez créé à l'aide de la console ou de l'API IAM.

    Cette approche est utile si vous souhaitez accorder à AWS OpsWorks Stacks des autorisations plus limitées que le rôle de service standard.

Note

Pour créer votre première pile, vous devez disposer des autorisations définies dans le modèle de AdministratorAccesspolitique IAM. Ces autorisations permettent à AWS OpsWorks Stacks de créer un rôle de service IAM et vous permettent d'importer des utilisateurs, comme indiqué plus tôt. Pour toutes les piles suivantes, les utilisateurs peuvent sélectionner le rôle de service créé pour la première pile ; ils n'ont pas besoin d'autorisations d'administration complètes pour créer une pile.

Le rôle de service standard octroie les autorisations suivantes :

  • Effectuez toutes les actions Amazon EC2 ()ec2:*.

  • Obtenez CloudWatch des statistiques (cloudwatch:GetMetricStatistics).

  • Utilisez Elastic Load Balancing pour distribuer le trafic vers les serveurs (elasticloadbalancing:*).

  • Utilisez une instance Amazon RDS comme serveur de base de données (rds:*).

  • Utilisez les rôles IAM (iam:PassRole) pour garantir une communication sécurisée entre AWS OpsWorks Stacks et vos instances Amazon EC2.

Si vous créez un rôle de service personnalisé, vous devez vous assurer qu'il accorde toutes les autorisations dont AWS OpsWorks Stacks a besoin pour gérer votre stack. L'exemple JSON suivant est la déclaration de stratégie pour le rôle de service standard ; un rôle de service personnalisé doit au moins inclure les autorisations suivantes dans sa déclaration de stratégie.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "ecs:*", "elasticloadbalancing:*", "rds:*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }

Un rôle de service a également une relation d'approbation. Les rôles de service créés par AWS OpsWorks Stacks ont la relation de confiance suivante.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StsAssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Le rôle de service doit avoir cette relation de confiance pour que AWS OpsWorks Stacks puisse agir en votre nom. Si vous utilisez le rôle de service par défaut, ne modifiez pas la relation d'approbation. Si vous créez un rôle de service personnalisé, spécifiez la relation de confiance en effectuant l'une des opérations suivantes :

  • Si vous utilisez l'assistant de création de rôle dans la console IAM, dans Choisir un cas d'utilisation, choisissez Opsworks. Ce rôle possède la relation de confiance appropriée, mais aucune politique n'y est implicitement attachée. Pour autoriser AWS OpsWorks Stacks à agir en votre nom, créez une politique gérée par le client contenant les éléments suivants et associez-la au nouveau rôle.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "ec2:*", "ecs:*", "elasticloadbalancing:*", "iam:GetRolePolicy", "iam:ListInstanceProfiles", "iam:ListRoles", "iam:ListUsers", "rds:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } } ] }
  • Si vous utilisez un AWS CloudFormation modèle, vous pouvez ajouter quelque chose comme ce qui suit à la section Ressources de votre modèle.

    "Resources": { "OpsWorksServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "opsworks.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "opsworks-service", "PolicyDocument": { ... } ] } }, } }