Beispiel für identitätsbasierte IAM-Richtlinien für CloudFormation - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiel für identitätsbasierte IAM-Richtlinien für CloudFormation

Benutzer und Rollen haben standardmäßig nicht die Berechtigung, CloudFormation-Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mithilfe der AWS-Managementkonsole, AWS Command Line Interface (AWS CLI) oder API ausführen. AWS Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern die Berechtigung erteilen, Aktionen für die Ressourcen auszuführen, die sie benötigen. Der Administrator kann dann die IAM-Richtlinien zu Rollen hinzufügen, und Benutzer können die Rollen annehmen. Weitere Informationen finden Sie unter Definition identitätsbasierter IAM-Richtlinien für CloudFormation.

Die folgenden Beispiele zeigen Richtlinienanweisungen, mit denen Sie Berechtigungen für eine oder mehrere CloudFormation Aktionen zulassen oder verweigern können.

Eine bestimmte Vorlagen-URL verlangen

Die folgende Richtlinie gewährt die Berechtigung, nur die URL der Vorlage https://s3.amazonaws.com/amzn-s3-demo-bucket/test.template zum Erstellen oder Aktualisieren eines Stapels zu verwenden.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:UpdateStack" ], "Resource": "*", "Condition": { "StringEquals": { "cloudformation:TemplateUrl": [ "https://s3.amazonaws.com/amzn-s3-demo-bucket/test.template" ] } } } ] }

Alle CloudFormation Importvorgänge ablehnen

Die folgende Richtlinie gewährt Berechtigungen zum Abschließen aller CloudFormation Vorgänge mit Ausnahme von Importvorgängen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAllStackOperations", "Effect": "Allow", "Action": "cloudformation:*", "Resource": "*" }, { "Sid": "DenyImport", "Effect": "Deny", "Action": "cloudformation:*", "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "cloudformation:ImportResourceTypes": [ "*" ] } } } ] }

Importvorgänge für bestimmte Ressourcentypen zulassen

Die folgende Richtlinie gewährt die Berechtigung für alle Stack-Operationen, zusätzlich zu den Import-Operationen nur für bestimmte Ressourcen (in diesem Beispiel AWS::S3::Bucket).

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowImport", "Effect": "Allow", "Action": "cloudformation:*", "Resource": "*", "Condition": { "ForAllValues:StringEqualsIgnoreCase": { "cloudformation:ImportResourceTypes": [ "AWS::S3::Bucket" ] } } } ] }

IAM-Ressourcen in Stapelvorlagen verweigern

Die folgende Richtlinie gewährt die Berechtigung zum Erstellen von Stapeln, verweigert jedoch Anfragen, wenn die Vorlage des Stapels eine Ressource des IAM-Dienstes enthält. Die Richtlinie erfordert außerdem, dass Benutzer den ResourceTypes-Parameter angeben, der nur für AWS CLI -API-Anforderungen verfügbar ist. Diese Richtlinie verwendet explizite Zugriffsverweigerungsanweisungen, sodass diese Richtlinie immer wirksam ist, wenn eine andere Richtlinie zusätzliche Berechtigungen gewährt (eine explizite Zugriffsverweigerungsanweisung setzt eine explizite Zugriffserlaubnisanweisung immer außer Kraft).

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect" : "Allow", "Action" : [ "cloudformation:CreateStack" ], "Resource" : "*" }, { "Effect" : "Deny", "Action" : [ "cloudformation:CreateStack" ], "Resource" : "*", "Condition" : { "ForAnyValue:StringLikeIfExists" : { "cloudformation:ResourceTypes" : [ "AWS::IAM::*" ] } } }, { "Effect": "Deny", "Action" : [ "cloudformation:CreateStack" ], "Resource": "*", "Condition": { "Null": { "cloudformation:ResourceTypes": "true" } } } ] }

Erlauben Sie die Erstellung von Stapeln mit bestimmten Ressourcentypen

Die folgende Richtlinie ähnelt dem vorherigen Beispiel. Die Richtlinie gewährt die Berechtigung zur Erstellung eines Stacks, sofern die Vorlage des Stacks keine Ressource des IAM-Dienstes enthält. Außerdem müssen Benutzer den ResourceTypes Parameter angeben, der nur für AWS CLI API-Anfragen verfügbar ist. Diese Richtlinie ist einfacher, verwendet aber keine expliziten Zugriffsverweigerungsanweisungen. Andere Richtlinien, die zusätzliche Berechtigungen gewähren, könnten diese Richtlinie außer Kraft setzen.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect" : "Allow", "Action" : [ "cloudformation:CreateStack" ], "Resource" : "*", "Condition" : { "ForAllValues:StringNotLikeIfExists" : { "cloudformation:ResourceTypes" : [ "AWS::IAM::*" ] }, "Null":{ "cloudformation:ResourceTypes": "false" } } } ] }

Zugriffskontrolle basierend auf ressourcenverändernden API-Aktionen

Die folgende Richtlinie gewährt die Berechtigung, den Zugriff nach dem Namen einer ressourcenverändernden API-Aktion zu filtern. Damit wird gesteuert, mit welchen APIs IAM-Benutzern Tags zu einem Stack oder Stack-Set hinzugefügt oder entfernt werden können. Die Operation, die zum Hinzufügen oder Entfernen von Tags verwendet wird, sollte als Wert für den Bedingungsschlüssel hinzugefügt werden. Die folgende Richtlinie gewährt die Berechtigungen TagResource und UntagResource für die mutierende Operation CreateStack.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "CreateActionConditionPolicyForTagUntagResources", "Effect": "Allow", "Action": [ "cloudformation:TagResource", "cloudformation:UntagResource" ], "Resource": "*", "Condition": { "StringEquals": { "cloudformation:CreateAction": [ "CreateStack" ] } } }] }

Einschränkung von Stack-Set-Operationen basierend auf Region und Ressourcentypen

Die folgende Richtlinie gewährt Service-verwaltete Stack-Set-Berechtigungen. Ein Benutzer mit dieser Richtlinie kann nur Vorgänge an Stack-Sets mit Vorlagen durchführen, die Amazon-S3-Ressourcentypen (AWS::S3::*) oder den AWS::SES::ConfigurationSet-Ressourcentyp enthalten. Wenn der Benutzer mit der ID beim Organisationsverwaltungskonto angemeldet ist123456789012, kann er auch nur Operationen an Stack-Sets ausführen, die auf die Organisationseinheit mit der ID abzielenou-1fsfsrsdsfrewr, und er kann nur Operationen an dem Stack-Set mit der ID ausführenstack-set-id, das auf die AWS-Konto mit der ID 987654321012 abzielt.

Stack-Set-Operationen schlagen fehl, wenn die Stackset-Vorlage andere als die in der Richtlinie angegebenen Ressourcentypen enthält, oder wenn es sich bei den Bereitstellungszielen um OU oder Konten IDs handelt, die nicht in der Richtlinie für die entsprechenden Verwaltungskonten und Stacksets angegeben sind.

Diese Richtlinien-Einschränkungen gelten nur, wenn Stack-Set-Vorgänge auf die AWS-Regionenus-east-1, us-west-2 oder eu-west-2 abzielen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": [ "arn:aws:cloudformation:*:*:stackset/*", "arn:aws:cloudformation:*:*:type/resource/AWS-S3-*", "arn:aws:cloudformation:us-west-2:111122223333:type/resource/AWS-SES-ConfigurationSet", "arn:aws:cloudformation:*:111122223333:stackset-target/*/ou-1fsfsrsdsfrewr", "arn:aws:cloudformation:*:111122223333:stackset-target/stack-set-id/444455556666" ], "Condition": { "ForAllValues:StringEqualsIgnoreCase": { "cloudformation:TargetRegion": [ "us-east-1", "us-west-2", "eu-west-1" ] } } } ] }

Erlauben Sie alle IaC-Generatoroperationen

Die folgende Richtlinie ermöglicht den Zugriff auf CloudFormation Aktionen im Zusammenhang mit dem Scannen von Ressourcen des IaC-Generators und der Vorlagenverwaltung. Die erste Anweisung gewährt die Berechtigung zum Beschreiben, Auflisten und Starten von Ressourcen-Scans. Sie ermöglicht auch den Zugriff auf zusätzliche erforderliche Berechtigungen (cloudformation:GetResource, cloudformation:ListResourcesund cloudformation:ListTypes), mit denen der IaC-Generator Informationen über Ressourcen und verfügbare Ressourcentypen abrufen kann. Die zweite Anweisung gewährt volle Berechtigung zum Erstellen, Löschen, Beschreiben, Auflisten und Aktualisieren generierter Vorlagen.

Außerdem müssen Sie jedem, der Ressourcen mit dem IaC-Generator scannt, Leseberechtigungen für die AWS Zieldienste gewähren. Weitere Informationen finden Sie unter Für das Scannen von Ressourcen erforderliche IAM-Berechtigungen.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"ResourceScanningOperations", "Effect":"Allow", "Action":[ "cloudformation:DescribeResourceScan", "cloudformation:GetResource", "cloudformation:ListResources", "cloudformation:ListResourceScanRelatedResources", "cloudformation:ListResourceScanResources", "cloudformation:ListResourceScans", "cloudformation:ListTypes", "cloudformation:StartResourceScan" ], "Resource":"*" }, { "Sid":"TemplateGeneration", "Effect":"Allow", "Action":[ "cloudformation:CreateGeneratedTemplate", "cloudformation:DeleteGeneratedTemplate", "cloudformation:DescribeGeneratedTemplate", "cloudformation:GetResource", "cloudformation:GetGeneratedTemplate", "cloudformation:ListGeneratedTemplates", "cloudformation:UpdateGeneratedTemplate" ], "Resource":"*" } ] }