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.
Rôles de service pour CloudFormation
Un rôle de service est un rôle AWS Identity and Access Management (IAM) qui permet de créer, de mettre AWS CloudFormation à jour ou de supprimer des ressources de pile. Si vous ne fournissez pas de rôle de service, CloudFormation utilise les informations d'identification du principal IAM pour effectuer les opérations de pile. Si vous créez un rôle de service CloudFormation et que vous le spécifiez lors de la création de la pile, CloudFormation utilisez les informations d'identification du rôle de service pour effectuer les opérations, au lieu des informations d'identification du principal IAM.
Lorsque vous utilisez un rôle de service, la politique basée sur l'identité attachée au principal IAM ne nécessite pas d'autorisations pour fournir toutes les AWS ressources définies dans le modèle. CloudFormation Si vous n'êtes pas prêt à fournir AWS des ressources pour les opérations commerciales critiques par le biais d'un pipeline de développement (une bonne pratique AWS recommandée), l'utilisation d'un rôle de service peut ajouter un niveau de protection supplémentaire pour la gestion des ressources dans AWS. Les avantages de cette approche sont les suivants :
-
Les responsables IAM de votre organisation suivent un modèle de moindre privilège qui les empêche de créer ou de modifier manuellement des AWS ressources dans votre environnement.
-
Pour créer, mettre à jour ou supprimer AWS des ressources, les responsables IAM doivent utiliser. CloudFormation Cela normalise le provisionnement des ressources via l'infrastructure en tant que code.
Par exemple, pour créer une pile contenant une instance Amazon Elastic Compute Cloud (Amazon EC2), le responsable IAM doit être autorisé à créer des EC2 instances par le biais de sa politique basée sur l'identité. CloudFormation Vous pouvez plutôt assumer un rôle de service autorisé à créer des EC2 instances pour le compte du principal. Avec cette approche, le principal IAM peut créer la pile, et vous n'avez pas besoin de lui accorder des autorisations trop larges pour un service auquel il ne devrait pas avoir un accès régulier.
Pour utiliser un rôle de service pour créer des CloudFormation piles, les principaux IAM doivent être autorisés à transmettre le rôle de service CloudFormation, et la politique de confiance du rôle de service doit CloudFormation permettre d'assumer ce rôle.
Cette section contient les rubriques suivantes :
Implémentation du moindre privilège pour les rôles CloudFormation de service
Dans un rôle de service, vous définissez une politique d'autorisation qui spécifie explicitement les actions que le service peut effectuer. Il se peut que ces actions ne soient pas les mêmes que celles qu'un directeur IAM peut effectuer. Nous vous recommandons de revenir en arrière à partir de vos CloudFormation modèles pour créer un rôle de service conforme au principe du moindre privilège.
Le fait de définir correctement la politique basée sur l'identité d'un principal IAM pour ne transmettre que des rôles de service spécifiques et de définir la politique de confiance d'un rôle de service pour permettre uniquement à des principaux spécifiques d'assumer le rôle permet d'éviter une éventuelle augmentation de privilèges liée aux rôles de service.
Configuration des rôles de service
Note
Les rôles de service sont configurés dans IAM. Pour créer un rôle de service, vous devez disposer des autorisations nécessaires. Un directeur IAM autorisé à créer un rôle et à associer n'importe quelle politique peut augmenter ses propres autorisations. AWS recommande de créer un rôle de service Service AWS pour chaque cas d'utilisation. Une fois que vous avez créé des rôles de CloudFormation service pour vos cas d'utilisation, vous pouvez autoriser les utilisateurs à ne transmettre que le rôle de service approuvé à CloudFormation. Pour des exemples de politiques basées sur l'identité qui permettent aux utilisateurs de créer des rôles de service, consultez la section Autorisations relatives aux rôles de service dans la documentation IAM.
Pour obtenir des instructions sur la création de rôles de service, voir Création d'un rôle pour déléguer des autorisations à un Service AWS. Spécifiez CloudFormation (cloudformation.amazonaws.com
) en tant que service habilité à assumer le rôle. Cela empêche un directeur IAM d'assumer lui-même le rôle ou de le transmettre à d'autres services. Lorsque vous configurez un rôle de serviceEffect
, les Resource
élémentsAction
, et sont obligatoires. Vous pouvez également définir un Condition
élément en option.
Pour plus d'informations sur ces éléments, consultez la référence des éléments de politique IAM JSON. Pour une liste complète des actions, des ressources et des clés de condition, voir Actions, ressources et clés de condition pour la gestion des identités et des accès.
Octroi d'autorisations principales à un IAM pour utiliser un rôle CloudFormation de service
Pour provisionner des ressources à CloudFormation l'aide du rôle de CloudFormation service, le principal IAM doit être autorisé à transmettre le rôle de service. Vous pouvez limiter les autorisations du principal IAM afin de ne transmettre que certains rôles en spécifiant l'ARN du rôle dans les autorisations du principal. Pour plus d'informations, consultez la section Octroi à un utilisateur des autorisations lui permettant de transmettre un rôle à un Service AWS dans la documentation IAM.
La déclaration de politique basée sur l'identité IAM suivante permet au directeur de transmettre les rôles, y compris les rôles de service, qui se trouvent dans le chemin. cfnroles
Le directeur ne peut pas transmettre des rôles qui suivent un chemin différent.
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/cfnroles/*" }
Une autre approche pour limiter les principaux à certains rôles consiste à utiliser un préfixe pour les noms des rôles CloudFormation de service. La déclaration de politique suivante autorise les responsables IAM à transmettre uniquement les rôles dotés d'un CFN-
préfixe.
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*" }
Outre les déclarations de politique précédentes, vous pouvez utiliser la clé de cloudformation:RoleARN
condition pour fournir des contrôles plus précis dans la politique basée sur l'identité, pour l'accès au moindre privilège. La déclaration de politique suivante autorise le principal IAM à créer, mettre à jour et supprimer des piles uniquement si elles transmettent un rôle de CloudFormation service spécifique. En variante, vous pouvez définir plusieurs rôles ARNs de CloudFormation service dans la clé de condition.
{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*", "Condition": { "StringEquals": { "cloudformation:RoleArn": [ "<ARN of the specific CloudFormation service role>
" ] } } }
En outre, vous pouvez également utiliser la clé de cloudformation:RoleARN
condition pour empêcher un principal IAM de transmettre un rôle de CloudFormation service hautement privilégié pour les opérations de stack. La seule modification requise concerne l'opérateur conditionnel, de StringEquals
àStringNotEquals
.
{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*", "Condition": { "StringNotEquals": { "cloudformation:RoleArn": [ "<ARN of a privilege CloudFormation service role>
" ] } } }
Configuration d'une politique de confiance pour le rôle CloudFormation de service
Une politique de confiance des rôles est une politique obligatoire basée sur les ressources qui est attachée à un rôle IAM. Une politique de confiance définit les principaux IAM qui peuvent assumer ce rôle. Dans une politique de confiance, vous pouvez spécifier des utilisateurs, des rôles, des comptes ou des services en tant que principaux. Pour empêcher les principaux IAM de transmettre des rôles de service CloudFormation à d'autres services, vous pouvez définir CloudFormation comme principal la politique de confiance du rôle.
La politique de confiance suivante permet uniquement au CloudFormation service d'assumer le rôle de service.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } }
Associer un rôle de service à une pile
Une fois qu'un rôle de service est créé, vous pouvez l'associer à une pile lorsque vous créez la pile. Pour plus d'informations, consultez la section Configurer les options de pile. Avant de spécifier un rôle de service, assurez-vous que les principaux IAM sont autorisés à le transmettre. Pour de plus amples informations, veuillez consulter Octroi d'autorisations principales à un IAM pour utiliser un rôle CloudFormation de service.