Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione di Enterprise Blueprint Factory
Questa sezione consente di configurare Enterprise Blueprint Factory nel proprio ambiente. AWS Include istruzioni dettagliate per configurare i repository richiesti e le AWS risorse per Enterprise Blueprint Factory.
Prerequisiti
Di seguito sono riportati i prerequisiti per configurare Enterprise Blueprint Factory nell'ambiente in uso: AWS
-
Quanto segue: Account AWS
-
Un account utilizzato per amministrare Enterprise Blueprint Factory e per rilasciare prodotti
-
Uno o più account che utilizzano il prodotto rilasciato
-
-
Tutti gli account sono:
-
Gestito come organizzazione in AWS Organizations
-
Situato nella stessa unità organizzativa (OU)
-
L'organizzazione segue il account-per-tenant modello
-
-
AWS Command Line Interface (AWS CLI), installato e configurato
-
Autorizzazioni per distribuire uno AWS CloudFormation stack che crea le seguenti risorse: AWS
-
Gruppo di CloudWatch log Amazon Logs
-
AWS CodePipeline condutture
-
AWS CodeBuild progetti
-
Policy e regole di Amazon EventBridge Event Bus
-
AWS Identity and Access Management Ruolo e politica (IAM)
-
AWS Key Management Service (AWS KMS) chiave e politica chiave
-
AWS Service Catalog portafogli, prodotti e prodotti accantonati
-
Argomento, policy sull'argomento e abbonamento di Amazon Simple Notification Service (Amazon SNS)
-
Bucket Amazon Simple Storage Service (Amazon S3)
-
AWS Systems Manager Parametri Parameter Store
Per ulteriori informazioni sulla configurazione di queste autorizzazioni, consulta la CloudFormation documentazione e Implementazione delle politiche per le autorizzazioni con privilegi minimi per. AWS CloudFormation
-
-
Un account GitHub
Best practice
Si consiglia di seguire queste best practice durante la configurazione di Enterprise Blueprint Factory nel proprio AWS ambiente:
-
Quando configuri le autorizzazioni necessarie per distribuire Enterprise Blueprint Factory, segui il principio del privilegio minimo e concedi le autorizzazioni minime richieste. Per ulteriori informazioni, consulta le best practice relative alla concessione dei privilegi minimi e alla sicurezza nella documentazione IAM.
-
Quando configuri l'accesso ai portafogli di Service Catalog, segui il principio del privilegio minimo e concedi l'accesso solo a ruoli, utenti o amministratori specifici. Segui le best practice di sicurezza per Service Catalog.
Creazione dei repository
Questa sezione consente di configurare l'archivio di configurazione e il repository dei prodotti per Enterprise Blueprint Factory. Per configurare i repository, è necessario inserire i repository forniti.
Per eseguire il fork dei repository GitHub
-
Accedi ad GitHub
. -
Vai al repository del repository di configurazione
. GitHub -
Scegli Fork.
-
Nella pagina Crea un nuovo fork, nella casella Nome del repository, inserisci.
ServiceCatalog-ConfigRepo -
(Opzionale) Immettere una descrizione.
-
Seleziona Copia solo il ramo principale.
-
Scegli Crea fork.
-
Ripeti questi passaggi per eseguire il fork del repository Code.
GitHub Inserisci il nome ServiceCatalog-CodeRepoper questo repository. -
Ripeti questi passaggi per eseguire il fork del repository Product GitHub repo
. Inserisci il nome ServiceCatalog-BlueprintProductRepoper questo repository.
Per creare la connessione CodeConnections
-
Nella CLI di AWS, inserisci il seguente comando per creare una CodeConnections connessione a: GitHub
aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection> -
Usa la console AWS Developer Tools per completare la connessione. Per ulteriori informazioni, consulta Aggiornare una connessione in sospeso.
Per clonare i repository biforcati
-
Immettete i seguenti comandi per clonare i GitHub repository sulla vostra workstation locale:
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
Configurazione di Enterprise Blueprint Factory
Le istruzioni contenute in questa sezione descrivono come configurare Enterprise Blueprint Factory nell'account di destinazione. Il repository del prodotto da cui hai clonato GitHub contiene due modelli di esempio CloudFormation e. BP-S3 BP-SNS Seguendo queste istruzioni, distribuisci questi due blueprint di esempio come prodotti in Service Catalog.
Per impostare i ruoli
-
Nell'account di Blueprint Developer, crea la seguente politica di attendibilità, quindi salvala come
sc-enduserrole-trust-policy.json:{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole" }, "Action": "sts:AssumeRole" } } -
Inserisci il seguente comando per creare il ruolo
ServiceCatalogEndUserRoleIAM: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 ServiceCatalogEndUserRoleNota
Gli sviluppatori utilizzano il
ServiceCatalogEndUserRoleruolo per fornire il prodotto Service Catalog. Questo ruolo non necessita di autorizzazioni per creare le risorse definite nel blueprint. Ciò segue le migliori pratiche in materia di autorizzazioni meno privilegiate e separazione delle mansioni. -
Crea la seguente politica di attendibilità e salvala con nome:
sc-launchconstraintrole-trust-policy.json{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
Inserisci il seguente comando per creare il ruolo
ServiceCataloglogLaunchConstraintRoleIAM: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 -
Aggiungi la seguente policy al ruolo
ServiceCataloglogLaunchConstraintRoleIAM. Includi tutte le altre autorizzazioni necessarie per le risorse del prodotto, come descritto nella sezione Configurazione di un ruolo di avvio nella documentazione del Service Catalog:{ "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }Nota
Service Catalog utilizza questo ruolo per distribuire lo CloudFormation stack come prodotto in Service Catalog. La politica di fiducia per questo ruolo garantisce che solo Service Catalog possa assumerlo. Altri utenti o servizi non possono assumere questo ruolo. Ciò segue la migliore pratica della separazione delle funzioni.
-
Crea la seguente politica di attendibilità, quindi salvala come:
sc-codebuild-trust-policy.json{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
Inserisci il seguente comando per creare il ruolo
codebuild-servicecatalog-admin-roleIAM: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-roleNota
I CodeBuild job nella pipeline di configurazione utilizzano questo ruolo.
Per configurare il bucket Amazon S3
-
Per creare un bucket Amazon Simple Storage Service (Amazon S3) da utilizzare per CodePipeline archiviare gli artefatti, segui le istruzioni in Creazione di un bucket nella documentazione di Amazon S3. Segui le best practice di sicurezza per Amazon S3.
Per configurare i parametri AWS Systems Manager
-
Seguire le istruzioni riportate in Creazione dei parametri di Parameter Store in Systems Manager per creare i parametri di Systems Manager nella tabella seguente. Questi parametri vengono utilizzati nel CloudFormation modello che implementa la pipeline di configurazione.
Nome del parametro Tipo Descrizione /blueprints/resources/vpc_idStringa Parametro che memorizza l'ID del cloud privato virtuale (VPC) di destinazione. /blueprints/resources/subnetsStringList Parametro che memorizza le sottoreti IDs di destinazione. /blueprints/resources/securitygroupsStringList Parametro che memorizza i IDs gruppi di sicurezza di destinazione. /blueprints/resources/artifacts-bucket-nameStringa Parametro che memorizza il nome del bucket Amazon S3 utilizzato per gli artefatti. CodePipeline /blueprints/resources/BlueprintRepoStringa Parametro che memorizza il GitHub repository in cui sono archiviati i blueprint di Enterprise Blueprint Factory. Il valore predefinito è <user>/aws-enterprise-blueprint-factory-blueprint-repo./blueprints/resources/CodeRepoStringa Parametro che memorizza il GitHub repository in cui sono archiviati il codice della pipeline di configurazione di Enterprise Blueprint Factory e il codice. Bootstrapping-Admin-ProductIl valore predefinito è<user>/aws-enterprise-blueprint-factory-code-repo./blueprints/resources/ConfigRepoStringa Parametro che memorizza il GitHub repository in cui sono archiviati i file di configurazione di Enterprise Blueprint Factory. Il valore predefinito è <user>/aws-enterprise-blueprint-factory-config-repo.
Per aggiornare i modelli CloudFormation
-
Nel code repository (
ServiceCatalog-CodeRepo), aprite il file ServiceCatalog-Pipeline.yml. -
Modifica i valori predefiniti per i seguenti parametri in questo file:
-
ConfigRepositoryNameè il parametro Systems Manager che memorizza il GitHub repository in cui sono archiviati i file di configurazione di Enterprise Blueprint Factory. Il valore predefinito è/blueprints/resources/ConfigRepo. -
CodeRepositoryNameè il parametro Systems Manager che memorizza il GitHub repository in cui sono archiviati il codice della pipeline di configurazione Enterprise Blueprint Factory e ilBootstrapping-Admin-Productcodice. Il valore predefinito è/blueprints/resources/CodeRepo. -
BlueprintRepositoryNameè il parametro Systems Manager che memorizza il GitHub repository in cui sono archiviati i blueprint di Enterprise Blueprint Factory. Il valore predefinito è/blueprints/resources/BlueprintRepo. -
BranchNameè il ramo del repository di configurazione in cui è archiviato il file di configurazione. Il valore predefinito èmain. -
VPCIDè il parametro Systems Manager che memorizza l'ID del VPC di destinazione. Il valore predefinito è/blueprints/resources/vpc_id. -
Subnetsè il parametro Systems Manager che memorizza le sottoreti IDs di destinazione. Il valore predefinito è/blueprints/resources/subnets. -
SecurityGroupIdsè il parametro Systems Manager che memorizza i gruppi IDs di sicurezza di destinazione. Il valore predefinito è/blueprints/resources/securitygroups. -
IamRoleNameè il nome del ruolo IAM utilizzato dai CodeBuild job. Il valore predefinito ècodebuild-servicecatalog-admin-role. -
EnvironmentTypeè l'ambiente in cui si distribuisce Enterprise Blueprint Factory. Il valore predefinito èDEV. -
ArtifactBucketè il parametro Systems Manager che memorizza il bucket Amazon S3 in cui CodePipeline memorizza gli artefatti. Il valore predefinito è./blueprints/resources/artifacts-bucket-name -
CodeConnectionArnè l'Amazon Resource Name (ARN) della CodeConnections connessione a. GitHub
-
-
Salva e chiudi il file ServiceCatalog-Pipeline.yml.
-
Immettete i seguenti comandi per unire le modifiche nel repository del codice:
cd ServiceCatalog-CodeRepo git add ServiceCatalog-Pipeline.yml git commit -m "<description of change>" git push origin main -
Nel repository di configurazione (
ServiceCatalog-ConfigRepo), aprite il file bp_config.yml. -
Aggiorna i valori nella sezione portfolio in base alle esigenze della tua organizzazione. Ad esempio, aggiorna gli
share_to_ouattributiportfolio_access_rolesand. Per ulteriori informazioni, consulta il file di configurazione in questa guida. -
Salvate e chiudete il file bp_config.yml.
-
Immettete i seguenti comandi per unire le modifiche nel repository del codice:
cd ServiceCatalog-ConfigRepo git add bp_config.yml git commit -m "<description of change>" git push origin main
Per distribuire lo stack CloudFormation
-
Accedere all'account amministrativo di Enterprise Blueprint Factory.
-
Passa a un ruolo IAM con autorizzazioni amministrative.
-
Apri la CloudFormation console
. -
Nella barra di navigazione nella parte superiore dello schermo, scegli l'obiettivo Regione AWS.
-
Nella pagina Pile, scegli Crea pila in alto a destra, quindi scegli Con nuove risorse (standard).
-
In Prepare template (Prepara modello) scegli Template is ready (Il modello è pronto).
-
In Specificare modello, scegli Carica un file modello.
-
Scegliete Scegli file, accedete alla
ServiceCatalog-CodeRepocartella, quindi scegliete ServiceCatalog-Pipeline.yml. -
Scegli Avanti per continuare e convalidare il modello.
-
Per Nome dello stack, inserisci un nome per lo stack.
-
Nella sezione Parametri, non modificate i valori predefiniti.
-
Scegli Next (Successivo).
-
Nella pagina Configura le opzioni dello stack, non modificare i valori predefiniti, quindi scegli Avanti.
-
Nella pagina Rivedi e crea, verifica i dettagli del modello e dello stack, quindi scegli Invia.
-
Monitora lo stato di avanzamento della distribuzione dello stack. Per ulteriori informazioni, consulta la documentazione relativa ad CloudFormation.
-
Attendi che lo stato cambi in.
CREATE_COMPLETE
Per convalidare la distribuzione
-
Apri la AWS Service Catalog console
. -
Nel riquadro di navigazione, scegli Prodotti.
-
Conferma che ServiceCatalog-Pipeline sia disponibile nell'elenco dei prodotti.
-
Apri la AWS CodePipeline console
. -
In Nome, scegli la pipeline di configurazione. Per impostazione predefinita, il nome della pipeline è.
ServiceCatalog-Pipeline -
Scegli View history (Visualizza cronologia).
-
Visualizza lo stato della pipeline e dell'esecuzione della fase. Per ulteriori informazioni sullo stato, consulta Visualizza lo stato di esecuzione nella CodePipeline documentazione.
-
Attendi che lo stato della pipeline di configurazione sia
Succeededraggiunto. -
Aprire la console Service Catalog
. -
Nel riquadro di navigazione, scegli Prodotti.
-
Verifica che i prodotti BP-S3-Product e BP-SNS-Product siano disponibili. Ciò indica che le pipeline di rilascio del prodotto per i blueprint di esempio sono state completate correttamente.
Eliminare Enterprise Blueprint Factory
Se non si utilizza Enterprise Blueprint Factory, è possibile eliminarlo per evitare di sostenere i costi associati alle sue risorse. AWS
Per eliminare le risorse
-
Inserisci i seguenti comandi per eliminare i ruoli IAM che sono stati distribuiti nell'account amministrativo di Enterprise Blueprint Factory:
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 -
Elimina lo CloudFormation stack per Enterprise Blueprint Factory. Per istruzioni, consulta Eliminare uno stack dalla CloudFormation console o Eliminare uno stack da. AWS CLI
-
Elimina il bucket Amazon S3 utilizzato per archiviare gli artefatti. CodePipeline Per istruzioni, consulta Eliminazione di un bucket nella documentazione di Amazon S3.
-
Eliminare i seguenti parametri di Systems Manager da Parameter Store:
-
/blueprints/resources/vpc_id -
/blueprints/resources/subnets -
/blueprints/resources/securitygroups -
/blueprints/resources/artifacts-bucket-name -
/blueprints/resources/BlueprintRepo -
/blueprints/resources/CodeRepo -
/blueprints/resources/ConfigRepo
Per istruzioni, vedere Eliminazione dei parametri da Parameter Store nella documentazione di Systems Manager.
-