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.
Avec AWS Identity and Access Management (IAM), vous pouvez créer des utilisateurs IAM et contrôler leur accès à des ressources spécifiques de votre. Compte AWS Lorsque vous utilisez IAM, vous pouvez contrôler ce que les utilisateurs peuvent utiliser CloudFormation, par exemple s'ils peuvent afficher des modèles de pile, créer des piles ou supprimer des piles.
Au-delà CloudFormation des actions spécifiques, vous pouvez gérer les AWS services et les ressources disponibles pour chaque utilisateur. Ainsi, vous pouvez contrôler les ressources auxquelles les utilisateurs peuvent accéder lorsqu'ils les utilisent CloudFormation. Par exemple, vous pouvez spécifier quels utilisateurs peuvent créer des EC2 instances Amazon, résilier des instances de base de données ou effectuer des mises à jour VPCs. Ces mêmes autorisations s'appliquent chaque fois qu'ils CloudFormation les utilisent pour effectuer ces actions.
Utilisez les informations des sections suivantes pour contrôler qui peut y accéder CloudFormation. Nous verrons également comment autoriser la création de ressources IAM dans des modèles, donner aux applications exécutées sur des EC2 instances les autorisations dont elles ont besoin et utiliser des informations d'identification de sécurité temporaires pour renforcer la sécurité de votre AWS environnement.
Définition de politiques basées sur l'identité IAM pour CloudFormation
Avec les politiques basées sur l'identité IAM, vous pouvez spécifier des actions et ressources autorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. CloudFormation prend en charge des actions, ressources et clés de condition spécifiques.
Si vous découvrez IAM, commencez par vous familiariser avec les éléments d'une politique JSON IAM. Pour plus d'informations, consultez la référence aux éléments de politique IAM JSON dans le guide de l'utilisateur IAM. Pour savoir comment créer des politiques IAM, suivez le didacticiel Créer et joindre votre première politique gérée par le client dans la documentation IAM.
Rubriques
Actions politiques pour CloudFormation
Dans une déclaration de politique IAM, vous pouvez spécifier une action d’API à partir de n’importe quel service prenant en charge IAM. Pour CloudFormation, utilisez le préfixe suivant avec le nom de l'action d'API :cloudformation:
. Par exemple : cloudformation:CreateStack
, cloudformation:CreateChangeSet
et cloudformation:UpdateStack
.
Pour spécifier plusieurs actions dans une seule instruction, séparez-les par des virgules, comme suit :
"Action": [ "cloudformation:action1
", "cloudformation:action2
" ]
Vous pouvez aussi spécifier plusieurs actions à l’aide de caractères génériques. Par exemple, vous pouvez spécifier toutes les actions dont le nom commence par le motGet
, comme suit :
"Action": "cloudformation:Get*"
Pour obtenir la liste complète des actions d' CloudFormation API, consultez la section Actions définies par AWS CloudFormation dans la référence d'autorisation de service.
Exemples
Vous trouverez ci-dessous un exemple de politique d'autorisation qui accorde des autorisations pour consulter les CloudFormation piles.
Exemple 1 : Exemple de politique octroyant des autorisations de visualisation
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":[
"cloudformation:DescribeStacks",
"cloudformation:DescribeStackEvents",
"cloudformation:DescribeStackResource",
"cloudformation:DescribeStackResources"
],
"Resource":"*"
}]
}
Les utilisateurs qui créent ou suppriment des piles ont besoin d'autorisations supplémentaires en fonction de leurs modèles de piles. Par exemple, si votre modèle décrit une file d'attente Amazon SQS, les utilisateurs doivent être autorisés à la fois pour les actions Amazon SQS CloudFormation et pour les actions Amazon SQS, comme indiqué dans l'exemple de politique suivant.
Exemple 2 : Un exemple de politique qui autorise les actions de création et de visualisation de stack et toutes les actions Amazon SQS
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":[
"sqs:*",
"cloudformation:CreateStack",
"cloudformation:DescribeStacks",
"cloudformation:DescribeStackEvents",
"cloudformation:DescribeStackResources",
"cloudformation:GetTemplate",
"cloudformation:ValidateTemplate"
],
"Resource":"*"
}]
}
Actions spécifiques à la console pour CloudFormation
Les utilisateurs de la CloudFormation console ont besoin d'autorisations supplémentaires en plus de celles requises pour le AWS Command Line Interface ou CloudFormation APIs. Ces autorisations supplémentaires prennent en charge les fonctionnalités spécifiques à la console, telles que le téléchargement de modèles vers des compartiments Amazon S3 et les listes déroulantes pour AWS les types de paramètres spécifiques.
Pour toutes les actions répertoriées ci-dessous, accordez des autorisations à toutes les ressources ; ne les limitez pas à des piles ou à des compartiments spécifiques.
L'action suivante est utilisée uniquement par la CloudFormation console et n'est pas documentée dans la référence de l'API. Cette action permet aux utilisateurs d'importer des modèles dans des compartiments Amazon S3.
-
cloudformation:CreateUploadBucket
Lorsque les utilisateurs téléchargent des modèles, ils ont également besoin des autorisations Amazon S3 suivantes :
-
s3:PutObject
-
s3:ListBucket
-
s3:GetObject
-
s3:CreateBucket
Pour voir les valeurs dans les listes déroulantes de paramètres pour les modèles avec des types de paramètres AWS spécifiques, les utilisateurs doivent être autorisés à effectuer les appels d'API de description correspondants. Par exemple, les autorisations suivantes sont requises lorsque ces types de paramètres sont utilisés dans le modèle :
-
ec2:DescribeKeyPairs
— Obligatoire pour le type deAWS::EC2::KeyPair::KeyName
paramètre. -
ec2:DescribeSecurityGroups
— Obligatoire pour le type deAWS::EC2::SecurityGroup::Id
paramètre. -
ec2:DescribeSubnets
— Obligatoire pour le type deAWS::EC2::Subnet::Id
paramètre. -
ec2:DescribeVpcs
— Obligatoire pour le type deAWS::EC2::VPC::Id
paramètre.
Pour plus d'informations sur les types de paramètres AWS spécifiques, consultezSpécifiez les ressources existantes au moment de l'exécution avec les CloudFormation types de paramètres fournis.
Ressources politiques pour CloudFormation
Dans une instruction de politiqe IAM, l'élément Resource
spécifie l'objet ou les objets couverts par l'instruction. En effet CloudFormation, chaque déclaration de politique IAM s'applique aux ressources que vous spécifiez à l'aide de leur Amazon Resource Names (ARNs). Le format ARN spécifique dépend de la ressource.
Pour une liste complète des types de CloudFormation ressources et de leurs caractéristiques ARNs, voir Types de ressources définis par AWS CloudFormation dans la référence d'autorisation de service. Pour savoir quelles actions vous pouvez spécifier avec l'ARN de chaque ressource, consultez la section Actions définies par AWS CloudFormation.
Vous pouvez spécifier des actions pour une pile spécifique, comme illustré dans l'exemple de politique suivant. Lorsque vous fournissez un ARN, remplacez-le par
des informations spécifiques à votre ressource. placeholder
text
Exemple 1 : Exemple de politique qui refuse les actions de suppression et de mise à jour de la pile pour la pile spécifiée
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Deny",
"Action":[
"cloudformation:DeleteStack",
"cloudformation:UpdateStack"
],
"Resource":"arn:aws:cloudformation:region
:account-id
:stack/MyProductionStack
/*"
}]
}
La politique ci-dessus utilise un caractère générique à la fin du nom de la pile afin que la suppression de la pile et la mise à jour de la pile soient refusées à la fois sur l'ID de pile complet (tel quearn:aws:cloudformation:
) et sur le nom de la pile (tel queregion
:account-id
:stack/MyProductionStack
/abc9dbf0-43c2-11e3-a6e8-50fa526be49c
).MyProductionStack
Pour permettre aux AWS::Serverless
transformations de créer un ensemble de modifications, incluez l'autorisation arn:aws:cloudformation:
au niveau des ressources, comme indiqué dans la politique suivante.region
:aws:transform/Serverless-2016-10-31
Exemple 2 : Un exemple de politique qui autorise l'action de création, de modification et de définition pour la transformation spécifiée
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"cloudformation:CreateChangeSet"
],
"Resource": "arn:aws:cloudformation:region
:aws:transform/Serverless-2016-10-31"
}]
}
Clés de conditions de politique pour CloudFormation
Dans une déclaration de politique IAM, vous pouvez éventuellement spécifier les conditions qui contrôlent le moment où une politique est en vigueur. Par exemple, vous pouvez définir une stratégie qui permet aux utilisateurs de créer une pile uniquement lorsqu'ils spécifient une URL de modèle spécifique. Vous pouvez définir CloudFormation des conditions spécifiques et des conditions AWS généralesDateLessThan
, telles que celles qui indiquent à quel moment une politique cesse de prendre effet. Pour plus d'informations et une liste des AWS conditions générales, voir la référence relative à la condition dans les éléments de stratégie IAM dans le guide de l'utilisateur IAM.
Note
N'utilisez pas la condition aws:SourceIp
AWS« wide ». CloudFormationapprovisionne les ressources en utilisant sa propre adresse IP, et non l'adresse IP de la demande d'origine. Par exemple, lorsque vous créez une pile, vous envoyez CloudFormation des demandes à partir de son adresse IP pour lancer une EC2 instance Amazon ou pour créer un compartiment Amazon S3, et non à partir de l'adresse IP de l'CreateStack
appel ou de la create-stack commande.
La liste suivante décrit les conditions CloudFormation spécifiques. Ces conditions sont appliquées uniquement lorsque les utilisateurs créent ou mettent à jour les piles :
cloudformation:ChangeSetName
-
Nom du groupe de CloudFormation modifications que vous souhaitez associer à une politique. Utilisez cette condition pour contrôler les jeux de modifications que les utilisateurs peuvent exécuter ou supprimer.
cloudformation:ImportResourceTypes
-
Types de ressource du modèle que vous souhaitez associer à une politique, comme
AWS::EC2::Instance
. Utilisez cette condition pour contrôler les types de ressources que les utilisateurs peuvent utiliser lorsqu'ils importent des ressources dans une pile. Cette condition est vérifiée par rapport aux types de ressources déclarés par les utilisateurs dans leResourcesToImport
paramètre, qui n'est actuellement pris en charge que pour AWS CLI les demandes d'API. Lorsque vous utilisez ce paramètre, vous devez spécifier tous les types de ressources que les utilisateurs doivent contrôler pendant les opérations d'importation. Pour plus d'informations sur leResourcesToImport
paramètre, consultez le CreateChangeSetaction dans la référence AWS CloudFormation d'API.Pour une liste des options possibles
ResourcesToImport
, voirSupport des types de ressources.Utilisez la convention de dénomination des ressources en trois parties pour spécifier les types de ressources que les utilisateurs peuvent utiliser, depuis toutes les ressources d'une organisation jusqu'à un type de ressource individuel.
organization
::*-
Spécifiez tous les types de ressources pour une organisation donnée.
organization
::
::*service_name
-
Spécifiez tous les types de ressources pour le service spécifié au sein d'une organisation donnée.
organization
::
::service_name
resource_type
-
Spécifiez un type de ressource spécifique.
Par exemple :
AWS::*
-
Spécifiez tous les types de AWS ressources pris en charge.
AWS::
service_name
::*-
Spécifiez toutes les ressources prises en charge pour un service AWS spécifique.
AWS::
service_name
::resource_type
-
Spécifiez un type de AWS ressource spécifique, tel que
AWS::EC2::Instance
(toutes les EC2 instances).
cloudformation:ResourceTypes
-
Types de ressource du modèle, comme
AWS::EC2::Instance
, que vous voulez associer à une politique. Utilisez cette condition pour contrôler les types de ressource dont les utilisateurs peuvent se servir lorsqu'ils créent ou mettent à jour d'une pile. Cette condition est comparée avec les types de ressource que les utilisateurs déclarent dans le paramètreResourceTypes
, qui est actuellement pris en charge uniquement pour les requêtes d' AWS CLI et d'API. Avec ce paramètre, les utilisateurs doivent spécifier tous les types de ressource qui se trouvent dans leur modèle. Pour plus d'informations sur leResourceTypes
paramètre, consultez le CreateStackaction dans la référence AWS CloudFormation d'API.Pour afficher la liste des types de ressources pris en charge, consultez AWS référence aux types de ressources et de propriétés.
Utilisez la convention de dénomination des ressources en trois parties pour spécifier les types de ressources que les utilisateurs peuvent utiliser, depuis toutes les ressources d'une organisation jusqu'à un type de ressource individuel.
organization
::*-
Spécifiez tous les types de ressources pour une organisation donnée.
organization
::
::*service_name
-
Spécifiez tous les types de ressources pour le service spécifié au sein d'une organisation donnée.
organization
::
::service_name
resource_type
-
Spécifiez un type de ressource spécifique.
Par exemple :
AWS::*
-
Spécifiez tous les types de AWS ressources pris en charge.
AWS::
service_name
::*-
Spécifiez toutes les ressources prises en charge pour un service AWS spécifique.
AWS::
service_name
::resource_type
-
Spécifiez un type de AWS ressource spécifique, tel que
AWS::EC2::Instance
(toutes les EC2 instances). Alexa::ASK::*
-
Spécifiez tous les types de ressources dans le kit de compétences Alexa.
Alexa::ASK::Skill
-
Spécifiez le type de ressource Alexa : :ASK : :Skill individuel.
Custom::*
-
Spécifiez toutes les ressources personnalisées.
Pour de plus amples informations, veuillez consulter Créez une logique de provisionnement personnalisée avec des ressources personnalisées.
Custom::
resource_type
-
Spécifiez un type de ressource personnalisé spécifique.
Pour de plus amples informations, veuillez consulter Créez une logique de provisionnement personnalisée avec des ressources personnalisées.
cloudformation:RoleARN
-
Amazon Resource Name (ARN) du rôle de service IAM que vous voulez associer à une politique. Utilisez cette condition pour contrôler le rôle de service que les utilisateurs peuvent utiliser lorsqu'ils utilisent des piles ou des jeux de modifications.
cloudformation:StackPolicyUrl
-
URL de la politique de pile Amazon S3 que vous souhaitez associer à une politique. Utilisez cette condition pour contrôler les stratégies de pile que les utilisateurs utilisateurs peuvent associer à une pile pendant la création ou la mise à jour de cette dernière. Pour plus d'informations sur les politiques de pile, consultez Empêcher les mises à jour des ressources de la pile.
Note
Pour garantir que les utilisateurs ne peuvent créer ou mettre à jour des piles qu'avec les politiques de pile que vous avez téléchargées, configurez le compartiment S3 en lecture seule pour ces utilisateurs.
cloudformation:TemplateUrl
-
URL d'un modèle Amazon S3 que vous voulez associer à une politique. Utilisez cette condition pour contrôler les modèles auxquels les utilisateurs peuvent se reporter lorsqu'ils créent ou mettent à jour des piles.
Note
Pour garantir que les utilisateurs ne peuvent créer ou mettre à jour des piles qu'avec les modèles que vous avez téléchargés, configurez le compartiment S3 en lecture seule pour ces utilisateurs.
Note
Les conditions CloudFormation spécifiques suivantes s'appliquent aux paramètres d'API du même nom :
-
cloudformation:ChangeSetName
-
cloudformation:RoleARN
-
cloudformation:StackPolicyUrl
-
cloudformation:TemplateUrl
Par exemple, s'applique
cloudformation:TemplateUrl
uniquement auTemplateUrl
paramètre pourCreateStack
UpdateStack
, etCreateChangeSet
APIs. -
Pour des exemples de politiques IAM qui utilisent des clés de condition pour contrôler l'accès, consultezExemples de politiques basées sur l'identité IAM pour CloudFormation.
Confirmation des ressources IAM dans les modèles CloudFormation
Avant de créer une pile, CloudFormation validez votre modèle. Lors de la validation, CloudFormation vérifie dans votre modèle les ressources IAM qu'il est susceptible de créer. Les ressources IAM, telles qu'un utilisateur disposant d'un accès complet, peuvent consulter et modifier n'importe quelle ressource de votre Compte AWS. Par conséquent, nous vous suggérons de passer en revue les autorisations associées à chaque ressource IAM avant de poursuivre. Vous éviterez ainsi de créer par erreur des ressources disposant d'autorisations que vous ne souhaitez pas accorder. Pour vous assurer que vous l'avez fait, vous devez reconnaître que le modèle contient ces ressources, en fournissant CloudFormation les fonctionnalités spécifiées avant de créer la pile.
Vous pouvez reconnaître les fonctionnalités des CloudFormation modèles à l'aide de la CloudFormation console, AWS Command Line Interface (AWS CLI) ou de l'API :
-
Dans la CloudFormation console, sur la page Configurer les options de pile des assistants Create Stack ou Update Stack, sélectionnez Je reconnais que ce modèle peut créer des ressources IAM.
-
Dans le AWS CLI, lorsque vous utilisez le create-stack et update-stackcommandes, spécifiez la
CAPABILITY_NAMED_IAM
valeurCAPABILITY_IAM
ou de l'--capabilities
option. Si votre modèle comprend des ressources IAM, vous pouvez spécifier l'une ou l'autre de ces fonctionnalités. S'il comprend des noms personnalisés pour les ressources IAM, vous devez spécifierCAPABILITY_NAMED_IAM
. -
Dans l'API, lorsque vous utilisez le CreateStack et UpdateStackactions, spécifiez
Capabilities.member.1=CAPABILITY_IAM
ouCapabilities.member.1=CAPABILITY_NAMED_IAM
. Si votre modèle comprend des ressources IAM, vous pouvez spécifier l'une ou l'autre de ces fonctionnalités. S'il comprend des noms personnalisés pour les ressources IAM, vous devez spécifierCAPABILITY_NAMED_IAM
.
Important
Si votre modèle contient des ressources IAM dont le nom est personnalisé, ne créez pas plusieurs piles avec le même modèle. De manière générale, les ressources IAM doivent être uniques au sein de votre compte. Si vous utilisez le même modèle pour créer plusieurs piles dans différentes régions, vos piles risquent de partager les mêmes ressources IAM au lieu d'avoir chacune une ressource unique. Les ressources partagées entre les piles peuvent avoir des conséquences imprévues et irréversibles. Par exemple, si vous supprimez ou mettez à jour des ressources IAM partagées dans une pile, vous modifierez les ressources des autres piles sans le vouloir.
Gestion des informations d'identification pour les applications exécutées sur EC2 des instances Amazon
Si vous avez une application qui s'exécute sur une EC2 instance Amazon et doit envoyer des demandes à des AWS ressources telles que des compartiments Amazon S3 ou une table DynamoDB, l'application a besoin d'informations d'identification de sécurité. AWS Toutefois, la distribution et intégration d'informations d'identification de sécurité à long terme dans toutes les instances que vous lancez peuvent s'avérer compliquées et présentent un risque de sécurité potentiel. Au lieu d'utiliser des informations d'identification à long terme, telles que les informations d'identification utilisateur IAM, nous vous recommandons de créer un rôle IAM associé à une EC2 instance Amazon lorsque celle-ci est lancée. Une application peut ensuite obtenir des informations d'identification de sécurité temporaires auprès de l' EC2 instance Amazon. Vous n'avez pas à intégrer d'informations d'identification à long terme dans l'instance. De plus, pour faciliter la gestion des informations d'identification, vous pouvez spécifier un seul rôle pour plusieurs EC2 instances Amazon ; vous n'avez pas besoin de créer des informations d'identification uniques pour chaque instance.
Pour voir un extrait de modèle qui montre comment lancer une instance avec un rôle, consultez la page IAMexemples de modèles de rôles.
Note
Les applications associées à des instances qui utilisent des informations d'identification de sécurité temporaires peuvent appeler n'importe quelle action CloudFormation . Toutefois, étant donné qu'il CloudFormation interagit avec de nombreux autres AWS services, vous devez vérifier que tous les services que vous souhaitez utiliser prennent en charge les informations d'identification de sécurité temporaires. Pour obtenir la liste des services qui acceptent les informations d'identification de sécurité temporaires, consultez la section AWS Services compatibles avec IAM dans le Guide de l'utilisateur IAM.
Octroi d'un accès temporaire (accès fédéré)
Dans certains cas, vous souhaiterez peut-être accorder aux utilisateurs sans AWS informations d'identification un accès temporaire à votre Compte AWS. Plutôt que de créer et de supprimer des informations d'identification à long terme chaque fois que vous souhaitez accorder un accès temporaire, utilisez AWS Security Token Service (AWS STS). Par exemple, vous pouvez utiliser des rôles IAM. A partir d'un rôle IAM, vous pouvez créer, puis distribuer de nombreuses informations d'identification de sécurité temporaires par programmation (notamment une clé d'accès, une clé d'accès secrète et un jeton de sécurité). Ces informations d'identification ont une durée de vie limitée, elles ne peuvent donc pas être utilisées pour accéder à vos informations d'identification Compte AWS après leur expiration. Vous pouvez également créer plusieurs rôles IAM afin d'accorder à différents utilisateurs des niveaux d'autorisations distincts. Les rôles IAM sont utiles pour des scénarios comme les identités fédérées et l'authentification unique.
Une identité fédérée est une identité distincte que vous pouvez utiliser sur plusieurs systèmes. Les utilisateurs en entreprise disposant d'un système d'identité sur site (par exemple, LDAP ou Active Directory) peuvent s'en servir pour gérer toutes les authentifications. Une fois qu'un utilisateur a été authentifié, vous fournissez des informations d'identification de sécurité temporaires à partir de l'utilisateur ou du rôle IAM approprié. Par exemple, vous pouvez créer un rôle d'administrateur et un rôle de développeur, dans lesquels les administrateurs ont un accès complet au AWS compte et les développeurs sont autorisés à travailler uniquement avec des CloudFormation piles. Une fois qu'un administrateur est authentifié, il est autorisé à obtenir des informations d'identification de sécurité temporaires à partir du rôle d'administrateur. Toutefois, pour les développeurs, ils peuvent obtenir des informations d'identification de sécurité temporaires uniquement à partir du rôle de développeur.
Vous pouvez également accorder aux utilisateurs fédérés l'accès au AWS Management Console. Une fois que les utilisateurs s'authentifient via votre système d'identité sur site, vous pouvez créer une URL temporaire par programmation afin de leur permettre d'accéder directement à AWS Management Console. Lorsque les utilisateurs utilisent l'URL temporaire, ils n'ont pas besoin de se connecter AWS car ils ont déjà été authentifiés (authentification unique). En outre, comme l'URL repose sur les informations d'identification de sécurité temporaires des utilisateurs, les autorisations associées déterminent les actions qu'ils peuvent effectuer dans AWS Management Console.
Vous pouvez en utiliser plusieurs AWS STS APIs pour générer des informations d'identification de sécurité temporaires. Pour plus d'informations sur l'API à utiliser, consultez la section Comparer les AWS STS informations d'identification dans le guide de l'utilisateur IAM.
Important
Vous ne pouvez pas utiliser IAM avec les informations d'identification de sécurité temporaires qui ont été générées à partir de l'API GetFederationToken
. Si vous avez besoin de travailler avec IAM, utilisez plutôt les informations d'identification de sécurité temporaires d'un rôle.
CloudFormation interagit avec de nombreux autres AWS services. Lorsque vous utilisez des informations d'identification de sécurité temporaires avec CloudFormation, vérifiez que tous les services que vous souhaitez utiliser prennent en charge les informations d'identification de sécurité temporaires. Pour obtenir la liste des services qui acceptent les informations d'identification de sécurité temporaires, consultez la section AWS Services compatibles avec IAM dans le Guide de l'utilisateur IAM.
Pour plus d'informations, consultez les ressources connexes suivantes dans le guide de l'utilisateur IAM :