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.
Automatisieren Sie die Bereitstellung von AWS Service Catalog-Portfolios und Produkten mithilfe von AWS CDK
Erstellt von Sandeep Gawande (AWS), RAJNEESH TYAGI () und Viyoma Sachdeva (AWS) AWS
Code-Repository: aws-cdk-servicecatalog-automation | Umgebung: PoC oder Pilotprojekt | Technologien: DevOps; Infrastruktur; Management und Unternehmensführung |
Arbeitslast: Open Source | AWSDienstleistungen: AWS Service Catalog; AWS CDK |
Übersicht
AWSService Catalog unterstützt Sie bei der zentralen Verwaltung von Katalogen mit IT-Services oder -Produkten, die für die Verwendung in der AWS Umgebung Ihres Unternehmens zugelassen sind. Eine Sammlung von Produkten wird als Portfolio bezeichnet, und ein Portfolio enthält auch Konfigurationsinformationen. Mit AWS Service Catalog können Sie für jeden Benutzertyp in Ihrer Organisation ein individuelles Portfolio erstellen und dann Zugriff auf das entsprechende Portfolio gewähren. Diese Benutzer können dann schnell jedes Produkt aus dem Portfolio bereitstellen, das sie benötigen.
Wenn Sie über eine komplexe Netzwerkinfrastruktur verfügen, z. B. Architekturen mit mehreren Regionen und mehreren Konten, wird empfohlen, Service Catalog-Portfolios in einem einzigen, zentralen Konto zu erstellen und zu verwalten. Dieses Muster beschreibt, wie AWS Cloud Development Kit (AWSCDK) verwendet wird, um die Erstellung von Service Catalog-Portfolios in einem zentralen Konto zu automatisieren, Endbenutzern Zugriff darauf zu gewähren und dann, optional, Produkte in einem oder mehreren AWS Zielkonten bereitzustellen. Diese ready-to-use Lösung erstellt die Service Catalog-Portfolios im Quellkonto. Sie stellt optional auch Produkte in Zielkonten mithilfe von AWS CloudFormation Stacks bereit und unterstützt Sie bei der Konfiguration TagOptions der Produkte:
AWS CloudFormation StackSets— Sie können es verwenden StackSets , um Service Catalog-Produkte in mehreren AWS Regionen und Konten auf den Markt zu bringen. In dieser Lösung haben Sie die Möglichkeit, Produkte automatisch bereitzustellen, wenn Sie diese Lösung bereitstellen. Weitere Informationen finden Sie unter Verwenden AWS CloudFormation StackSets (Service Catalog-Dokumentation) und StackSets Konzepte (CloudFormation Dokumentation).
TagOption Bibliothek — Mithilfe der TagOption Bibliothek können Sie Tags für bereitgestellte Produkte verwalten. A TagOptionist ein Schlüssel-Wert-Paar, das im AWS Service Catalog verwaltet wird. Es ist kein AWS Tag, sondern dient als Vorlage für die Erstellung eines AWS Tags auf der Grundlage von. TagOption Weitere Informationen finden Sie in der TagOption Bibliothek (Service Catalog-Dokumentation).
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS Konto, das Sie als Quellkonto für die Verwaltung von Service Catalog-Portfolios verwenden möchten.
Wenn Sie diese Lösung verwenden, um Produkte für ein oder mehrere Zielkonten bereitzustellen, muss das Zielkonto bereits vorhanden und aktiv sein.
AWSIdentity and Access Management Zugriffsverwaltungsberechtigungen (IAM) für den Zugriff auf den AWS Service Catalog AWS CloudFormation, und AWSIAM.
Produktversionen
AWSCDKVersion 2.27.0
Architektur
Zieltechnologie-Stack
Servicekatalog-Portfolios in einem zentralen AWS Konto
Service Catalog-Produkte, die im Zielkonto bereitgestellt werden
Zielarchitektur
Im Portfolio- (oder Quellkonto) aktualisieren Sie die Datei config.json mit den AWS Konto-, AWS Regions-, IAM Rollen-, Portfolio- und Produktinformationen für Ihren Anwendungsfall.
Sie stellen die AWS CDK Anwendung bereit.
Die AWS CDK Anwendung übernimmt die IAM Bereitstellungsrolle und erstellt die Service Catalog-Portfolios und -Produkte, die in der Datei config.json definiert sind.
Wenn Sie StackSets für die Bereitstellung von Produkten in einem Zielkonto konfiguriert haben, wird der Vorgang fortgesetzt. Wenn Sie nicht für StackSets die Bereitstellung von Produkten konfiguriert haben, ist der Vorgang abgeschlossen.
Die AWS CDK Anwendung übernimmt die StackSet Administratorrolle und stellt das AWS CloudFormation Stack-Set bereit, das Sie in der Datei config.json definiert haben.
StackSets Übernimmt im Zielkonto die StackSet Ausführungsrolle und stellt die Produkte bereit.
Tools
AWSDienstleistungen
AWSCloud Development Kit (AWSCDK) ist ein Softwareentwicklungs-Framework, mit dem Sie AWS Cloud-Infrastruktur im Code definieren und bereitstellen können.
AWSCDKToolkit ist ein Cloud-Entwicklungskit für die Befehlszeile, mit dem Sie mit Ihrer AWS CDK App interagieren können.
AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS Konten und Regionen hinweg zu verwalten.
AWSIdentity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
AWSService Catalog hilft Ihnen dabei, Kataloge von IT-Services, für AWS die eine Genehmigung erteilt wurde, zentral zu verwalten. Endbenutzer können schnell nur die jeweils benötigten genehmigten IT-Services bereitstellen, wobei die Einschränkungen Ihrer Organisation berücksichtigt werden.
Code-Repository
Der Code für dieses Muster ist im aws-cdk-servicecatalog-automation
cdk-sevicecatalog-app— Dieser Ordner enthält die AWS CDK Anwendung für diese Lösung.
config — Dieser Ordner enthält die Datei config.json und die CloudFormation Vorlage für die Bereitstellung der Produkte im Service Catalog-Portfolio.
config/config.json — Diese Datei enthält alle Konfigurationsinformationen. Sie aktualisieren diese Datei, um diese Lösung an Ihren Anwendungsfall anzupassen.
config/templates — Dieser Ordner enthält die CloudFormation Vorlagen für die Service Center-Produkte.
setup.sh — Dieses Skript stellt die Lösung bereit.
uninstall.sh — Dieses Skript löscht den Stack und alle AWS Ressourcen, die bei der Bereitstellung dieser Lösung erstellt wurden.
Folgen Sie den Anweisungen im Abschnitt Epics, um den Beispielcode zu verwenden.
Bewährte Methoden
IAMRollen, die zur Bereitstellung dieser Lösung verwendet werden, sollten dem Prinzip der geringsten Rechte entsprechen (Dokumentation). IAM
Halten Sie sich an die Best Practices für die Entwicklung von Cloud-Anwendungen mit AWS CDK
(AWSBlogbeitrag). Halten Sie sich an die AWS CloudFormation Best Practices (CloudFormation Dokumentation).
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Installieren Sie das AWS CDK Toolkit. | Stellen Sie sicher, dass Sie das AWS CDK Toolkit installiert haben. Geben Sie den folgenden Befehl ein, um zu bestätigen, ob es installiert ist, und um die Version zu überprüfen.
Wenn AWS CDK Toolkit nicht installiert ist, geben Sie den folgenden Befehl ein, um es zu installieren.
Wenn die AWS CDK Toolkit-Version älter als 2.27.0 ist, geben Sie den folgenden Befehl ein, um sie auf Version 2.27.0 zu aktualisieren.
| AWS DevOps DevOps , Ingenieur |
Klonen Sie das Repository | Geben Sie den folgenden Befehl ein. Unter Repository klonen können Sie im Abschnitt Zusätzliche Informationen den vollständigen Befehl kopieren, der den URL für das Repository enthält. Dadurch wird das aws-cdk-servicecatalog-automation
Dadurch wird ein
| AWS DevOps, DevOps Ingenieur |
Richten Sie AWS Anmeldeinformationen ein. | Geben Sie die folgenden Befehle ein. Diese exportieren die folgenden Variablen, die das AWS Konto und die Region definieren, in der Sie den Stack bereitstellen.
AWSAnmeldeinformationen für AWS CDK werden über Umgebungsvariablen bereitgestellt. | AWS DevOps, DevOps Ingenieur |
Konfigurieren Sie Berechtigungen für IAM Endbenutzerrollen. | Wenn Sie IAM Rollen verwenden möchten, um Zugriff auf das Portfolio und die darin enthaltenen Produkte zu gewähren, müssen die Rollen über Berechtigungen verfügen, damit sie vom Servicecatalog.amazonaws.com Service Principal übernommen werden können. Anweisungen zum Erteilen dieser Berechtigungen finden Sie unter Aktivieren des vertrauenswürdigen Zugriffs mit Service Catalog (Dokumentation für AWS Organizations). | AWS DevOps, DevOps Ingenieur |
Konfigurieren Sie die IAM Rollen, die für erforderlich sind StackSets. | Wenn Sie die automatische Bereitstellung von Produkten in Zielkonten verwenden StackSets , müssen Sie die IAM Rollen konfigurieren, mit denen das Stack-Set verwaltet und ausgeführt wird.
| AWS DevOps, DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie die CloudFormation Vorlagen. | Erstellen Sie in dem | App-Entwickler AWS DevOps, DevOps Ingenieur |
Passen Sie die Konfigurationsdatei an. | Öffnen Sie in dem
Ein Beispiel für eine fertige Konfigurationsdatei finden Sie unter Beispielkonfigurationsdatei im Abschnitt Zusätzliche Informationen. | App-Entwickler, DevOps Ingenieur, AWS DevOps |
Stellen Sie die Lösung bereit. | Geben Sie den folgenden Befehl ein. Dadurch wird die AWS CDK App bereitgestellt und die Service Catalog-Portfolios und -Produkte bereitgestellt, wie in der Datei config.json angegeben.
| App-Entwickler, Ingenieur, DevOps AWS DevOps |
Überprüfen Sie die Bereitstellung. | Überprüfen Sie die erfolgreiche Bereitstellung, indem Sie wie folgt vorgehen:
| Allgemein AWS |
(Optional) Aktualisieren Sie die Portfolios und Produkte. | Wenn Sie diese Lösung verwenden möchten, um die Portfolios oder Produkte zu aktualisieren oder neue Produkte bereitzustellen:
Sie können beispielsweise zusätzliche Portfolios hinzufügen oder mehr Ressourcen bereitstellen. Die AWS CDK App implementiert nur die Änderungen. Wenn es keine Änderungen an zuvor bereitgestellten Portfolios oder Produkten gibt, hat die Neuverteilung keine Auswirkungen auf sie. | App-Entwickler, DevOps Ingenieur, General AWS |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
(Optional) Entfernen Sie die von dieser Lösung bereitgestellten AWS Ressourcen. | Wenn Sie ein bereitgestelltes Produkt löschen möchten, folgen Sie den Anweisungen unter Löschen bereitgestellter Produkte (Service Catalog-Dokumentation). Wenn Sie alle mit dieser Lösung erstellten Ressourcen löschen möchten, geben Sie den folgenden Befehl ein.
| AWS DevOps, DevOps Ingenieur, App-Entwickler |
Zugehörige Ressourcen
AWSService Catalog Construct-Bibliothek (AWSAPIReferenz)
StackSets Konzepte (CloudFormation Dokumentation)
AWSService Catalog
(AWSMarketing) Verwenden von Service Catalog mit dem AWS CDK
(AWSWorkshop)
Zusätzliche Informationen
Zusätzliche Informationen
Klonen Sie das Repository
Geben Sie den folgenden Befehl ein, um das Repository zu klonen GitHub.
git clone https://github.com/aws-samples/aws-cdk-servicecatalog-automation.git
Beispiel für eine Konfigurationsdatei
Im Folgenden finden Sie eine config.json-Beispieldatei mit Beispielwerten.
{ "portfolios": [ { "displayName": "EC2 Product Portfolio", "providerName": "User1", "description": "Test1", "roles": [ "<Names of IAM roles that can access the products>" ], "users": [ "<Names of IAM users who can access the products>" ], "groups": [ "<Names of IAM user groups that can access the products>" ] }, { "displayName": "Autoscaling Product Portfolio", "providerName": "User2", "description": "Test2", "roles": [ "<Name of IAM role>" ] } ], "tagOption": [ { "key": "Group", "value": [ "finance", "engineering", "marketing", "research" ] }, { "key": "CostCenter", "value": [ "01", "02", "03", "04" ] }, { "key": "Environment", "value": [ "dev", "prod", "stage" ] } ], "products": [ { "portfolioName": "EC2 Product Profile", "productName": "Ec2", "owner": "owner1", "productVersionName": "v1", "templatePath": "../../config/templates/template1.json" }, { "portfolioName": "Autoscaling Product Profile", "productName": "autoscaling", "owner": "owner1", "productVersionName": "v1", "templatePath": "../../config/templates/template2.json", "deployWithStackSets": { "accounts": [ "012345678901", ], "regions": [ "us-west-2" ], "stackSetAdministrationRoleName": "AWSCloudFormationStackSetAdministrationRole", "stackSetExecutionRoleName": "AWSCloudFormationStackSetExecutionRole" } } ] }