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.
Verhindern von Aktualisierungen der Stack-Ressourcen
Wenn Sie ein Stack erstellen, sind alle Aktualisierungsaktionen für alle Ressourcen zulässig. Standardmäßig können alle Personen, die berechtigt sind, Stack-Aktualisierungen vorzunehmen, alle Ressourcen im Stack aktualisieren. Während einer Aktualisierung müssen einige Ressourcen möglicherweise unterbrochen oder vollständig ersetzt werden, was zu neuen physischen IDs oder völlig neuem Speicher führt. Sie können mithilfe einer Stack-Richtlinie verhindern, dass Stack-Ressourcen während einer Stack-Aktualisierung unabsichtlich aktualisiert oder gelöscht werden. Eine Stack-Richtlinie ist ein JSON-Dokument, in dem die Aktualisierungsaktionen definiert werden, die für designierte Ressourcen ausgeführt werden können.
Nachdem Sie eine Stack-Richtlinie festgelegt haben, sind alle Ressourcen im Stack standardmäßig geschützt. Um Aktualisierungen für bestimmte Ressourcen zuzulassen, geben Sie in der Stack-Richtlinie eine explizite Allow-Anweisung für diese Ressourcen an. Sie können nur eine Stack-Richtlinie pro Stack definieren, aber mehrere Ressourcen in einer einzelnen Richtlinie schützen. Eine Stack-Richtlinie gilt für alle CloudFormation-Benutzer, die versuchen, den Stack zu aktualisieren. Sie können unterschiedlichen Benutzern keinen verschiedenen Stack-Richtlinien zuordnen.
Eine Stack-Richtlinie gilt nur während Stack-Aktualisierungen. Sie bietet keine Zugriffskontrollen wie eine AWS Identity and Access Management (IAM)-Richtlinie. Verwenden Sie eine Stack-Richtlinie nur als ausfallsicheren Mechanismus, um versehentliche Aktualisierungen bestimmter Stack-Ressourcen zu verhindern. Verwenden Sie IAM, um den Zugriff auf AWS Ressourcen oder Aktionen zu kontrollieren.
Themen
Beispiel-Stack-Richtlinie
Die folgende Beispiel-Stack-Richtlinie verhindert Aktualisierungen an der ProductionDatabase-Ressource:
{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" }, { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "LogicalResourceId/ProductionDatabase" } ] }
Wenn Sie eine Stack-Richtlinie festlegen, sind alle Ressourcen standardmäßig geschützt. Um Aktualisierungen für alle Ressourcen zuzulassen, fügen wir eine Allow-Anweisung hinzu, die alle Aktionen für alle Ressourcen zulässt. Zwar gibt die Allow-Anweisung alle Ressourcen an, jedoch überschreibt die explizite Deny-Anweisung diese Anweisung für die Ressource mit der logischen ID ProductionDatabase. Diese Deny-Anweisung verhindert sämtliche Aktualisierungsaktionen, wie z. B. Ersetzung oder Löschung, für die ProductionDatabase-Ressource.
Das Principal-Element ist erforderlich, unterstützt aber nur den Platzhalter (*), was bedeutet, dass die Anweisung für alle Prinzipale gilt.
Anmerkung
Aktualisiert während eines Stack-Updates CloudFormation automatisch Ressourcen, die von anderen aktualisierten Ressourcen abhängig sind. CloudFormation Aktualisiert beispielsweise eine Ressource, die auf eine aktualisierte Ressource verweist. CloudFormation nimmt keine physischen Änderungen, wie z. B. die ID der Ressource, an automatisch aktualisierten Ressourcen vor. Wenn diesen Ressourcen jedoch eine Stack-Richtlinie zugeordnet ist, benötigen Sie die Berechtigung, sie zu aktualisieren.
Definieren einer Stack-Richtlinie
Wenn Sie ein Stack erstellen, ist keine Stack-Richtlinie festgelegt, sodass alle Aktualisierungsaktionen für alle Ressourcen zulässig sind. Um Stack-Ressourcen vor Aktualisierungsaktionen zu schützen, definieren Sie eine Stack-Richtlinie und legen Sie diese dann für den Stack fest. Eine Stack-Richtlinie ist ein JSON-Dokument, das die CloudFormation Stack-Aktualisierungsaktionen definiert, die CloudFormation Benutzer ausführen können, und die Ressourcen, für die die Aktionen gelten. Sie legen die Stack-Richtlinie bei der Erstellung eines Stacks fest, indem Sie eine Textdatei mit der Stack-Richtlinie angeben oder diese eingeben. Wenn Sie eine Stack-Richtlinie für den Stack festlegen, werden Aktualisierungen, die nicht ausdrücklich zugelassen sind, standardmäßig verweigert.
Sie definieren eine Stack-Richtlinie mit fünf Elemente: Effect, Action, Principal, Resource und Condition. Der folgende Pseudocode veranschaulicht die Stack-Richtlinien-Syntax.
{ "Statement" : [ { "Effect" : "Deny_or_Allow", "Action" : "update_actions", "Principal" : "*", "Resource" : "LogicalResourceId/resource_logical_ID", "Condition" : { "StringEquals_or_StringLike" : { "ResourceType" : [resource_type, ...] } } } ] }
Effect-
Bestimmt, ob die Aktionen, die Sie angeben, für die angegebene(n) Ressource(n) verweigert oder zugelassen werden. Sie können nur
DenyoderAllowfestlegen, wie z. B.:"Effect" : "Deny"Wichtig
Wenn eine Stack-Richtlinie überlappende Anweisungen enthält (Zulassen und Verweigern von Aktualisierungen für eine Ressource), wird eine
Deny-Anweisung immer durch eineAllow-Anweisung überschrieben. Um sicherzustellen, dass eine Ressource geschützt ist, verwenden Sie eineDeny-Anweisung für die betreffende Ressource. - Action
-
Gibt die Aktualisierungsaktionen an, die verweigert oder zugelassen werden:
- Update:Modify
-
Gibt Aktualisierungsaktionen an, während denen Ressourcen möglicherweise nicht unterbrochen oder unterbrochen werden, während Änderungen angewendet werden. Alle Ressourcen behalten ihre physischen IDs.
- Update:Replace
-
Gibt Aktualisierungsaktionen an, bei denen Ressourcen neu erstellt werden. CloudFormation erstellt eine neue Ressource mit den angegebenen Updates und löscht dann die alte Ressource. Da die Ressource neu erstellt wird, hat die neue Ressourcen möglicherweise eine andere physische ID.
- Update:Delete
-
Gibt Aktualisierungsaktionen an, während denen Ressourcen entfernt werden. Aktualisierungen, durch die Ressourcen vollständig aus einer Stack-Vorlage entfernt werden, erfordern diese Aktion.
- Update:*
-
Gibt alle Aktualisierungsaktionen an. Das Sternchen ist ein Platzhalter, der für alle Aktualisierungsaktionen steht.
Im folgenden Beispiel wird gezeigt, wie Sie nur die Ersetzungs- und Löschungsaktionen angeben:
"Action" : ["Update:Replace", "Update:Delete"]Um alle Aktualisierungsaktionen außer einer zuzulassen, verwenden Sie
NotAction. Um beispielsweise alle Aktualisierungsaktionen außerUpdate:Deletezuzulassen, verwenden SieNotAction, wie im folgenden Beispiel veranschaulicht:{ "Statement" : [ { "Effect" : "Allow", "NotAction" : "Update:Delete", "Principal": "*", "Resource" : "*" } ] } - Auftraggeber
-
Das
Principal-Element gibt die Entität an, für die die Richtlinie gilt. Dieses Element ist erforderlich, unterstützt aber nur den Platzhalter (*), was bedeutet, dass die Richtlinie für alle Prinzipale gilt. - Ressource
-
Gibt die logischen IDs der Ressourcen an, für die die Richtlinie gilt. Verwenden Sie das
ConditionElement, um Ressourcentypen anzugeben.Um eine einzelne Ressource anzugeben, verwenden Sie deren logische ID. Beispiel:
"Resource" : ["LogicalResourceId/myEC2instance"]Sie können einen Platzhalter mit logischen IDs verwenden. Wenn Sie beispielsweise ein gängiges logisches ID-Präfix für alle verwandten Ressourcen verwenden, können Sie alle mit einem Platzhalter angeben:
"Resource" : ["LogicalResourceId/CriticalResource*"]Sie können ein
NotResourceElement auch verwenden, um Aktualisierungen für alle Ressourcen außer den von Ihnen angegebenen Ressourcen zuzulassen. Die Verwendung vonNotResourcewith verhindert jedochEffect: Allownicht zuverlässig Aktualisierungen der ausgeschlossenen Ressourcen. Um eine bestimmte Ressource vor Aktualisierungen zu schützen, verwenden Sie stattdessen eine expliziteDenyAnweisung, wie im folgenden Beispiel gezeigt:{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "LogicalResourceId/ProductionDatabase" }, { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] } - Bedingungen
-
Gibt den Ressourcentyp an, für den die Richtlinie gilt. Um die logischen IDs bestimmter Ressourcen anzugeben, verwenden Sie das
Resource-Element.Sie können einen Ressourcentyp festlegen, z. B. alle EC2 Instances und RDS-DB-Instances, wie im folgenden Beispiel veranschaulicht:
{ "Statement" : [ { "Effect" : "Deny", "Principal" : "*", "Action" : "Update:*", "Resource" : "*", "Condition" : { "StringEquals" : { "ResourceType" : ["AWS::EC2::Instance", "AWS::RDS::DBInstance"] } } }, { "Effect" : "Allow", "Principal" : "*", "Action" : "Update:*", "Resource" : "*" } ] }Die
Allow-Anweisung erteilt Aktualisierungsberechtigungen für alle Ressourcen und dieDeny-Anweisung verweigert Aktualisierungen für EC2 Instances und RDS-DB-Instances. DieDeny-Anweisung überschreibt immer Zulassungsaktionen.Sie können einen Platzhalter mit Ressourcentypen verwenden. Sie können beispielsweise Aktualisierungsberechtigungen für alle Amazon EC2-Ressourcen verweigern, z. B. Instances, Sicherheitsgruppen und Subnetze, indem Sie wie im folgenden Beispiel einen Platzhalter verwenden:
"Condition" : { "StringLike" : { "ResourceType" : ["AWS::EC2::*"] } }Sie müssen die
StringLike-Bedingung verwenden, wenn Sie Platzhalter verwenden.
Festlegen einer Stack-Richtlinie
Sie können die Konsole verwenden oder AWS CLI eine Stack-Richtlinie anwenden, wenn Sie einen Stack erstellen. Sie können die auch verwenden AWS CLI , um eine Stack-Richtlinie auf einen vorhandenen Stack anzuwenden. Nachdem Sie eine Stack-Richtlinie angewendet haben, können Sie sie nicht aus dem Stack entfernen, aber Sie können sie verwenden, AWS CLI um sie zu ändern.
Stack-Richtlinien gelten für alle CloudFormation Benutzer, die versuchen, den Stack zu aktualisieren. Sie können unterschiedlichen Benutzern keinen verschiedenen Stack-Richtlinien zuordnen.
Informationen zum Schreiben von Stack-Richtlinien finden Sie unter Definieren einer Stack-Richtlinie.
So legen Sie eine Stack-Richtlinie beim Erstellen eines Stacks fest (Konsole)
Öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie in der Navigationsleiste oben auf dem Bildschirm den aus, in AWS-Region dem der Stapel erstellt werden soll.
-
Wählen Sie auf der Seite „CloudFormation Stapel“ die Option Stapel erstellen aus.
-
Erweitern Sie im Assistenten für das Erstellen eines Stacks auf der Seite Configure stack options (Stack-Optionen konfigurieren) den Abschnitt Advanced (Erweitert) und wählen Sie dann Stack policy (Stack-Richtlinie) aus.
-
Geben Sie die Stack-Richtlinie an:
-
Um eine Richtlinie direkt in der Konsole zu schreiben, wählen Sie Enter stack policy (Stack-Richtlinie eingeben) aus und geben Sie die Stack-Richtlinie direkt in das Textfeld ein.
-
Um eine Richtlinie zu verwenden, die in einer separaten Datei definiert ist, wählen Sie Upload a file (Datei hochladen) und dann Choose file (Datei auswählen) aus, um die Datei auszuwählen, die die Stack-Richtlinie enthält.
-
Um beim Erstellen eines Stacks eine Stack-Richtlinie festzulegen (AWS CLI)
-
Verwenden Sie den Befehl create-stack mit der Option
--stack-policy-bodyzur Eingabe einer geänderten Richtlinie oder die Option--stack-policy-urlzur Angabe einer Datei, die die Richtlinie enthält.
Um eine Stack-Richtlinie für einen vorhandenen Stack festzulegen (AWS CLI nur)
-
Verwenden Sie den Befehl set-stack-policy mit der Option
--stack-policy-bodyzur Eingabe einer geänderten Richtlinie oder die Option--stack-policy-urlzur Angabe einer Datei, die die Richtlinie enthält.Anmerkung
Um eine Richtlinie zu einem vorhandenen Stack hinzuzufügen, müssen Sie über die entsprechende Berechtigung CloudFormation SetStackPolicyverfügen.
Aktualisieren geschützter Ressourcen
Um geschützte Ressourcen zu aktualisieren, erstellen Sie eine temporäre Richtlinie, die die Stack-Richtlinie überschreibt und Aktualisierungen für diese Ressourcen zulässt. Geben Sie die Überschreibungsrichtlinie ab, wenn Sie den Stack aktualisieren. Die Überschreibungsrichtlinie ändert die Stack-Richtlinie nicht dauerhaft.
Um geschützte Ressourcen zu aktualisieren, benötigen Sie die Berechtigung, die CloudFormation SetStackPolicyAktion zu verwenden. Informationen zum Festlegen von CloudFormation-Berechtigungen finden Sie unter Steuern CloudFormation Sie den Zugriff mit AWS Identity and Access Management.
Anmerkung
Bei einem Stack-Update werden Ressourcen, die von anderen aktualisierten Ressourcen abhängen, CloudFormation automatisch aktualisiert. CloudFormation Aktualisiert beispielsweise eine Ressource, die auf eine aktualisierte Ressource verweist. CloudFormation nimmt keine physischen Änderungen an automatisch aktualisierten Ressourcen vor, z. B. an der ID der Ressourcen. Wenn diesen Ressourcen jedoch eine Stack-Richtlinie zugeordnet ist, benötigen Sie die Berechtigung, sie zu aktualisieren.
So aktualisieren Sie eine geschützte Ressource (Konsole)
Öffnen Sie die CloudFormation Konsole unter. https://console.aws.amazon.com/cloudformation
-
Wählen Sie den Stack aus, den Sie aktualisieren möchten. Wählen Sie Stack actions (Stack-Aktionen) und anschließend Update Stack (Stack aktualisieren) aus.
-
Wenn Sie die Stack-Vorlage nicht geändert haben, wählen Sie Use current template (Aktuelle Vorlage verwenden) aus und klicken Sie dann auf Next (Weiter). Wenn Sie die Vorlage geändert haben, wählen Sie Replace current template (Aktuelle Vorlage ersetzen) aus und geben Sie den Speicherort der aktualisierten Vorlage im Abschnitt Specify template (Vorlage angeben) an:
-
Für eine lokal auf Ihrem Computer gespeicherte Vorlage wählen Sie Upload a template file (Vorlagendatei hochladen) aus. Wählen Sie Choose File, um zur Datei zu navigieren. Wählen Sie die Datei aus und klicken Sie auf Weiter.
-
Für eine in einem Amazon S3-Bucket gespeicherte Vorlage wählen Sie Amazon S3-URL aus. Geben Sie die URL für die Vorlage ein und klicken Sie dann auf Weiter.
Wenn Sie eine Vorlage in einem Bucket mit Versionskontrolle haben, können Sie eine bestimmte Version der Vorlage angeben, indem Sie
?versionId=an die URL anhängen. Weitere Informationen finden Sie unter Arbeiten mit Objekten in einem versionierungsfähigen Bucket im Amazon Simple Storage Service User Guide.version-id
-
-
Wenn Ihre Vorlage Parameter enthält, geben Sie auf der Seite Specify stack details (Stack-Details angeben) die Parameterwerte ein oder ändern Sie sie und wählen Sie dann Next (Weiter) aus.
CloudFormation füllt jeden Parameter mit dem Wert auf, der aktuell im Stack festgelegt ist, mit Ausnahme der mit dem
NoEchoAttribut deklarierten Parameter. Sie können die aktuellen Werte für diese Parameter verwenden, indem Sie Use existing value (Existierenden Wert verwenden) auswählen.Weitere Informationen über die Verwendung von
NoEchozur Maskierung sensibler Informationen sowie über die Verwendung dynamischer Parameter zur Verwaltung von Geheimnissen finden Sie in der bewährten Vorgehensweise Keine Anmeldeinformationen in Vorlagen einbetten . -
Geben Sie eine Überschreibungs-Stack-Richtlinie an.
-
Wählen Sie auf der Seite Configure stack options (Stack-Optionen konfigurieren) im Abschnitt Advanced options (Erweiterte Optionen) die Option Stack policy (Stack-Richtlinie) aus.
-
Wählen Sie Upload a file (Datei hochladen) aus.
-
Klicken Sie auf Choose File (Datei auswählen) und navigieren Sie zu der Datei, die die überschreibende Stack-Richtlinie enthält, oder geben Sie eine Richtlinie ein.
-
Wählen Sie Weiter aus.
Die Überschreibungsrichtlinie muss eine
Allow-Anweisung für die geschützten Ressourcen angeben, die Sie aktualisieren möchten. Um beispielsweise alle geschützten Ressourcen zu aktualisieren, geben Sie eine temporäre Überschreibungsrichtlinie an, die alle Aktualisierungen zulässt:{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }Anmerkung
CloudFormation wendet die Override-Richtlinie nur während dieses Updates an. Die Überschreibungsrichtlinie ändert die Stack-Richtlinie nicht dauerhaft. Informationen zum Ändern einer Stack-Richtlinie finden Sie unter Ändern einer Stack-Richtlinie.
-
-
Überprüfen Sie die Stack-Informationen und die Änderungen, die Sie übermittelt haben.
Überprüfen Sie, ob Sie die richtigen Informationen gesendet haben, z. B. die richtigen Parameterwerte oder die richtige Vorlagen-URL. Wenn Ihre Vorlage IAM-Ressourcen enthält, wählen Sie I acknowledge that this template may create IAM resources, um anzugeben, dass Sie IAM-Ressourcen in der Vorlage verwenden möchten. Weitere Informationen finden Sie unter Bestätigung von IAM-Ressourcen in Vorlagen CloudFormation.
Vergewissern Sie sich im Abschnitt Vorschau Ihrer Änderungen, dass alle erwarteten Änderungen vorgenommen CloudFormation werden. Wählen Sie beispielsweise aus, dass die CloudFormation Ressourcen, die Sie hinzufügen, entfernen oder ändern wollten, hinzugefügt, entfernt und geändert werden. CloudFormationgeneriert diese Vorschau, indem ein Änderungssatz für den Stapel erstellt wird. Weitere Informationen finden Sie unter CloudFormation Stapel mithilfe von Änderungssätzen aktualisieren.
-
Wenn Sie mit Ihren Änderungen zufrieden sind, klicken Sie auf Update (Aktualisieren).
Anmerkung
An dieser Stelle haben Sie auch die Möglichkeit, den Änderungssatz anzusehen, um Ihre vorgeschlagenen Updates sorgfältiger zu überprüfen. Klicken Sie dazu nicht auf Aktualisieren, sondern auf Änderungssatz anzeigen. CloudFormation zeigt den Änderungssatz an, der auf der Grundlage Ihrer Aktualisierungen generiert wurde. Wenn Sie bereit sind, den Stack zu aktualisieren, klicken Sie auf Execute (Ausführen).
CloudFormation zeigt die Seite mit den Stack-Details für Ihren Stack an. Ihr Stapel hat jetzt den Status
UPDATE_IN_PROGRESS. Nachdem CloudFormation die Aktualisierung des Stacks erfolgreich abgeschlossen wurde, wird der Stack-Status auf gesetztUPDATE_COMPLETE.Schlägt die Stack-Aktualisierung fehl CloudFormation, werden die Änderungen automatisch rückgängig gemacht und der Stack-Status wird auf gesetzt
UPDATE_ROLLBACK_COMPLETE.
Um eine geschützte Ressource zu aktualisieren (AWS CLI)
-
Verwenden Sie den Befehl update-stack mit der Option
--stack-policy-during-update-bodyzur Eingabe einer geänderten Richtlinie oder die Option--stack-policy-during-update-urlzur Angabe einer Datei, die die Richtlinie enthält.Anmerkung
CloudFormation wendet die Override-Richtlinie nur während dieses Updates an. Die Überschreibungsrichtlinie ändert die Stack-Richtlinie nicht dauerhaft. Informationen zum Ändern einer Stack-Richtlinie finden Sie unter Ändern einer Stack-Richtlinie.
Ändern einer Stack-Richtlinie
Um zusätzliche Ressourcen zu schützen oder Schutz von Ressourcen zu entfernen, ändern Sie die Stack-Richtlinie. Wenn Sie beispielsweise eine Datenbank, die Sie schützen möchten, zu einem Stack hinzufügen, fügen Sie der Stack-Richtlinie eine Deny-Anweisung für diese Datenbank hinzu. Um die Richtlinie zu ändern, müssen Sie über die Berechtigung zur Verwendung der Aktion SetStackPolicy verfügen.
Verwenden Sie die AWS CLI , um Stack-Richtlinien zu ändern.
Um eine Stack-Richtlinie zu ändern (AWS CLI)
-
Verwenden Sie den Befehl set-stack-policy mit der Option
--stack-policy-bodyzur Eingabe einer geänderten Richtlinie oder die Option--stack-policy-urlzur Angabe einer Datei, die die Richtlinie enthält.
Stack-Richtlinien können nicht gelöscht werden. Zum Entfernen des gesamten Schutzes von allen Ressourcen, ändern Sie die Richtlinie, sodass alle Aktionen für alle Ressourcen ausdrücklich zugelassen werden. Mit der folgenden Richtlinie können alle Aktualisierungen für alle Ressourcen durchgeführt werden:
{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }
Weitere Beispiel-Stack-Richtlinien
Die folgenden Beispielrichtlinien zeigen, wie Sie Aktualisierungen aller Stack-Ressourcen und spezifischer Ressourcen verhindern und wie Sie bestimmte Arten von Aktualisierungen verhindern.
Verhindern von Aktualisierungen aller Stack-Ressourcen
Um Aktualisierungen aller Stack-Ressourcen zu verhindern, gibt die folgende Richtlinie eine Deny-Anweisung für alle Aktualisierungsaktionen für alle Ressourcen an.
{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }
Verhindern von Aktualisierungen an einer einzelnen Ressource
Mit der folgenden Richtlinie werden alle Aktualisierungsaktionen in der Datenbank mit der logischen ID MyDatabase verweigert. Es werden alle Aktualisierungsaktionen für alle anderen Stack-Ressourcen mit einer Allow-Anweisung zugelassen. Die Allow-Anweisung gilt nicht für die MyDatabase-Ressource, da die Deny-Anweisung immer Zulassungsaktionen überschreibt.
{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "LogicalResourceId/MyDatabase" }, { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }
Vermeiden Sie die Verwendung NotResourcezum Schutz von Ressourcen
Erwägen Sie, ein NotResource Element mit Effect: Allow zu verwenden, um eine Ressource durch eine standardmäßige Ablehnung zu schützen, wie im folgenden Beispiel:
{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "NotResource" : "LogicalResourceId/ProductionDatabase" } ] }
Diese Richtlinie verhindert nicht zuverlässig Aktualisierungen der ProductionDatabase Ressource. AWS CloudFormation wertet Stack-Richtlinien unabhängig voneinander sowohl anhand der logischen Ressourcen-ID als auch anhand des Ressourcentyps aus. Eine standardmäßige Ablehnung blockiert eine Aktualisierung nur, wenn beide Bewertungen den Status „Abgelehnt“ ergeben. Da diese Richtlinie nur die logische Ressourcen-ID aus der Allow Anweisung ausschließt, bleibt der Ressourcentyp implizit zulässig. AWS CloudFormation erlaubt dann das Update.
Verwenden Sie immer eine explizite Deny Anweisung, um Ressourcen zu schützen, wie im vorherigen Beispiel gezeigt.
Verhindern von Aktualisierungen aller Instances eines Ressourcentyps
Mit der folgenden Richtlinie werden alle Aktualisierungsaktionen für den RDS-DB-Instance-Ressourcentyp verweigert. Es werden alle Aktualisierungsaktionen für alle anderen Stack-Ressourcen mit einer Allow-Anweisung zugelassen. Die Allow-Anweisung gilt nicht für die RDS-DB-Instance-Ressourcen, da eine Deny-Anweisung immer Zulassungsaktionen überschreibt.
{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "*", "Condition" : { "StringEquals" : { "ResourceType" : ["AWS::RDS::DBInstance"] } } }, { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }
Verhindern von Ersetzungsaktualisierungen für eine Instance
Mit der folgenden Richtlinie werden Aktualisierungen verweigert, die zu einer Ersetzung der Instance mit der logischen ID MyInstance führen würden. Es werden alle Aktualisierungsaktionen für alle anderen Stack-Ressourcen mit einer Allow-Anweisung zugelassen. Die Allow-Anweisung gilt nicht für die MyInstance-Ressource, da die Deny-Anweisung immer Zulassungsaktionen überschreibt.
{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:Replace", "Principal": "*", "Resource" : "LogicalResourceId/MyInstance" }, { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }
Verhindern von Aktualisierungen an verschachtelten Stacks
Die folgende Richtlinie verweigert alle Aktualisierungsaktionen für den CloudFormation Stack-Ressourcentyp (verschachtelte Stacks). Es werden alle Aktualisierungsaktionen für alle anderen Stack-Ressourcen mit einer Allow-Anweisung zugelassen. Die Allow-Anweisung gilt nicht für die CloudFormation -Stack-Ressourcen, da die Deny-Anweisung immer Zulassungsaktionen überschreibt.
{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "*", "Condition" : { "StringEquals" : { "ResourceType" : ["AWS::CloudFormation::Stack"] } } }, { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }