View a markdown version of this page

Configurazione di Enterprise Blueprint Factory - AWS Linee guida prescrittive

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:

  • 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. GitHub Quindi, lo usi AWS CodeConnections per creare una connessione al tuo repository. GitHub Quindi, cloni i GitHub repository sul tuo computer locale.

Per eseguire il fork dei repository GitHub
  1. Accedi ad GitHub.

  2. Vai al repository del repository di configurazione. GitHub

  3. Scegli Fork.

  4. Nella pagina Crea un nuovo fork, nella casella Nome del repository, inserisci. ServiceCatalog-ConfigRepo

  5. (Opzionale) Immettere una descrizione.

  6. Seleziona Copia solo il ramo principale.

  7. Scegli Crea fork.

  8. Ripeti questi passaggi per eseguire il fork del repository Code. GitHub Inserisci il nome ServiceCatalog-CodeRepo per questo repository.

  9. Ripeti questi passaggi per eseguire il fork del repository Product GitHub repo. Inserisci il nome ServiceCatalog-BlueprintProductRepo per questo repository.

Per creare la connessione CodeConnections
  1. 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>
  2. 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
  1. Nell'account di Blueprint Developer, crea la seguente politica di attendibilità, quindi salvala comesc-enduserrole-trust-policy.json:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole" }, "Action": "sts:AssumeRole" } }
  2. Inserisci il seguente comando per creare il ruolo ServiceCatalogEndUserRole IAM:

    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
    Nota

    Gli sviluppatori utilizzano il ServiceCatalogEndUserRole ruolo 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.

  3. 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" } }
  4. Inserisci il seguente comando per creare il ruolo ServiceCataloglogLaunchConstraintRole IAM:

    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. Aggiungi la seguente policy al ruolo ServiceCataloglogLaunchConstraintRole IAM. 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.

  6. 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" } }
  7. Inserisci il seguente comando per creare il ruolo codebuild-servicecatalog-admin-role IAM:

    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
    Nota

    I CodeBuild job nella pipeline di configurazione utilizzano questo ruolo.

Per configurare il bucket 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_id Stringa Parametro che memorizza l'ID del cloud privato virtuale (VPC) di destinazione.
    /blueprints/resources/subnets StringList Parametro che memorizza le sottoreti IDs di destinazione.
    /blueprints/resources/securitygroups StringList Parametro che memorizza i IDs gruppi di sicurezza di destinazione.
    /blueprints/resources/artifacts-bucket-name Stringa Parametro che memorizza il nome del bucket Amazon S3 utilizzato per gli artefatti. CodePipeline
    /blueprints/resources/BlueprintRepo Stringa 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/CodeRepo Stringa 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-Product Il valore predefinito è <user>/aws-enterprise-blueprint-factory-code-repo.
    /blueprints/resources/ConfigRepo Stringa 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
  1. Nel code repository (ServiceCatalog-CodeRepo), aprite il file ServiceCatalog-Pipeline.yml.

  2. 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 il Bootstrapping-Admin-Product codice. 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

  3. Salva e chiudi il file ServiceCatalog-Pipeline.yml.

  4. 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
  5. Nel repository di configurazione (ServiceCatalog-ConfigRepo), aprite il file bp_config.yml.

  6. Aggiorna i valori nella sezione portfolio in base alle esigenze della tua organizzazione. Ad esempio, aggiorna gli share_to_ou attributi portfolio_access_roles and. Per ulteriori informazioni, consulta il file di configurazione in questa guida.

  7. Salvate e chiudete il file bp_config.yml.

  8. 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
  1. Accedere all'account amministrativo di Enterprise Blueprint Factory.

  2. Passa a un ruolo IAM con autorizzazioni amministrative.

  3. Apri la CloudFormation console.

  4. Nella barra di navigazione nella parte superiore dello schermo, scegli l'obiettivo Regione AWS.

  5. Nella pagina Pile, scegli Crea pila in alto a destra, quindi scegli Con nuove risorse (standard).

  6. In Prepare template (Prepara modello) scegli Template is ready (Il modello è pronto).

  7. In Specificare modello, scegli Carica un file modello.

  8. Scegliete Scegli file, accedete alla ServiceCatalog-CodeRepo cartella, quindi scegliete ServiceCatalog-Pipeline.yml.

  9. Scegli Avanti per continuare e convalidare il modello.

  10. Per Nome dello stack, inserisci un nome per lo stack.

  11. Nella sezione Parametri, non modificate i valori predefiniti.

  12. Scegli Next (Successivo).

  13. Nella pagina Configura le opzioni dello stack, non modificare i valori predefiniti, quindi scegli Avanti.

  14. Nella pagina Rivedi e crea, verifica i dettagli del modello e dello stack, quindi scegli Invia.

  15. Monitora lo stato di avanzamento della distribuzione dello stack. Per ulteriori informazioni, consulta la documentazione relativa ad CloudFormation.

  16. Attendi che lo stato cambi in. CREATE_COMPLETE

Per convalidare la distribuzione
  1. Apri la AWS Service Catalog console.

  2. Nel riquadro di navigazione, scegli Prodotti.

  3. Conferma che ServiceCatalog-Pipeline sia disponibile nell'elenco dei prodotti.

  4. Apri la AWS CodePipeline console.

  5. In Nome, scegli la pipeline di configurazione. Per impostazione predefinita, il nome della pipeline è. ServiceCatalog-Pipeline

  6. Scegli View history (Visualizza cronologia).

  7. Visualizza lo stato della pipeline e dell'esecuzione della fase. Per ulteriori informazioni sullo stato, consulta Visualizza lo stato di esecuzione nella CodePipeline documentazione.

  8. Attendi che lo stato della pipeline di configurazione sia Succeeded raggiunto.

  9. Aprire la console Service Catalog.

  10. Nel riquadro di navigazione, scegli Prodotti.

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

  12. Se desideri eliminare i blueprint di esempio che hai distribuito durante la configurazione di Enterprise Blueprint Factory, segui le istruzioni in Eliminazione di un blueprint.

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
  1. 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
  2. Elimina lo CloudFormation stack per Enterprise Blueprint Factory. Per istruzioni, consulta Eliminare uno stack dalla CloudFormation console o Eliminare uno stack da. AWS CLI

  3. Elimina il bucket Amazon S3 utilizzato per archiviare gli artefatti. CodePipeline Per istruzioni, consulta Eliminazione di un bucket nella documentazione di Amazon S3.

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