Erstellen eines Stack-Sets - AWS CloudFormation

Erstellen eines Stack-Sets

Sie können ein Stack-Set mithilfe der AWS Management Console oder mithilfe der AWS CloudFormation-Befehle in der AWS CLI erstellen. Sie können ein Stack-Set entweder mit self-managed- oder mit service-managed- Berechtigungen erstellen.

Mit self-managed-Berechtigungen können Sie Stack-Instances für bestimmte AWS-Konten in bestimmten Regionen bereitstellen. Dazu müssen Sie zunächst die erforderlichen IAM-Rollen erstellen, um eine Vertrauensstellung zwischen dem Konto, von dem aus Sie das Stack-Set verwalten, und dem Konto, für das Sie Stack-Instances bereitstellen, herzustellen.

Mit service-managed-Berechtigungen können Sie Stack-Instances für Konten bereitstellen, die von AWS Organizations in bestimmten Regionen verwaltet werden. Mit diesem Modell müssen Sie nicht die erforderlichen IAM-Rollen erstellen. StackSets erstellt die IAM-Rollen für Sie. Sie können auch automatische Bereitstellungen für Konten aktivieren, die zukünftig einer Zielorganisation oder Organisationseinheit (OU) hinzugefügt werden. Wenn automatische Bereitstellungen aktiviert sind, löscht StackSets Stack-Instances automatisch von einem Konto, wenn es aus einer Zielorganisation oder OU entfernt wird.

Erstellen eines Stack-Sets mit selbstverwalteten Berechtigungen

Erstellen eines Stack-Sets mit selbstverwalteten Berechtigungen mithilfe der AWS Management Console

  1. Öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie im Navigationsbereich StackSets aus.

  3. Wählen Sie oben auf der Seite StackSets die Option Create StackSet (StackSet erstellen) aus.

  4. Wählen Sie unter Prerequisite - Prepare template (Voraussetzung: Vorbereiten der Vorlage) die Option Use a sample template (Beispielvorlage verwenden) aus.

  5. Wählen Sie unter Select a sample template (Beispielvorlage auswählen) aus dem Dropdown-Menü die Vorlage Enable AWS config (AWS Config aktivieren) aus. Klicken Sie auf Next (Weiter).

    
                        StackSets-Beispielvorlage „Enable AWS Config“
  6. Geben Sie auf der Seite Specify StackSet details (StackSet-Details angeben) die folgenden Informationen ein.

    1. Legen Sie einen Namen für das Stack-Set fest. Die Namen von Stack-Sets müssen mit einem Buchstaben beginnen und dürfen nur Buchstaben, Ziffern und Bindestriche enthalten. In diesem Tutorial wird der Name my-awsconfig-stackset verwendet.

    2. Sie werden aufgefordert, Werte für Parameter anzugeben, die von AWS Config verwendet werden. Weitere Informationen zu diesen Parametern finden Sie unter Einrichten von AWS Config mit der Konsole im AWS Config-Entwicklerhandbuch. In dieser Anleitung behalten wir für alle AWS Config-Parameter die Standardeinstellungen bei.

    3. Sie können Amazon Simple Notification Service (SNS)-Aktualisierungen per E-Mail, basierend auf Protokollinhalten, mithilfe der Parameter TopicARN und NotificationEmail konfigurieren. Für die Zwecke dieser Anleitung verzichten wir auf das Konfigurieren von Amazon SNS-Aktualisierungen.

    4. Sie können den Übermittlungskanal für Aktualisierungen und Benachrichtigungen mithilfe der Parameter DeliveryChannelName und Frequency konfigurieren. Weitere Informationen über den Übermittlungskanal in AWS Config finden Sie unter Verwalten des Übermittlungskanals im AWS Config-Entwicklerhandbuch. Für die Zwecke dieser Anleitung behalten wir in diesem Bereich die Standardeinstellungen bei.

  7. Wählen Sie Next (Weiter) aus, wenn Sie alle gewünschten Parameter für AWS Config angegeben haben.

  8. Fügen Sie auf der Seite Configure StackSet options (StackSet-Optionen konfigurieren) einen Tag hinzu, indem Sie ein Schlüssel-Wert-Paar angeben. Im Rahmen dieser Anleitung erstellen wir ein Tag mit dem Namen Stage (Stufe) und dem Wert Test. Tags, die Sie für Stack-Sets übernehmen, werden für alle Ressourcen übernommen, die von Ihren Stacks erstellt werden. Weitere Informationen zur Verwendung von Tags in AWS finden Sie unter Verwendung von Kostenzuordnungs-Tags im AWS Billing and Cost Management-Benutzerhandbuch.

    Lassen Sie Permissions (Berechtigungen) ohne Angabe und wählen Sie Next (Weiter) aus.

    
                        Seite „Tags“
  9. Geben Sie auf der Seite Set deployment options (Bereitstellungsoptionen festlegen) die Konten und Regionen an, in denen Stacks in Ihrem Stack-Set bereitgestellt werden sollen.

    AWS CloudFormation stellt Stacks in den angegebenen Konten innerhalb der ersten Region bereit und fährt dann mit der jeweils nächsten Region fort, solange die Bereitstellungsfehler für eine Region eine festgelegte Fehlertoleranz nicht überschreiten.

    1. Wählen Sie für Accounts (Konten) die Option Deploy stacks in accounts (Stacks in Konten bereitstellen) aus. Fügen Sie Ihre Zielkonto-Zahlen in das Textfeld ein und trennen Sie dabei die einzelnen Zahlen durch Kommas.

    2. Für Specify regions (Regionen angeben) wählen Sie Region USA Ost (N.-Virginia) aus. Wiederholen Sie den Vorgang für Region USA West (Oregon). Wählen Sie den Pfeil neben Region USA West (Oregon) aus, um sie als ersten Eintrag in der Liste zu positionieren. Die Reihenfolge der Regionen unter Specify regions (Regionen angeben) legt die Reihenfolge ihrer Bereitstellung fest.

    3. Für Deployment options (Bereitstellungsoptionen):

      • Für Maximum concurrent accounts (Maximale Anzahl paralleler Konten) behalten Sie die Standardwerte Number (Zahl) und 1 bei.

        Dies bewirkt, dass AWS CloudFormation Ihren Stack jeweils nur in einem Konto bereitstellt.

      • Behalten Sie für Failure tolerance (Fehlertoleranz) die Standardwerte Number (Zahl) und 0 bei.

        Dies bedeutet, dass maximal eine Stack-Bereitstellung in einer der angegebenen Regionen fehlschlagen kann, bevor AWS CloudFormation die Bereitstellung in der aktuellen Region stoppt und die Bereitstellung in den verbleibenden Regionen abbricht.

    4. Für Parallelität der Region:

      • Wählen Sie Sequenziell oder Parallel aus, um die StackSets-Bereitstellungsreihenfolge für bestimmte Regionen zu bestimmen. Standardmäßig ist Sequenziell ausgewählt.

      Klicken Sie auf Next (Weiter).

    
                        Seite „Set Deployment Options“
  10. Überprüfen Sie Ihre Auswahl und die Eigenschaften Ihres Stack-Sets auf der Seite Review. Um Änderungen vorzunehmen, wählen Sie Edit (Bearbeiten) im Bereich, in dem Sie Eigenschaften ändern möchten. Bevor Sie das Stack-Set erstellen können, müssen Sie das Kontrollkästchen im Bereich Capabilities (Funktionalitäten) markieren. Sie erkennen damit an, dass einige der Ressourcen, die Sie mit dem Stack-Set erstellen, unter Umständen neue IAM-Ressourcen und Berechtigungen erfordern. Weitere Informationen zu eventuell erforderlichen Berechtigungen finden Sie unter Bestätigung der IAM-Ressourcen in AWS CloudFormation-Vorlagen in dieser Anleitung. Wenn Sie bereit sind, Ihr Stack-Set zu erstellen, wählen Sie Submit (Einsenden) aus.

    
                        Bestätigung der erforderlichen Fähigkeiten
  11. AWS CloudFormation beginnt mit dem Erstellen Ihres Stack-Sets. Auf der Seite mit den StackSet-Details, die beim Auswählen von Submit (Einsenden) geöffnet wird, können Sie Fortschritt und Status beim Erstellen der Stacks in Ihrem Stack-Set verfolgen.

    
                        Registerkarte „Operations (Operationen)“ der StackSets-Detailseite

Erstellen eines Stack-Sets mit selbstverwalteten Berechtigungen mithilfe der AWS CLI

Wenn Sie Stack-Sets mithilfe von AWS CLI-Befehlen erstellen, führen Sie zwei separate Befehle aus: create-stack-set zum Hochladen Ihrer Vorlage und Erstellen des Stack-Set-Containers und create-stack-instances zum Erstellen der Stacks in Ihrem Stack-Set. Führen Sie zuerst den AWS CLI-Befehl create-stack-set aus, um die AWS CloudFormation-Beispielvorlage hochzuladen, die AWS Config aktiviert, und starten Sie dann das Erstellen des Stack-Sets.

  1. Öffnen Sie AWS CLI.

  2. Führen Sie den folgenden Befehl aus. Geben Sie als Parameter --template-url die URL des Amazon S3-Buckets an, in dem Sie die Vorlage speichern. Im Rahmen dieser Anleitung verwenden wir my-awsconfig-stackset als Wert des Parameters --stack-set-name.

    aws cloudformation create-stack-set --stack-set-name my-awsconfig-stackset --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
  3. Nachdem der Befehl create-stack-set abgeschlossen ist, führen Sie den Befehl list-stack-sets aus, um festzustellen, ob Ihr Stack erstellt wurde. Ihr neues Stack-Set sollte in den Ergebnissen vorhanden sein.

    aws cloudformation list-stack-sets
  4. Führen Sie den create-stack-instances-Befehl AWS CLI aus, um Stack-Instances zu Ihrem Stack-Set hinzufügen. Im Rahmen dieser Anleitung verwenden wir us-west-2 und us-east-1 als Werte für den Parameter --regions.

    Legen Sie die Fehlertoleranz und die maximale Anzahl gleichzeitiger Konten fest, indem Sie im Parameter FailureToleranceCount wie im folgenden Beispiel den Wert für 0 auf MaxConcurrentCount und für 1 auf --operation-preferences festlegen. Wenn Sie stattdessen Prozentwerte sehen möchten, verwenden Sie FailureTolerancePercentage oder MaxConcurrentPercentage. Für die Zwecke dieser Anleitung verwenden wir die Anzahl und keine Prozentwerte.

    Anmerkung

    Der Wert von MaxConcurrentCount hängt vom Wert von FailureToleranceCount ab. MaxConcurrentCount ist höchstens eins mehr als FailureToleranceCount.

    aws cloudformation create-stack-instances --stack-set-name my-awsconfig-stackset --accounts '["account_ID_1","account_ID_2"]' --regions '["region_1","region_2"]' --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    Anmerkung

    Die Parallelität der StackSet-Instance-Bereitstellungen im Vorgang hängt vom Wert von FailureToleranceCount-MaxConcurrentCount ab und ist höchstens eins mehr als FailureToleranceCount.

    Wichtig

    Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie einen anderen Vorgang starten. Sie können nur jeweils einen Vorgang ausführen.

  5. Vergewissern Sie sich, dass die Stack-Instances erfolgreich erstellt wurden. Führen Sie DescribeStackSetOperation mit der operation-id aus, die bei Schritt 4 zurückgegeben wurde.

    aws cloudformation describe-stack-set-operation --stack-set-name my-awsconfig-stackset --operation-id operation_ID

Erstellen eines Stack-Set mit serviceverwalteten Berechtigungen

Überlegungen beim Erstellen eines Stack-Sets mit serviceverwalteten Berechtigungen

Bevor Sie ein Stack-Set mit serviceverwalteten Berechtigungen erstellen, sollten Sie Folgendes beachten:

  • Stack-Sets mit serviceverwalteten Berechtigungen werden im Verwaltungskonto erstellt, einschließlich Stack-Sets, die von delegierten Administratoren erstellt werden.

  • Ihr Stack-Set kann auf Ihre gesamte Organisation oder bestimmte Organisationseinheiten (OUs) anvisieren. Wenn Ihr Stack-Set Ihre Organisation als Ziel angibt, hat es auch alle Konten in allen OUs in der Organisation als Ziel. Wenn Ihr Stack-Set bestimmte OUs als Ziel angibt, hat es auch alle Konten in diesen OUs als Ziel.

  • Wenn Ihr Stack-Set eine übergeordnete OU anvisiert, visiert das Stack-Set auch untergeordnete OUs an.

  • Mehrere Stack-Sets können dieselbe Organisation oder OU anvisieren.

  • Ihr Stack-Set kann keine Konten außerhalb Ihrer Organisation anvisieren.

  • Ihr Stack-Set kann keine verschachtelten Stacks bereitstellen.

  • StackSets stellt keine Stack-Instances auf dem Verwaltungskonto des Unternehmens bereit, selbst wenn sich das Verwaltungskonto in Ihrer Organisation oder in einer Organisationseinheit Ihrer Organisation befindet.

  • Die automatische Bereitstellung wird auf Stack-Set-Ebene festgelegt. Automatische Bereitstellungen können nicht selektiv für OUs, Konten oder Regionen angepasst werden.

  • Die Berechtigungen der IAM-Prinzipal-Entität (Benutzer, Rolle oder Gruppe), mit der Sie sich beim Verwaltungskonto der Organisation anmelden, bestimmen, ob Sie zur Bereitstellung mit StackSets berechtigt sind. Eine IAM-Beispielrichtlinie, die Berechtigungen für die Bereitstellung in einer Organisation erteilt, finden Sie unter Beispielrichtlinie, die serviceverwaltete Stack-Set-Berechtigungen gewährt.

  • Delegierte Administratoren haben volle Berechtigungen für die Bereitstellung auf Konten Ihrer Organisation. Das Verwaltungskonto kann delegierte Administratorberechtigungen nicht auf die Bereitstellung auf bestimmten Organisationseinheiten oder die Durchführung bestimmter Operationen für Stack-Sets beschränken.

Erstellen eines Stack-Sets mit serviceverwalteten Berechtigungen mithilfe der AWS CloudFormation-Konsole

  1. Öffnen Sie die AWS CloudFormation-Konsole unter der Adresse https://console.aws.amazon.com/cloudformation/.

  2. Wählen Sie im Navigationsbereich StackSets aus.

  3. Wählen Sie oben auf der Seite StackSets die Option Create StackSet (StackSet erstellen) aus.

  4. Wählen Sie unter Prepare template (Vorlage vorbereiten) den Wert Template is ready (Vorlage ist bereit) aus.

  5. Wählen Sie unter Specify template (Vorlage angeben) entweder die URL für den S3-Bucket, der Ihre Stack-Vorlage enthält, aus oder laden Sie eine Stack-Vorlagendatei hoch. Wählen Sie Next (Weiter).

  6. Geben Sie auf der Seite Specify StackSet details (StackSet-Details angeben) einen Namen für das Stack-Set an, geben Sie Parameter an und wählen Sie dann Next (Weiter) aus.

  7. Geben Sie auf der Seite Configure StackSet options (StackSet-Optionen konfigurieren) unter Tags alle Tags an, die auf Ressourcen im Stack angewendet werden sollen.

  8. Wählen Sie unter Permissions (Berechtigungen) die Option Service-managed permissions (Serviceverwaltete Berechtigungen) aus.

    Wenn der vertrauenswürdige Zugriff mit AWS Organizations deaktiviert ist, wird ein Banner angezeigt. Vertrauenswürdiger Zugriff ist erforderlich, um ein Stack-Set mit serviceverwalteten Berechtigungen zu erstellen oder zu aktualisieren. Nur der Administrator im Verwaltungskonto der Organisation verfügt über Berechtigungen zum Verwalten des vertrauenswürdigen Zugriffs.

    
                                Banner, Aktivieren des vertrauenswürdigen Zugriffs.
  9. Wählen Sie Next (Weiter) aus, um fortzufahren und vertrauenswürdigen Zugriff zu aktivieren, falls er noch nicht aktiviert ist.

  10. Wählen Sie auf der Seite Set deployment options (Bereitstellungsoptionen festlegen) unter Deployment targets (Bereitstellungsziele) die Konten in Ihrer Organisation für die Bereitstellung aus.

    • Wählen Sie Deploy to organization (In Organisation bereitstellen) aus, um für alle Konten in Ihrer Organisation bereitzustellen.

      
                                        Stellen Sie Stack-Instances für alle Konten in Ihrer Organisation bereit.
    • Wählen Deploy to organizational units (OUs) (Für Organisationseinheiten (OUs) bereitstellen) aus, um für alle Konten in bestimmten Organisationseinheiten bereitzustellen. Wählen Sie Add an OU (OU hinzufügen) aus und fügen Sie dann die Ziel-OU-ID in das Textfeld ein. Wiederholen Sie den Vorgang für jede neue Ziel-OU.

      
                                        Bereitstellen von Stack-Instances für alle Konten in ausgewählten OUs in Ihrer Organisation.
  11. Wählen Sie unter Automatic deployment (Automatische Bereitstellung) aus, ob StackSets automatisch für Konten bereitgestellt werden, die der Zielorganisation oder OUs zukünftig hinzugefügt werden.

    
                                Automatische Bereitstellungseinstellungen für Stack-Sets mit serviceverwalteten Berechtigungen.
  12. Wenn Sie die automatische Bereitstellung aktiviert haben, wählen Sie unter Account removal behavior (Kontoentfernungsverhalten) aus, ob Stack-Ressourcen beibehalten oder gelöscht werden, wenn ein Konto aus einer Zielorganisation oder OU entfernt wird.

    
                                Einstellungen für das Kontoentfernungsverhalten für Stack-Sets mit serviceverwalteten Berechtigungen.
    Anmerkung

    Wenn die Option Retain stacks (Stacks beibehalten) ausgewählt ist, werden Stack-Instances aus dem Stack-Set entfernt, die Stacks und ihre zugehörigen Ressourcen werden jedoch beibehalten. Die Ressourcen verbleiben im aktuellen Zustand, sind aber nicht mehr Teil des Stack-Sets. Die Stacks können nicht einem vorhandenen oder neuen Stack-Set neu zugeordnet werden.

  13. Wählen Sie unter Deployment regions (Bereitstellungsregionen) die Regionen aus, in denen Sie Stack-Instances bereitstellen möchten. Wählen Sie Next (Weiter).

  14. Überprüfen Sie auf der Seite Review (Überprüfen), ob StackSets für die richtigen Konten in den richtigen Regionen bereitstellt, und wählen Sie dann Create StackSet (StackSet erstellen)aus.

Die Seite StackSet details (StackSet-Details) wird geöffnet. Sie können den Fortschritt und den Status der Erstellung der Stacks in Ihrem Stack-Set anzeigen.

Erstellen eines Stack-Sets mit serviceverwalteten Berechtigungen mithilfe der AWS CLI

Wenn Sie Stack-Sets mit der AWS CLI erstellen, führen Sie zwei separate Befehle aus. Während create-stack-set laden Sie Ihre Vorlage hoch, erstellen den Stack-Set-Container und verwalten automatische Bereitstellungen. Während create-stack-instances erstellen Sie Stack-Instances in bestimmten Zielkonten.

Wenn Sie als delegierter Administrator agieren, müssen Sie den Parameter --call-as jedes Mal auf DELEGATED_ADMIN festlegen, wenn Sie einen StackSets-Befehl ausführen.

--call-as DELEGATED_ADMIN

Stack-Sets, die von einem delegierten Administrator erstellt wurden, werden im Verwaltungskonto der Organisation erstellt.

  1. Öffnen Sie die AWS CLI.

  2. Führen Sie den Befehl create-stack-set aus. Im folgenden Beispiel aktivieren wir automatische Bereitstellungen, um StackSets die automatische Bereitstellung für Konten zu ermöglichen, die der Zielorganisation oder Ziel-OUs zukünftig hinzugefügt werden. Wir behalten auch Stack-Ressourcen bei, wenn ein Konto aus einer Zielorganisation oder OU entfernt wird.

    aws cloudformation create-stack-set --stack-set-name StackSet_myApp --template-url https://s3.us-west-2.amazonaws.com/cloudformation-templates-us-west-2/MyApp.template --permission-model SERVICE_MANAGED --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true
  3. Nachdem der create-stack-set-Befehl abgeschlossen ist, führen Sie den list-stack-sets-Befehl aus, um zu bestätigen, dass Ihr Stack-Set erstellt wurde. Ihr neues Stack-Set ist in den Ergebnissen aufgeführt.

    aws cloudformation list-stack-sets
    • Wenn Sie den Parameter --call-as auf DELEGATED_ADMIN festlegen, während Sie bei Ihrem Mitgliedskonto angemeldet sind, gibt list-stack-sets alle Stack-Sets mit serviceverwalteten Berechtigungen im management account der Organisation zurück.

    • Wenn Sie den Parameter --call-as auf SELF festlegen, während Sie bei Ihrem AWS-Konto angemeldet sind, gibt list-stack-sets alle selbstverwalteten Stack-Sets in Ihrem AWS-Konto zurück.

    • Wenn Sie den Parameter --call-as auf SELF festlegen, während Sie im management account der Organisation angemeldet sind, gibt list-stack-sets alle Stack-Sets im management account der Organisation zurück.

  4. Führen Sie den create-stack-instances-Befehl aus, um Ihrem Stack-Set Stack-Instances hinzuzufügen. Geben Sie für den --deployment-targets-Parameter die Organisationsstamm-ID an, die für alle Konten in Ihrer Organisation bereitgestellt werden soll, oder geben Sie OU-IDs an, die für alle Konten in diesen OUs bereitgestellt werden sollen. In diesem Beispiel geben wir OUs mit ou-rcuk-1x5j1lwo- und ou-rcuk-slr5lh0a-IDs an.

    aws cloudformation create-stack-instances --stack-set-name StackSet_myApp --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]'
    Wichtig

    Warten Sie, bis der Vorgang abgeschlossen ist, bevor Sie einen anderen Vorgang starten. Sie können nur jeweils einen Vorgang ausführen.

  5. Führen Sie mithilfe der operation-id, die als Teil der create-stack-instances-Ausgabe in Schritt 4 zurückgegeben wurde, describe-stack-set-operation aus, um zu überprüfen, ob die Stack-Instances erfolgreich erstellt wurden.