Verhindern von Aktualisierungen der Stack-Ressourcen - 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.

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 AWS 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 steuern.

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

Während einer Stack-Aktualisierung aktualisiert AWS CloudFormation automatisch Ressourcen, die von anderen aktualisierten Ressourcen abhängen. Beispielsweise AWS CloudFormation aktualisiert eine Ressource, die auf eine aktualisierte Ressource verweist. AWS CloudFormation führt keine physischen Änderungen, z. B. an der Ressourcen-ID, an automatisch aktualisierten Ressourcen durch. Wenn diesen Ressourcen jedoch eine Stack-Richtlinie zugeordnet ist, müssen Sie über die Berechtigung verfügen, diese 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 AWS CloudFormation Stack-Aktualisierungsaktionen definiert, die AWS 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 Deny oder Allow festlegen, 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 eine Allow-Anweisung überschrieben. Um sicherzustellen, dass eine Ressource geschützt ist, verwenden Sie eine Deny-Anweisung für die betreffende Ressource.

Aktion

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. AWS CloudFormation erstellt eine neue Ressource mit den angegebenen Aktualisierungen 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ßer Update:Delete zuzulassen, verwenden Sie NotAction, wie im folgenden Beispiel veranschaulicht:

{ "Statement" : [ { "Effect" : "Allow", "NotAction" : "Update:Delete", "Principal": "*", "Resource" : "*" } ] }

Weitere Informationen zu Stack-Aktualisierungen finden Sie unter AWS CloudFormation-Stack-Updates.

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. Um Arten von Ressourcen anzugeben, verwenden Sie das Condition-Element.

Um eine einzelne Ressource anzugeben, verwenden Sie deren logische ID. Beispielsweise:

"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 auch ein Not-Element mit Ressourcen verwenden. Um beispielsweise Aktualisierungen für alle Ressourcen außer einer zuzulassen, verwenden Sie ein NotResource-Element, um diese Ressource zu schützen:

{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "NotResource" : "LogicalResourceId/ProductionDatabase" } ] }

Wenn Sie eine Stack-Richtlinie festlegen, werden Aktualisierungen, die nicht ausdrücklich zugelassen sind, verweigert. Wenn Sie Aktualisierungen für alle Ressourcen außer der ProductionDatabase-Ressource zulassen, verweigern Sie Aktualisierungen der ProductionDatabase-Ressource.

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 die Deny-Anweisung verweigert Aktualisierungen für EC2 Instances und RDS-DB-Instances. Die Deny-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 oder verwenden AWS CLI , um eine Stack-Richtlinie anzuwenden, wenn Sie einen Stack erstellen. Sie können auch die 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 die verwenden, AWS CLI um sie zu ändern.

Stack-Richtlinien gelten für alle AWS 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)
  1. Öffnen Sie die - AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie auf der Seite CloudFormation Stacks die Option Stack erstellen aus.

  3. 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.

  4. 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.

So legen Sie eine Stack-Richtlinie beim Erstellen eines Stacks fest (AWS CLI)
  • Verwenden Sie den Befehl aws cloudformation create-stack mit der Option --stack-policy-body, um eine geänderte Richtlinie einzugeben, oder der Option --stack-policy-url, um eine Datei anzugeben, die die Richtlinie enthält.

So legen Sie eine Stack-Richtlinie für einen vorhandenen Stack fest (AWS CLI nur )
  • Verwenden Sie den Befehl aws cloudformation set-stack-policy mit der Option --stack-policy-body, um eine geänderte Richtlinie einzugeben, oder der Option --stack-policy-url, um eine Datei anzugeben, die die Richtlinie enthält.

    Anmerkung

    Um einem vorhandenen Stack eine Richtlinie hinzuzufügen, müssen Sie über die Berechtigung für die AWS CloudFormation SetStackPolicy Aktion verfü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, müssen Sie über die Berechtigung zur Verwendung der AWS CloudFormation -SetStackPolicyAktion verfügen. Informationen zum Festlegen von AWS CloudFormation Berechtigungen finden Sie unter Steuern des Zugriffs mit AWS Identity and Access Management.

Anmerkung

Während einer Stack-Aktualisierung aktualisiert AWS CloudFormation automatisch Ressourcen, die von anderen aktualisierten Ressourcen abhängen. Beispielsweise AWS CloudFormation aktualisiert eine Ressource, die auf eine aktualisierte Ressource verweist. AWS CloudFormation führt keine physischen Änderungen, z. B. die ID der Ressourcen, an automatisch aktualisierten Ressourcen durch. Wenn diesen Ressourcen jedoch eine Stack-Richtlinie zugeordnet ist, müssen Sie über die Berechtigung verfügen, diese zu aktualisieren.

So aktualisieren Sie eine geschützte Ressource (Konsole)
  1. Öffnen Sie die - AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. 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.

  3. 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 über eine Vorlage in einem Bucket mit aktiviertem Versioning verfügen, können Sie eine bestimmte Version der Vorlage angeben, z. B. https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW. Weitere Informationen finden Sie unter Verwalten von Objekten in einem Bucket mit aktiviertem Versioning im Benutzerhandbuch für Amazon Simple Storage Service.

  4. 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.

    AWS CloudFormation füllt jeden Parameter mit dem Wert aus, der derzeit im Stack festgelegt ist, mit Ausnahme von Parametern, die mit dem -NoEchoAttribut deklariert sind. Sie können die aktuellen Werte für diese Parameter verwenden, indem Sie Use existing value (Existierenden Wert verwenden) auswählen.

    Weitere Informationen zum Maskieren vertraulicher Daten mit NoEcho sowie zum Verwenden dynamischer Parameter zur Verwaltung von Secrets enthält die bewährte Methode Keine Anmeldeinformationen in Ihre Vorlagen einbetten.

  5. Geben Sie eine Überschreibungs-Stack-Richtlinie an.

    1. 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.

    2. Wählen Sie Upload a file (Datei hochladen) aus.

    3. 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.

    4. 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

    AWS CloudFormation wendet die Überschreibungsrichtlinie nur während dieser Aktualisierung an. Die Überschreibungsrichtlinie ändert die Stack-Richtlinie nicht dauerhaft. Informationen zum Ändern einer Stack-Richtlinie finden Sie unter Ändern einer Stack-Richtlinie .

  6. Ü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 zum Verwenden von IAM-Ressourcen in Vorlagen finden Sie unter Steuern des Zugriffs mit AWS Identity and Access Management.

    Überprüfen Sie im Abschnitt Vorschau Ihrer Änderungen, ob alle erwarteten Änderungen vornehmen AWS CloudFormation wird. Überprüfen Sie beispielsweise, ob die Ressourcen AWS CloudFormation hinzufügt, entfernt und ändert, die Sie hinzufügen, entfernen oder ändern möchten. AWS CloudFormation generiert diese Vorschau, indem ein Änderungssatz für den Stack erstellt wird. Weitere Informationen finden Sie unter Aktualisieren von Stacks mithilfe von Änderungssätzen.

  7. 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 auf Änderungssatz anzeigen anstelle von Aktualisieren. CloudFormation zeigt den auf der Grundlage Ihrer Aktualisierungen generierten Änderungssatz an. Wenn Sie bereit sind, den Stack zu aktualisieren, klicken Sie auf Execute (Ausführen).

    CloudFormation zeigt die Seite Stack-Details für Ihren Stack an. Ihr Stack verfügt jetzt über den Status UPDATE_IN_PROGRESS. Nachdem die Aktualisierung des Stacks erfolgreich abgeschlossen CloudFormation hat, wird der Stack-Status auf UPDATE_COMPLETE gesetzt.

    Wenn die Stack-Aktualisierung fehlschlägt, setzt Änderungen CloudFormationautomatisch zurück und legt den Stack-Status auf UPDATE_ROLLBACK_COMPLETE fest.

So aktualisieren Sie eine geschützte Ressource (AWS CLI)
  • Verwenden Sie den Befehl aws cloudformation update-stack mit der Option --stack-policy-during-update-body, um eine geänderte Richtlinie einzugeben, oder der Option --stack-policy-during-update-url, um eine Datei anzugeben, die die Richtlinie enthält.

    Anmerkung

    AWS CloudFormation wendet die Überschreibungsrichtlinie nur während dieser Aktualisierung 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, benötigen Sie Berechtigungen zum Verwenden der SetStackPolicy-Aktion.

Verwenden Sie die AWS CLI , um Stack-Richtlinien zu ändern.

So ändern Sie eine Stack-Richtlinie (AWS CLI)
  • Verwenden Sie den Befehl aws cloudformation set-stack-policy mit der Option --stack-policy-body, um eine geänderte Richtlinie einzugeben, oder der Option --stack-policy-url, um eine Datei anzugeben, 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" : "*" } ] }

Sie können dasselbe Ergebnis wie im vorherigen Beispiel erzielen, wenn Sie eine Standardverweigerung verwenden. Wenn Sie eine Stack-Richtlinie festlegen, AWS CloudFormation verweigert jede Aktualisierung, die nicht ausdrücklich erlaubt ist. Die folgende Richtlinie lässt Aktualisierungen für alle Ressourcen zu, außer für die ProductionDatabase-Ressource, die standardmäßig verweigert wird.

{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "NotResource" : "LogicalResourceId/ProductionDatabase" } ] }
Wichtig

Es gibt Risiken bei der Verwendung einer Standardverweigerung. Wenn es an einer anderen Stelle in der Richtlinie eine Allow-Anweisung gibt (z. B. eine Allow-Anweisung, die einen Platzhalter verwendet), können Sie unwissentlich Aktualisierungsberechtigungen für Ressourcen erteilen, die Sie gar nicht aktualisieren möchten. Da eine ausdrückliche Verweigerung sämtliche Zulassungsaktionen überschreibt, können Sie sicherstellen, dass eine Ressource durch Verwendung einer Deny-Anweisung geschützt wird.

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 AWS 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 AWS CloudFormationStack-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" : "*" } ] }