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

Verwendung der Enterprise Blueprint Factory

In diesem Abschnitt können Sie Blueprints in Ihrer Umgebung erstellen, aktualisieren oder löschen. Er enthält detaillierte Anweisungen zur Verwaltung eines Blueprints während seines gesamten Lebenszyklus.

Um benutzerdefinierte Blueprints zu erstellen oder zu aktualisieren, müssen Sie mit der Erstellung von IaC-Vorlagen wie Vorlagen oder Konstrukten vertraut sein. AWS CloudFormationAWS Cloud Development Kit (AWS CDK) Dieses Handbuch enthält keine Informationen oder Anweisungen zur Definition der Blueprints, die Sie über die Enterprise Blueprint Factory veröffentlichen.

Voraussetzungen

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

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

  • Berechtigungen zur Übernahme der ServiceCatalogEndUserRole AWS Identity and Access Management (IAM-) Rolle

  • Eine CloudFormation Vorlage oder AWS CDK ein Konstrukt

Einen Blueprint erstellen

Die Enterprise Blueprint Factory-Pipelines stellen die Blueprints bereit, die Sie in der Konfigurationsdatei definieren. Der Entwickler initiiert die Konfigurationspipeline, indem er die Konfigurationsdatei mit dem Konfigurations-Repository zusammenführt. Anschließend verwendet Enterprise Blueprint Factory den, ServiceCatalogLaunchConstraintRole um den Blueprint als Produkt im Service Catalog bereitzustellen. Weitere Informationen zu den Aktionen, die die Konfigurationspipeline und die Release-Pipeline ausführen, wenn Sie einen Blueprint erstellen, finden Sie unter Blueprint-Erstellung in diesem Handbuch.

Um den Blueprint zum Produkt-Repository hinzuzufügen
  1. Stellen Sie sicher, dass Sie Ihre Enterprise Blueprint Factory gemäß den Anweisungen unter Einrichtung der Enterprise Blueprint Factory in diesem Handbuch eingerichtet haben.

  2. Vergewissern Sie sich, dass die Richtlinie für die ServiceCataloglogLaunchConstraintRole Rolle es Ihnen ermöglicht, die im Blueprint definierten Ressourcen bereitzustellen.

  3. Erstellen Sie im Produkt-Repository (ServiceCatalog-BlueprintProductRepo) einen Ordner für den neuen Blueprint.

  4. Fügen Sie die IaC-Vorlage (CloudFormation Vorlage oder AWS CDK Konstruktion) in den Ordner ein, den Sie erstellt haben.

  5. Erstellen Sie eine Datei mit dem Namen product_config.json in dem Ordner, den Sie erstellt haben.

  6. Öffnen Sie die Datei product_config.json und fügen Sie Folgendes in die Datei ein:

    { "SchemaVersion": "1.0", "ProductVersionName": "1.0.1", "Deprecated_Versions" : [], "ProductVersionDescription": "<description>", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "./<folder name>/<file name>" } }

    Wobei gilt:

    • <description>ist eine kurze Beschreibung der Blueprint-Version

    • <folder name>ist der Name des Ordners, den Sie im Produkt-Repository erstellt haben

    • <file name>ist der Name der IaC-Vorlage

    Anmerkung

    Sie können die Namen der Schemaversion oder der Produktversion so aktualisieren, dass sie den Richtlinien Ihrer Organisation entsprechen.

  7. Speichern und schließen Sie die Datei product_config.json.

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

    cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "The first version of <file name> blueprint" git push origin main
Um die Konfigurationsdatei zu aktualisieren
  1. Öffnen Sie im Konfigurations-Repository (ServiceCatalog-ConfigRepo) die Datei config.yml.

  2. Bearbeiten Sie den portfolios Abschnitt und den products Abschnitt nach Bedarf für den neuen Blueprint. Weitere Informationen finden Sie in der Konfigurationsdatei in diesem Handbuch.

  3. Speichern und schließen Sie die Datei config.yml.

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

    cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin main

    Die Genehmigung dieser Pull-Anfrage initiiert die Konfigurationspipeline. Die Konfigurationspipeline erstellt eine Release-Pipeline für das Produkt.

Um die Bereitstellungsprotokolle zu überprüfen
  1. Melden Sie sich beim Enterprise Blueprint Factory-Administratorkonto an.

  2. Öffnen Sie die AWS CodePipeline -Konsole.

  3. Wählen Sie unter Name die Release-Pipeline für das Produkt aus. Standardmäßig lautet der Name der PipelineBluePrint_<Product-Name>-<CloudFormation-Stack-Name>.

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

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

  6. Wenn die Pipeline ausfällt, überprüfen Sie die Ursache des Fehlers. Anweisungen zur Konfiguration der Überwachung für Ihre Pipelines finden Sie in der Dokumentation unter Überwachung von Pipelines. CodePipeline Wenn die Release-Pipeline aufgrund einer cfn-lint- oder cfn_nag-Prüfung ausgefallen ist, korrigieren Sie den Fehler in der Vorlage. Senden Sie eine weitere Pull-Anfrage an das Produkt-Repo. Dadurch wird die Release-Pipeline neu gestartet. Weitere Informationen zum Korrigieren von Vorlagenfehlern finden Sie im Abschnitt zur Fehlerbehebung in diesem Handbuch.

  7. Warten Sie, bis der Status der Release-Pipeline lautetSucceeded.

Um die Bereitstellung zu validieren
  1. Melden Sie sich bei einem Kundenkonto in der Organisation an.

  2. Nehmen Sie die ServiceCatalogEndUserRole IAM-Rolle an.

  3. Öffnen Sie die Service Catalog-Konsole.

  4. Wählen Sie im Navigationsbereich Produkte aus.

  5. Vergewissern Sie sich, dass das neue Produkt in der Produktliste verfügbar ist.

Aktualisieren eines Blueprints

Weitere Informationen zu den Aktionen, die die Konfigurationspipeline und die Release-Pipeline ausführen, wenn Sie einen Blueprint erstellen, finden Sie unter Blueprint-Update in diesem Handbuch.

Um einen Blueprint zu aktualisieren
  1. Navigieren Sie im Produkt-Repository in den Ordner für das Produkt.

  2. Fügen Sie die aktualisierte IaC-Vorlage ein. Stellen Sie sicher, dass der Dateiname mit dem Namen der vorherigen Version übereinstimmt.

  3. Öffnen Sie die Datei product_config.json.

  4. Aktualisieren Sie für ProductVersionName die Versionsnummer.

  5. Wenn Sie verhindern möchten, dass die vorherige Produktversion in future bereitgestellt wirdDeprecated_Versions, geben Sie die vorherigen Versionsnummern in eine durch Kommas getrennte Liste ein.

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

    cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "Version <number> of <file name> blueprint" git push origin main

    Die Genehmigung dieses Pull-Requests leitet die Release-Pipeline für das Produkt ein.

Um die Bereitstellungsprotokolle zu überprüfen
  1. Melden Sie sich beim Enterprise Blueprint Factory-Administratorkonto an.

  2. Öffnen Sie die AWS CodePipeline -Konsole.

  3. Wählen Sie unter Name die Release-Pipeline aus. Standardmäßig lautet der Name der PipelineBluePrint_<Product-Name>-<CloudFormation-Stack-Name>.

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

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

  6. Wenn die Pipeline ausfällt, überprüfen Sie die Ursache des Fehlers. Anweisungen zur Konfiguration der Überwachung für Ihre Pipelines finden Sie in der Dokumentation unter Überwachung von Pipelines. CodePipeline Wenn die Release-Pipeline aufgrund einer cfn-lint- oder cfn_nag-Prüfung ausgefallen ist, korrigieren Sie den Fehler in der Vorlage. Senden Sie eine weitere Pull-Anfrage an das Produkt-Repo. Dadurch wird die Release-Pipeline neu gestartet. Weitere Informationen zum Korrigieren von Vorlagenfehlern finden Sie im Abschnitt zur Fehlerbehebung in diesem Handbuch.

  7. Warten Sie, bis der Status der Release-Pipeline lautetSucceeded.

Um das Update zu validieren
  1. Melden Sie sich bei einem Kundenkonto in der Organisation an.

  2. Nehmen Sie die ServiceCatalogEndUserRole IAM-Rolle an.

  3. Öffnen Sie die Service Catalog-Konsole.

  4. Wählen Sie im Navigationsbereich Produkte aus.

  5. Vergewissern Sie sich, dass die neue Produktversion in der Produktliste verfügbar ist.

Einen Blueprint löschen

Wenn Sie ein Produkt löschen, entfernt Service Catalog alle Produktversionen aus allen Portfolios, die das Produkt enthalten. Weitere Informationen finden Sie in der Service Catalog-Dokumentation unter Produkte löschen. Weitere Informationen zu den Aktionen, die die Konfigurationspipeline und die Release-Pipeline ausführen, wenn Sie einen Blueprint erstellen, finden Sie unter Löschen von Blueprints in diesem Handbuch.

Um einen Blueprint zu löschen
  1. Öffnen Sie im Konfigurations-Repository die Datei config.yml.

  2. Bearbeiten Sie den Produktbereich, entfernen oder kommentieren Sie das Produkt, das Sie löschen möchten.

  3. Speichern und schließen Sie die Datei config.yml.

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

    cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin main

    Die Genehmigung dieser Pull-Anfrage initiiert die Konfigurationspipeline. Die Konfigurationspipeline löscht das Produkt und seine Release-Pipeline.

  5. Löschen Sie im Produkt-Repository den Ordner für das Produkt, einschließlich seines Inhalts.

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

    cd ServiceCatalog-BlueprintProductRepo git add . git commit -m "Delete <file name> blueprint" git push origin main
Um den Löschvorgang zu validieren
  1. Melden Sie sich bei einem Verbraucherkonto in der Organisation an.

  2. Nehmen Sie die ServiceCatalogEndUserRole IAM-Rolle an.

  3. Öffnen Sie die Service Catalog-Konsole.

  4. Wählen Sie im Navigationsbereich Produkte aus.

  5. Vergewissern Sie sich, dass das gelöschte Produkt nicht mehr verfügbar ist.

Fehlerbehebung

Wenn Sie einen Blueprint erstellen oder aktualisieren, validieren die Tools cfn-lint und cfn-nag den Blueprint. Weitere Informationen zur Validierung in der Release-Pipeline finden Sie unter Release-Pipeline in diesem Handbuch. Alle gemeldeten Syntax- oder Sicherheitsfehler führen zum Ausfall der Pipeline. Um den Blueprint erfolgreich über die Release-Pipeline bereitzustellen, müssen Sie die Fehler im Blueprint korrigieren.

Die folgende Beispielausgabe zeigt zwei sicherheitsrelevante Fehler, einen Fehler und eine Warnung.

BP-SNS.yml --------------------------------------------------- BP-SNS.yml --------------------------------------------------- | WARN W47 | | Resource: ["ExampleTopic"] | Line numbers: [5] | | SNS Topic should specify KmsMasterKeyId property --------------------------------------------------- | FAIL F18 | | Resource: ["ExampleTopicPolicy"] | Line numbers: [10] | | SNS topic policy should not allow * principal Failures count: 1 Warnings count: 1

Um diese Fehler zu korrigieren, würden Sie in der Blueprint-Datei den * Principal in der Themenrichtlinie von Amazon Simple Notification Service (Amazon SNS) ersetzen und dem Thema einen AWS Key Management Service (AWS KMS) -Schlüssel zuordnen. Das folgende Codebeispiel veranschaulicht diese Updates.

ExampleTopic: Type: AWS::SNS::Topic Properties: TopicName: ExampleTopic ExampleTopicPolicy: Type: AWS::SNS::TopicPolicy Properties: KmsMasterKeyId: alias/aws/sns # Added KMS key PolicyDocument: Id: Id1 Version: '2012-10-17' Statement: - Sid: Sid2 Effect: Allow Principal: "Service" : "s3.amazonaws.com" # Replaced "AWS": '*' Action: 'sns:Publish' Resource: !Ref ExampleTopic Topics: - !Ref ExampleTopic