Accorder des autorisations IAM pour les Hooks CloudFormation - AWS CloudFormation

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.

Accorder des autorisations IAM pour les Hooks CloudFormation

Par défaut, un nouvel utilisateur Compte AWS n'est pas autorisé à gérer les Hooks à l'aide de l'API AWS Management Console, AWS Command Line Interface (AWS CLI) ou de AWS l'API. Pour accorder des autorisations aux utilisateurs, un administrateur IAM peut créer des politiques IAM. L’administrateur peut ensuite ajouter les politiques IAM aux rôles et les utilisateurs peuvent assumer les rôles.

Utilisez les exemples de politiques présentés dans cette rubrique pour créer vos propres politiques IAM personnalisées afin d'autoriser les utilisateurs à utiliser les Hooks.

Pour savoir comment créer une politique basée sur l'identité IAM à l'aide de ces exemples de documents de politique JSON, voir Définir des autorisations IAM personnalisées avec des politiques gérées par le client dans le guide de l'utilisateur IAM.

Cette rubrique décrit les autorisations nécessaires pour effectuer les opérations suivantes :

  • Gérer les Hooks — Créez, modifiez et désactivez les Hooks dans votre compte.

  • Publier les Hooks publiquement — Enregistrez, testez et publiez vos Hooks personnalisés pour les rendre accessibles au public dans le CloudFormation registre.

  • Afficher les résultats des invocations — Accédez aux résultats des invocations Hook sur votre compte et interrogez-les.

Lorsque vous créez vos politiques IAM, vous pouvez trouver la documentation de toutes les actions, ressources et clés de condition associées au préfixe de cloudformation service dans la AWS CloudFormation section Actions, ressources et clés de condition de la référence d'autorisation de service.

Autoriser les utilisateurs à gérer les Hooks

Si vous devez autoriser les utilisateurs à gérer les extensions, y compris les Hooks, sans pouvoir les rendre publiques dans le CloudFormation registre, vous pouvez utiliser l'exemple de politique IAM suivant.

Important

Les appels ActivateType et SetTypeConfiguration API fonctionnent ensemble pour créer des Hooks dans votre compte. Lorsque vous autorisez un utilisateur à appeler l'SetTypeConfigurationAPI, vous lui accordez automatiquement la possibilité de modifier et de désactiver les Hooks existants. Vous ne pouvez pas utiliser les autorisations au niveau des ressources pour restreindre l'accès à cet appel d'API. Par conséquent, assurez-vous de n'accorder cette autorisation qu'aux utilisateurs autorisés de votre compte.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ActivateType", "cloudformation:DescribeType", "cloudformation:ListTypes", "cloudformation:SetTypeConfiguration" ], "Resource": "*" } ] }

Les utilisateurs qui gèrent les Hooks peuvent avoir besoin de certaines autorisations connexes. Par exemple, pour afficher les contrôles du catalogue de contrôles dans la CloudFormation console, l'utilisateur doit disposer de l'controlcatalog:ListControlsautorisation dans une politique IAM. Pour enregistrer des Hooks personnalisés en tant qu'extensions privées dans le CloudFormation registre, l'utilisateur doit avoir l'cloudformation:RegisterTypeautorisation requise dans une politique IAM.

Autoriser les utilisateurs à publier publiquement des Hooks personnalisés

L'exemple de politique IAM suivant se concentre spécifiquement sur les capacités de publication. Utilisez cette politique si vous devez autoriser les utilisateurs à rendre les extensions, y compris les Hooks, disponibles publiquement dans le CloudFormation registre.

Important

La publication des Hooks les met publiquement à la disposition des autres Comptes AWS. Assurez-vous que seuls les utilisateurs autorisés disposent de ces autorisations et que les extensions publiées répondent aux normes de qualité et de sécurité de votre organisation.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:DescribePublisher", "cloudformation:DescribeTypeRegistration", "cloudformation:ListTypes", "cloudformation:ListTypeVersions", "cloudformation:PublishType", "cloudformation:RegisterPublisher", "cloudformation:RegisterType", "cloudformation:TestType" ], "Resource": "*" } ] }

Autoriser les utilisateurs à demander les résultats de l'invocation

Les autorisations IAM nécessaires pour afficher les résultats d'invocation de Hook changent en fonction de la demande d'API effectuée.

  • Pour accorder l'autorisation de demander tous les résultats du Hook, les résultats d'un Hook spécifique ou les résultats d'un Hook et d'un statut d'invocation spécifiques, vous devez autoriser l'accès à l'cloudformation:ListAllHookResultsaction.

  • Pour accorder l'autorisation de demander des résultats en spécifiant une cible Hook, vous devez autoriser l'accès à l'cloudformation:ListHookResultsaction. Cette autorisation permet à l'appelant de l'API de spécifier les TargetId paramètres TargetType et lors de l'appelListHookResults.

Voici un exemple de politique d'autorisation de base pour demander les résultats d'invocation de Hook. Les identités IAM (utilisateurs ou rôles) associées à cette politique sont autorisées à demander tous les résultats d'invocation en utilisant toutes les combinaisons de paramètres disponibles.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ListAllHookResults", "cloudformation:ListHookResults" ], "Resource": "*" } ] }

Contrôlez quels ensembles de modifications peuvent être spécifiés

L'exemple de politique IAM suivant autorise l'cloudformation:ListHookResultsaction à demander des résultats en spécifiant la cible du Hook. Cependant, il refuse également l'action si la cible est un ensemble de modifications nomméexample-changeset.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ListHookResults" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "cloudformation:ListHookResults" ], "Resource": "*", "Condition": { "StringEquals": { "cloudformation:ChangeSetName": "example-changeset" } } } ] }

Contrôlez quels Hooks peuvent être spécifiés

L'exemple de politique IAM suivant accorde l'autorisation à l'cloudformation:ListAllHookResultsaction de demander des résultats d'invocation uniquement lorsque l'ARN du Hook est fourni dans la demande. Il refuse l'action pour un Hook ARN spécifié.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:ListAllHookResults" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "cloudformation:ListAllHookResults" ], "Resource": "*", "Condition": { "Null": { "cloudformation:TypeArn": "true" } } }, { "Effect": "Deny", "Action": [ "cloudformation:ListAllHookResults" ], "Resource": "*", "Condition": { "ArnEquals": { "cloudformation:TypeArn": "arn:aws:cloudformation:us-east-1:123456789012:type/hook/MyCompany-MyHook" } } } ] }