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.
Servicerollen für CloudFormation
Eine Servicerolle ist eine AWS Identity and Access Management (IAM-) Rolle, die es ermöglicht, AWS CloudFormation Stack-Ressourcen zu erstellen, zu aktualisieren oder zu löschen. Wenn Sie keine Servicerolle angeben, CloudFormation verwendet die Anmeldeinformationen des IAM-Prinzipals, um die Stack-Operationen auszuführen. Wenn Sie eine Servicerolle für erstellen CloudFormation und diese bei der Stack-Erstellung angeben, werden für die Ausführung der Operationen die Anmeldeinformationen der Servicerolle CloudFormation verwendet, anstatt die Anmeldeinformationen des IAM-Prinzipals.
Wenn Sie eine Servicerolle verwenden, erfordert die dem IAM-Prinzipal zugeordnete identitätsbasierte Richtlinie keine Berechtigungen zur Bereitstellung aller in der Vorlage definierten AWS Ressourcen. CloudFormation Wenn Sie nicht bereit sind, AWS Ressourcen für kritische Geschäftsabläufe über eine Entwicklungspipeline bereitzustellen (eine AWS empfohlene bewährte Methode), kann die Verwendung einer Servicerolle eine zusätzliche Schutzebene für das Ressourcenmanagement in bieten. AWS Die Vorteile dieses Ansatzes sind:
-
Die IAM-Prinzipale in Ihrer Organisation folgen einem Modell mit den geringsten Rechten, das sie daran hindert, Ressourcen in Ihrer Umgebung manuell zu erstellen oder zu ändern AWS .
-
Um AWS Ressourcen zu erstellen, zu aktualisieren oder zu löschen, müssen IAM-Prinzipale Folgendes verwenden: CloudFormation Dadurch wird die Ressourcenbereitstellung über Infrastructure-as-Code standardisiert.
Um beispielsweise einen Stack zu erstellen, der eine Amazon Elastic Compute Cloud (Amazon EC2) -Instance enthält, müsste der IAM-Principal über Berechtigungen zum Erstellen von EC2 Instances gemäß seiner identitätsbasierten Richtlinie verfügen. Stattdessen CloudFormation kann er eine Servicerolle annehmen, die berechtigt ist, EC2 Instanzen im Namen des Prinzipals zu erstellen. Bei diesem Ansatz kann der IAM-Prinzipal den Stack erstellen, und Sie müssen dem IAM-Prinzipal keine allzu umfassenden Berechtigungen für einen Dienst erteilen, auf den er keinen regulären Zugriff haben sollte.
Um eine Servicerolle zum Erstellen von CloudFormation Stacks verwenden zu können, müssen IAM-Prinzipale über Berechtigungen zur Weitergabe der Servicerolle verfügen CloudFormation, und die Vertrauensrichtlinie der Servicerolle muss die Übernahme der Rolle ermöglichen. CloudFormation
In diesem Abschnitt werden folgende Themen behandelt:
Implementierung der geringsten Rechte für Servicerollen CloudFormation
In einer Servicerolle definieren Sie eine Berechtigungsrichtlinie, die explizit festlegt, welche Aktionen der Dienst ausführen kann. Dies sind möglicherweise nicht dieselben Aktionen, die ein IAM-Principal ausführen kann. Wir empfehlen, dass Sie von Ihren CloudFormation Vorlagen ausgehend eine Servicerolle erstellen, die dem Prinzip der geringsten Rechte entspricht.
Wenn Sie die identitätsbasierte Richtlinie eines IAM-Prinzipals so festlegen, dass nur bestimmte Servicerollen übergeben werden, und die Vertrauensrichtlinie einer Servicerolle so, dass nur bestimmte Prinzipale die Rolle übernehmen können, verhindern Sie eine mögliche Eskalation von Rechten durch Servicerollen.
Konfiguration von Servicerollen
Anmerkung
Servicerollen werden in IAM konfiguriert. Um eine Servicerolle zu erstellen, müssen Sie über die entsprechenden Berechtigungen verfügen. Ein IAM-Prinzipal mit der Berechtigung, eine Rolle zu erstellen und eine beliebige Richtlinie anzuhängen, kann seine eigenen Berechtigungen erweitern. AWS empfiehlt, für jeden Anwendungsfall jeweils eine AWS-Service Servicerolle zu erstellen. Nachdem Sie CloudFormation Servicerollen für Ihre Anwendungsfälle erstellt haben, können Sie Benutzern erlauben, nur die genehmigte Servicerolle an diese weiterzugeben CloudFormation. Beispiele für identitätsbasierte Richtlinien, die es Benutzern ermöglichen, Servicerollen zu erstellen, finden Sie in der IAM-Dokumentation unter Berechtigungen für Servicerollen.
Anweisungen zum Erstellen von Servicerollen finden Sie unter Eine Rolle erstellen, um Berechtigungen an eine zu delegieren. AWS-Service Legen Sie CloudFormation (cloudformation.amazonaws.com
) als den Dienst fest, der die Rolle annehmen kann. Dadurch wird verhindert, dass ein IAM-Prinzipal die Rolle selbst übernimmt oder sie an andere Dienste weitergibt. Wenn Sie eine Servicerolle konfigurieren, sind die Effect
Resource
ElementeAction
, und erforderlich. Sie können optional auch ein Condition
Element definieren.
Weitere Informationen zu diesen Elementen finden Sie in der Referenz zu den IAM-JSON-Richtlinienelementen. Eine vollständige Liste der Aktionen, Ressourcen und Bedingungsschlüssel finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Identitäts- und Zugriffsmanagement.
Einem IAM-Prinzipal Berechtigungen zur Verwendung einer CloudFormation Servicerolle gewähren
Um Ressourcen CloudFormation mithilfe der CloudFormation Servicerolle bereitstellen zu können, muss der IAM-Prinzipal über die erforderlichen Berechtigungen zum Weitergeben der Servicerolle verfügen. Sie können die Berechtigungen des IAM-Prinzipals so einschränken, dass nur bestimmte Rollen übergeben werden, indem Sie den ARN der Rolle in den Berechtigungen des Prinzipals angeben. Weitere Informationen finden Sie in der IAM-Dokumentation unter Einem Benutzer Berechtigungen zur Übergabe einer Rolle AWS-Service an einen gewähren.
Die folgende identitätsbasierte IAM-Richtlinienanweisung ermöglicht es dem Principal, Rollen, einschließlich Servicerollen, zu übergeben, die sich im Pfad befinden. cfnroles
Der Principal kann keine Rollen weitergeben, die sich auf einem anderen Pfad befinden.
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/cfnroles/*" }
Ein anderer Ansatz, Principals auf bestimmte Rollen zu beschränken, besteht darin, ein Präfix für CloudFormation Servicerollennamen zu verwenden. Die folgende Richtlinienerklärung ermöglicht es IAM-Prinzipalen, nur Rollen zu übergeben, die über ein Präfix verfügen. CFN-
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*" }
Zusätzlich zu den vorherigen Richtlinienanweisungen können Sie den cloudformation:RoleARN
Bedingungsschlüssel verwenden, um weitere detaillierte Kontrollen in der identitätsbasierten Richtlinie für den Zugriff mit den geringsten Rechten bereitzustellen. Die folgende Richtlinienerklärung ermöglicht es dem IAM-Prinzipal, Stacks nur dann zu erstellen, zu aktualisieren und zu löschen, wenn sie eine bestimmte Servicerolle erfüllen. CloudFormation Als Variante können Sie die ARNs von mehr als einer CloudFormation Servicerolle im Bedingungsschlüssel definieren.
{ "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>
" ] } } }
Darüber hinaus können Sie den cloudformation:RoleARN
Bedingungsschlüssel verwenden, um einen IAM-Prinzipal daran zu hindern, eine hoch privilegierte CloudFormation Servicerolle für Stack-Operationen zu übergeben. Die einzige Änderung, die erforderlich ist, betrifft den Bedingungsoperator von StringEquals
bisStringNotEquals
.
{ "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>
" ] } } }
Konfiguration einer Vertrauensrichtlinie für die CloudFormation Servicerolle
Eine Rollenvertrauensrichtlinie ist eine erforderliche ressourcenbasierte Richtlinie, die einer IAM-Rolle zugeordnet ist. Eine Vertrauensrichtlinie definiert, welche IAM-Prinzipale die Rolle übernehmen können. In einer Vertrauensrichtlinie können Sie Benutzer, Rollen, Konten oder Dienste als Prinzipale angeben. Um zu verhindern, dass IAM-Prinzipale Dienstrollen CloudFormation an andere Dienste weitergeben, können Sie dies in der CloudFormation Vertrauensrichtlinie der Rolle als Principal angeben.
Die folgende Vertrauensrichtlinie ermöglicht es nur dem CloudFormation Dienst, die Dienstrolle zu übernehmen.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } }
Zuordnen einer Servicerolle zu einem Stack
Nachdem eine Servicerolle erstellt wurde, können Sie sie einem Stack zuordnen, wenn Sie den Stack erstellen. Weitere Informationen finden Sie unter Stack-Optionen konfigurieren. Bevor Sie eine Servicerolle angeben, stellen Sie sicher, dass die IAM-Prinzipale über die erforderlichen Berechtigungen verfügen, um sie weiterzugeben. Weitere Informationen finden Sie unter Einem IAM-Prinzipal Berechtigungen zur Verwendung einer CloudFormation Servicerolle gewähren.