Einrichtung der Enterprise Blueprint Factory - AWS Präskriptive Leitlinien

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.

Einrichtung der Enterprise Blueprint Factory

Dieser Abschnitt hilft Ihnen bei der Einrichtung der Enterprise Blueprint Factory in Ihrer Umgebung. AWS Er enthält detaillierte Anweisungen zur Einrichtung der erforderlichen Repositorys und der AWS Ressourcen für die Enterprise Blueprint Factory.

Voraussetzungen

Im Folgenden sind die Voraussetzungen für die Einrichtung der Enterprise Blueprint Factory in Ihrer Umgebung aufgeführt: AWS

  • Folgendes: AWS-Konten

    • Ein Konto, das zur Verwaltung der Enterprise Blueprint Factory und zur Veröffentlichung von Produkten verwendet wird

    • Ein oder mehrere Konten, die das veröffentlichte Produkt verwenden

  • Alle Konten sind:

  • AWS Command Line Interface (AWS CLI), installiert und konfiguriert

  • Berechtigungen zum Bereitstellen eines AWS CloudFormation Stacks, der die folgenden AWS Ressourcen erstellt:

    • Amazon CloudWatch Logs-Protokollgruppe

    • AWS CodePipeline Pipelines

    • AWS CodeBuild projekte

    • Richtlinien und Regeln für Amazon EventBridge Event Bus

    • AWS Identity and Access Management Rolle und Richtlinie (IAM)

    • AWS Key Management Service (AWS KMS) Schlüssel und wichtige Politik

    • AWS Service Catalog Portfolios, Produkte und bereitgestellte Produkte

    • Thema, Themenrichtlinie und Abonnement von Amazon Simple Notification Service (Amazon SNS)

    • Buckets für Amazon Simple Storage Service (Amazon S3)

    • AWS Systems Manager Parameter Parameter speichern

    Weitere Informationen zum Einrichten dieser Berechtigungen finden Sie in der CloudFormation Dokumentation und unter Implementieren von Richtlinien für Berechtigungen mit den geringsten Rechten für. AWS CloudFormation

  • Ein Konto GitHub

Bewährte Methoden

Wir empfehlen Ihnen, bei der Einrichtung der Enterprise Blueprint Factory in Ihrer AWS Umgebung die folgenden bewährten Methoden zu beachten:

  • Beachten Sie bei der Konfiguration der für die Bereitstellung von Enterprise Blueprint Factory erforderlichen Berechtigungen das Prinzip der geringsten Rechte und gewähren Sie nur die erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter Gewährung der geringsten Rechte und bewährte Methoden zur Sicherheit.

  • Beachten Sie bei der Konfiguration des Zugriffs auf Service Catalog-Portfolios das Prinzip der geringsten Rechte und gewähren Sie nur bestimmten Rollen, Benutzern oder Administratoren Zugriff. Folgen Sie den bewährten Sicherheitsmethoden für Service Catalog.

Die Repositorys erstellen

Dieser Abschnitt hilft Ihnen bei der Einrichtung des Konfigurations-Repositorys und des Produkt-Repositorys für die Enterprise Blueprint Factory. Um Ihre Repositorys einzurichten, teilen Sie die bereitgestellten Repositorys ein. GitHub Anschließend stellen Sie damit eine Verbindung AWS CodeConnections zu Ihrem GitHub Repository her. Anschließend klonen Sie die GitHub Repositorys auf Ihren lokalen Computer.

Um die Repositorys zu forken GitHub
  1. Melden Sie sich bei GitHub an.

  2. Navigieren Sie zum Configuration-Repo-Repository. GitHub

  3. Wählen Sie Fork.

  4. Geben Sie auf der Seite Neuen Fork erstellen im Feld Repository-Name den folgenden Text einServiceCatalog-ConfigRepo.

  5. (Optional) Geben Sie eine Beschreibung ein.

  6. Wählen Sie Nur den Hauptzweig kopieren aus.

  7. Wählen Sie Fork erstellen.

  8. Wiederholen Sie diese Schritte, um das GitHub Code-Repo-Repository zu forken. Geben Sie den Namen ServiceCatalog-CodeRepo für dieses Repository ein.

  9. Wiederholen Sie diese Schritte, um das GitHub Produkt-Repo-Repository zu forken. Geben Sie den Namen ServiceCatalog-BlueprintProductRepo für dieses Repository ein.

Um die CodeConnections Verbindung herzustellen
  1. Geben Sie in der AWS-CLI den folgenden Befehl ein, um eine CodeConnections Verbindung herzustellen zu GitHub:

    aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection>
  2. Verwenden Sie die AWS Developer Tools-Konsole, um die Verbindung herzustellen. Weitere Informationen finden Sie unter Eine ausstehende Verbindung aktualisieren.

Um die geforkten Repositorys zu klonen
  • Geben Sie die folgenden Befehle ein, um die GitHub Repositorys auf Ihre lokale Workstation zu klonen:

    git clone git@github.com:<user>/aws-enterprise-blueprint-factory-config-repo ServiceCatalog-ConfigRepo git clone git@github.com:<user>/aws-enterprise-blueprint-factory-blueprint-repo ServiceCatalog-BlueprintProductRepo git clone git@github.com:<user>/aws-enterprise-blueprint-factory-code-repo ServiceCatalog-CodeRepo

Einrichtung der Enterprise Blueprint Factory

Die Anweisungen in diesem Abschnitt beschreiben, wie Sie die Enterprise Blueprint Factory in Ihrem Zielkonto einrichten. Das Produktrepo, aus dem Sie geklont haben, GitHub enthält zwei CloudFormation Beispielvorlagen, und. BP-S3 BP-SNS Wenn Sie diese Anweisungen befolgen, stellen Sie diese beiden Beispiel-Blueprints als Produkte im Service Catalog bereit.

Um die Rollen einzurichten
  1. Erstellen Sie im Konto des Blueprint-Entwicklers die folgende Vertrauensrichtlinie und speichern Sie sie dann unter: sc-enduserrole-trust-policy.json

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role" }, "Action": "sts:AssumeRole" } }
  2. Geben Sie den folgenden Befehl ein, um die ServiceCatalogEndUserRole IAM-Rolle zu erstellen:

    aws iam create-role \ --role-name ServiceCatalogEndUserRole \ --assume-role-policy-document file://sc-enduserrole-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \ -- role-name ServiceCatalogEndUserRole
    Anmerkung

    Entwickler verwenden die ServiceCatalogEndUserRole Rolle, um das Service Catalog-Produkt bereitzustellen. Für diese Rolle sind keine Berechtigungen erforderlich, um die im Blueprint definierten Ressourcen zu erstellen. Dies entspricht den bewährten Methoden für Berechtigungen mit den geringsten Rechten und Aufgabentrennung.

  3. Erstellen Sie die folgende Vertrauensrichtlinie und speichern Sie sie dann unter: sc-launchconstraintrole-trust-policy.json

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  4. Geben Sie den folgenden Befehl ein, um die ServiceCataloglogLaunchConstraintRole IAM-Rolle zu erstellen:

    aws iam create-role \ --role-name ServiceCataloglogLaunchConstraintRole \ --assume-role-policy-document file://sc-launchconstraintrole-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSCloudFormationFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole
  5. Fügen Sie der ServiceCataloglogLaunchConstraintRole IAM-Rolle die folgende Richtlinie hinzu. Fügen Sie alle anderen Berechtigungen hinzu, die für die Produktressourcen erforderlich sind, wie unter Konfiguration einer Launch Role in der Service Catalog-Dokumentation beschrieben:

    { "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }
    Anmerkung

    Service Catalog verwendet diese Rolle, um den CloudFormation Stack als Produkt in Service Catalog bereitzustellen. Die Vertrauensrichtlinie für diese Rolle stellt sicher, dass nur Service Catalog sie übernehmen kann. Andere Benutzer oder Dienste können diese Rolle nicht übernehmen. Dies entspricht der bewährten Praxis der Aufgabentrennung.

  6. Erstellen Sie die folgende Vertrauensrichtlinie, und speichern Sie sie dann unter: sc-codebuild-trust-policy.json

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  7. Geben Sie den folgenden Befehl ein, um die codebuild-servicecatalog-admin-role IAM-Rolle zu erstellen:

    aws iam create-role \ --role-name codebuild-servicecatalog-admin-role \ --assume-role-policy-document file://sc-codebuild-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess \ --role-name codebuild-servicecatalog-admin-role
    Anmerkung

    Die CodeBuild Jobs in der Konfigurationspipeline verwenden diese Rolle.

So richten Sie den Amazon S3 S3-Bucket ein
Um die AWS Systems Manager Parameter einzurichten
  • Folgen Sie den Anweisungen unter Parameter Store-Parameter in Systems Manager erstellen, um die Systems Manager Manager-Parameter in der folgenden Tabelle zu erstellen. Diese Parameter werden in der CloudFormation Vorlage verwendet, die die Konfigurationspipeline bereitstellt.

    Parametername Typ Beschreibung
    /blueprints/resources/vpc_id String Parameter, der die ID der Ziel-Virtual Private Cloud (VPC) speichert.
    /blueprints/resources/subnets StringList Parameter, IDs der die Zielsubnetze speichert.
    /blueprints/resources/securitygroups StringList Parameter, IDs der die Zielsicherheitsgruppen speichert.
    /blueprints/resources/artifacts-bucket-name String Parameter, der den Amazon S3 S3-Bucket-Namen speichert, der für CodePipeline Artefakte verwendet wird.
    /blueprints/resources/BlueprintRepo String Parameter, der das GitHub Repo speichert, in dem die Enterprise Blueprint Factory-Blueprints gespeichert sind. Der Standardwert ist <user>/aws-enterprise-blueprint-factory-blueprint-repo.
    /blueprints/resources/CodeRepo String Parameter, der das GitHub Repo speichert, in dem der Pipeline-Code für die Enterprise Blueprint Factory-Konfiguration und der Code gespeichert sind. Bootstrapping-Admin-Product Der Standardwert ist <user>/aws-enterprise-blueprint-factory-code-repo.
    /blueprints/resources/ConfigRepo String Parameter, der das GitHub Repo speichert, in dem die Enterprise Blueprint Factory-Konfigurationsdateien gespeichert sind. Der Standardwert ist <user>/aws-enterprise-blueprint-factory-config-repo.
Um die Vorlagen zu aktualisieren CloudFormation
  1. Öffnen Sie im Code-Repository (ServiceCatalog-CodeRepo) die Datei ServiceCatalog-Pipeline.yml.

  2. Bearbeiten Sie die Standardwerte für die folgenden Parameter in dieser Datei:

    • ConfigRepositoryNameist der Systems Manager Manager-Parameter, der das GitHub Repo speichert, in dem die Enterprise Blueprint Factory-Konfigurationsdateien gespeichert sind. Der Standardwert ist /blueprints/resources/ConfigRepo.

    • CodeRepositoryNameist der Systems Manager Manager-Parameter, der das GitHub Repository speichert, in dem der Enterprise Blueprint Factory-Konfigurationspipeline-Code und der Bootstrapping-Admin-Product Code gespeichert sind. Der Standardwert ist /blueprints/resources/CodeRepo.

    • BlueprintRepositoryNameist der Systems Manager Manager-Parameter, der das GitHub Repository speichert, in dem die Enterprise Blueprint Factory-Blueprints gespeichert sind. Der Standardwert ist /blueprints/resources/BlueprintRepo.

    • BranchNameist der Zweig des Konfigurations-Repositorys, in dem die Konfigurationsdatei gespeichert ist. Der Standardwert ist main.

    • VPCIDist der Systems Manager Manager-Parameter, der die ID der Ziel-VPC speichert. Der Standardwert ist /blueprints/resources/vpc_id.

    • Subnetsist der Systems Manager Manager-Parameter, IDs der die Zielsubnetze speichert. Der Standardwert ist /blueprints/resources/subnets.

    • SecurityGroupIdsist der Systems Manager Manager-Parameter, IDs der die Zielsicherheitsgruppen speichert. Der Standardwert ist /blueprints/resources/securitygroups.

    • IamRoleNameist der Name der IAM-Rolle, die die CodeBuild Jobs verwenden. Der Standardwert istcodebuild-servicecatalog-admin-role.

    • EnvironmentTypeist die Umgebung, in der Sie die Enterprise Blueprint Factory bereitstellen. Der Standardwert ist DEV.

    • ArtifactBucketist der Systems Manager Manager-Parameter, der den Amazon S3 S3-Bucket CodePipeline speichert, in dem Artefakte gespeichert werden. Der Standardwert ist/blueprints/resources/artifacts-bucket-name.

    • CodeConnectionArnist der Amazon-Ressourcenname (ARN) der CodeConnections Verbindung zu GitHub.

  3. Speichern und schließen Sie die Datei ServiceCatalog-Pipeline.yml.

  4. Geben Sie die folgenden Befehle ein, um die Änderungen im Code-Repository zusammenzuführen:

    cd ServiceCatalog-CodeRepo git add ServiceCatalog-Pipeline.yml git commit -m "<description of change>" git push origin main
  5. Öffnen Sie im Konfigurations-Repository (ServiceCatalog-ConfigRepo) die Datei bp_config.yml.

  6. Aktualisieren Sie die Werte im Portfoliobereich nach Bedarf für Ihre Organisation. Aktualisieren Sie beispielsweise die share_to_ou Attribute portfolio_access_roles und. Weitere Informationen finden Sie in der Konfigurationsdatei in diesem Handbuch.

  7. Speichern und schließen Sie die Datei bp_config.yml.

  8. Geben Sie die folgenden Befehle ein, um die Änderungen im Code-Repository zusammenzuführen:

    cd ServiceCatalog-ConfigRepo git add bp_config.yml git commit -m "<description of change>" git push origin main
Um den CloudFormation Stack bereitzustellen
  1. Melden Sie sich beim Enterprise Blueprint Factory-Administratorkonto an.

  2. Wechseln Sie zu einer IAM-Rolle mit Administratorberechtigungen.

  3. Öffnen Sie die CloudFormation-Konsole.

  4. Wählen Sie in der Navigationsleiste oben auf dem Bildschirm das Ziel AWS-Region aus.

  5. Wählen Sie auf der Seite „Stapel“ oben rechts die Option „Stapel erstellen“ und dann „Mit neuen Ressourcen (Standard)“ aus.

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

  7. Wählen Sie unter Vorlage angeben die Option Eine Vorlagendatei hochladen aus.

  8. Wählen Sie Datei auswählen, navigieren Sie zu dem ServiceCatalog-CodeRepo Ordner und wählen Sie dann ServiceCatalog-Pipeline.yml aus.

  9. Wählen Sie Weiter, um fortzufahren und die Vorlage zu validieren.

  10. Geben Sie unter Stackname einen Namen für den Stack ein.

  11. Ändern Sie im Abschnitt Parameter die Standardwerte nicht.

  12. Wählen Sie Weiter aus.

  13. Ändern Sie auf der Seite „Stack-Optionen konfigurieren“ die Standardwerte nicht und wählen Sie dann Weiter.

  14. Überprüfen Sie auf der Seite Überprüfen und erstellen die Vorlagen- und Stack-Details und wählen Sie dann Senden aus.

  15. Überwachen Sie den Fortschritt der Stack-Bereitstellung. Weitere Informationen finden Sie in der CloudFormation-Dokumentation.

  16. Warten Sie, bis der Status zu geändert wirdCREATE_COMPLETE.

Um die Bereitstellung zu validieren
  1. Öffnen Sie die AWS Service Catalog -Konsole.

  2. Wählen Sie im Navigationsbereich Produkte aus.

  3. Vergewissern Sie sich, dass ServiceCatalog-Pipeline in der Produktliste verfügbar ist.

  4. Öffnen Sie die AWS CodePipeline -Konsole.

  5. Wählen Sie unter Name die Konfigurationspipeline aus. Standardmäßig lautet der Name der PipelineServiceCatalog-Pipeline.

  6. Wählen Sie View history (Verlauf anzeigen).

  7. Zeigen Sie den Status der Pipeline und die Ausführung der Phase an. Weitere Informationen zum Status finden Sie in der CodePipeline Dokumentation unter Ausführungsstatus anzeigen.

  8. Warten Sie, bis der Status der Konfigurationspipeline lautetSucceeded.

  9. Öffnen Sie die Service Catalog-Konsole.

  10. Wählen Sie im Navigationsbereich Produkte aus.

  11. Vergewissern Sie sich, dass das BP-S3-Produkt und das BP-SNS-Produkt verfügbar sind. Dies weist darauf hin, dass die Produktveröffentlichungspipelines für die Muster-Blueprints erfolgreich abgeschlossen wurden.

  12. Wenn Sie die Beispiel-Blueprints löschen möchten, die Sie beim Einrichten der Enterprise Blueprint Factory bereitgestellt haben, folgen Sie den Anweisungen unter Löschen eines Blueprints.

Löschen Sie die Enterprise Blueprint Factory

Wenn Sie die Enterprise Blueprint Factory nicht verwenden, können Sie sie löschen, um die mit ihren Ressourcen verbundenen Kosten zu vermeiden. AWS

Vorgehensweise zum Löschen der -Ressourcen
  1. Geben Sie die folgenden Befehle ein, um die IAM-Rollen zu löschen, die im Enterprise Blueprint Factory-Administratorkonto bereitgestellt wurden:

    aws iam detach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \ --role-name ServiceCatalogEndUserRole aws iam delete-role --role-name ServiceCatalogEndUserRole aws iam detach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole aws iam delete-role --role-name ServiceCataloglogLaunchConstraintRole
  2. Löschen Sie den CloudFormation Stack für die Enterprise Blueprint Factory. Anweisungen finden Sie unter Löschen eines Stacks aus der CloudFormation Konsole oder Löschen eines Stacks aus dem AWS CLI.

  3. Löschen Sie den Amazon S3 S3-Bucket, der zum Speichern der CodePipeline Artefakte verwendet wird. Anweisungen finden Sie unter Löschen eines Buckets in der Amazon S3 S3-Dokumentation.

  4. Löschen Sie die folgenden Systems Manager Manager-Parameter aus dem Parameterspeicher:

    • /blueprints/resources/vpc_id

    • /blueprints/resources/subnets

    • /blueprints/resources/securitygroups

    • /blueprints/resources/artifacts-bucket-name

    • /blueprints/resources/BlueprintRepo

    • /blueprints/resources/CodeRepo

    • /blueprints/resources/ConfigRepo

    Anweisungen finden Sie unter Löschen von Parametern aus dem Parameterspeicher in der Systems Manager Manager-Dokumentation.