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à.
Componenti Enterprise Blueprint Factory
Enterprise Blueprint Factory è costituito dai seguenti componenti:
-
Repository di prodotti: un repository in cui archiviare i blueprint.
-
Archivio di configurazione: un repository in cui archiviare il file di configurazione che definisce i portafogli e i prodotti. AWS Service Catalog
-
File di configurazione: il file di configurazione che definisce quali progetti sono disponibili, chi può utilizzarli e come utilizzarli.
-
Pipeline di configurazione: una pipeline DevOps CI/CD che configura il portafoglio Service Catalog e le condivisioni di portafoglio e crea una pipeline di rilascio per ogni prodotto.
-
Release pipeline: una pipeline DevOps CI/CD che rilascia i blueprint come prodotti Service Catalog.
Il team dell'infrastruttura cloud in genere gestisce l'intera Enterprise Blueprint Factory perché deve approvare ogni progetto. Tuttavia, il team addetto al DevOps codice è in genere responsabile della pipeline di configurazione e della pipeline di rilascio. Per rilasciare nuovi progetti, gli sviluppatori interagiscono solo con l'archivio del prodotto, l'archivio di configurazione e il file di configurazione.
Archivio dei prodotti
L'archivio dei prodotti è una posizione centralizzata in cui vengono archiviati i progetti approvati dall'organizzazione. Un team amministrativo del blueprint e un team di sicurezza esaminano le pull request inviate a questo repository per assicurarsi che ogni blueprint soddisfi i requisiti organizzativi e di sicurezza. In questa guida, utilizziamo GitHub per il repository, ma è possibile utilizzare un'alternativa.
Archivio di configurazione
L'archivio di configurazione (config repo) è la posizione in cui l'organizzazione archivia il file di configurazione per i portafogli e i prodotti Service Catalog rilasciati tramite Enterprise Blueprint Factory. In questa guida, lo utilizziamo GitHub per il repository, ma è possibile utilizzare un'alternativa.
File di configurazione
Il file di configurazione di Enterprise Blueprint Factory (file di configurazione) è archiviato nell'archivio di configurazione, di proprietà del team amministrativo del blueprint. Il nome di questo file è bp_config.yml. Quando uno sviluppatore aggiorna questo file, il team amministrativo del blueprint esamina le modifiche. L'unione delle modifiche nel ramo principale avvia la pipeline di configurazione. Il file di configurazione orchestra la pubblicazione, la condivisione e la distribuzione di tutti i blueprint gestiti tramite Enterprise Blueprint Factory.
Il file di configurazione è un file YAML composto da due oggetti principali: e. portfolios
products
Di seguito è riportato un esempio di file di configurazione di esempio:
portfolios: - portfolio_name: blueprint-portfolio owner: Blueprint-team provider_name: AWS description: "Blueprint portfolio" portfolio_access_role: - arn:aws:iam::123456789012:role/examplerole - arn:aws:iam::123456789012:user/exampleuser share_to_ou: - org_id: "o-exampleOrgID" stack_tags: DataClassification: Confidential Organization: AWS products: - name: BP-S3-Product description: "Blueprint for BP-S3 product" product_config_file: 'BP-S3/product_config.json' owner: Blueprint-team stack_tags: DataClassification: Confidential Organization: AWS portfolio_associations: - blueprint-portfolio launch_constraint_role: arn:aws:iam::123456789012:role/examplelaunchrole
Nell'portfolios
oggetto, definisci i tuoi portafogli di Service Catalog di destinazione. Per ogni portfolio, fornisci i seguenti attributi:
-
portfolio_name
è il nome del portafoglio. Questo attributo è obbligatorio. -
owner
è il nome del team proprietario del portafoglio. Questo attributo è facoltativo. -
provider_name
è il nome del team o dell'organizzazione che gestisce il portfolio. Il valore predefinito èAWS
. Questo attributo è obbligatorio. -
description
è una breve descrizione del portafoglio. Questo attributo è facoltativo. -
portfolio_access_roles
sono le identità AWS Identity and Access Management (utenti, ruoli o gruppi) (IAM) a cui è consentito accedere al portafoglio e ai prodotti associati. Questo attributo è facoltativo. -
share_to_ou
è l'unità organizzativa (OU) con AWS Organizations cui è condiviso il portafoglio. Gli utenti finali possono distribuire i prodotti di questo portafoglio in quanto Account AWS membri dell'unità organizzativa di destinazione. Questo attributo è facoltativo. -
stack_tags
sono i tag applicati al portafoglio. Questo attributo è facoltativo.
Nell'products
oggetto, definisci ogni blueprint che desideri rilasciare come prodotto in Service Catalog. Per ogni prodotto, fornisci i seguenti attributi:
-
name
è il nome del prodotto in Service Catalog. Questo attributo è obbligatorio. -
description
è una breve descrizione del prodotto. Questo attributo è obbligatorio. -
product_config_file
è il nome del file di configurazione del prodotto blueprint archiviato nell'archivio del prodotto. Questo attributo è obbligatorio. -
owner
è il nome del team proprietario del prodotto. Questo attributo è obbligatorio. -
stack_tags
sono i tag applicati al prodotto. Questo attributo è facoltativo. -
portfolio_associations
sono i portafogli target che contengono il prodotto. Questo attributo è facoltativo.Nota
Si consiglia di aggiungere prodotti solo ai portafogli gestiti tramite Enterprise Blueprint Factory. Se si desidera aggiungere prodotti a portafogli che non sono gestiti tramite Enterprise Blueprint Factory, la policy IAM dell'utente deve consentire l'azione. AssociateProductWithPortfolio Tuttavia, come best practice di sicurezza, si consiglia di consentire questa azione solo per la pipeline di configurazione di Enterprise Blueprint Factory.
-
launch_constraint_role
è il ruolo di lancio che Service Catalog assume quando un utente finale lancia il prodotto. Questo attributo è obbligatorio.
Pipeline di configurazione
La pipeline di configurazione (config pipeline) automatizza la configurazione del portafoglio Service Catalog e delle quote di portafoglio. Crea inoltre la pipeline di rilascio per ogni prodotto. Questa pipeline è una AWS CodePipelinerisorsa. Un aggiornamento del file di configurazione richiama la pipeline di configurazione.
La prima volta che si richiama la pipeline di configurazione, vengono creati due portafogli aggiuntivi che non sono definiti nel file di configurazione:
-
Blueprint-portfolio
— Ogni prodotto distribuito tramite Enterprise Blueprint Factory viene aggiunto a questo portafoglio. Questo portafoglio è disponibile per i dirigenti e le unità organizzative IAM specificati nel file di configurazione. -
Bootstrapping-Admin-Portfolio
— IlBootstrapping-Admin-Product
prodotto è associato a questo portafoglio. Questo prodotto è un CloudFormation modello per la pipeline di rilascio. Consenti solo al team amministrativo del blueprint di accedere a questo portafoglio in modo che possa gestire i prodotti amministrativi.
Fasi della pipeline di configurazione
L'immagine seguente mostra le fasi della pipeline di configurazione e le risorse con cui la pipeline interagisce. Ogni fase della pipeline è un progetto. AWS CodeBuild

Di seguito sono riportate le fasi della pipeline di configurazione:
-
Distribuisci portafogli: la pipeline di configurazione distribuisce tutti i portafogli che sono stati aggiunti al file di configurazione o elimina tutti i portafogli che sono stati rimossi dal file di configurazione. Se non ci sono modifiche ai portafogli, la pipeline salta questa fase.
-
Condividi portafogli: la pipeline di configurazione condivide i portafogli con le unità organizzative target (). OUs Se non ci sono modifiche alle azioni del portafoglio, la pipeline salta questa fase.
-
Implementazione Blueprint-Admin-Bootstrapping-Product: la pipeline di configurazione recupera il
bp-pipeline
blueprint dalServiceCatalog-CodeRepo
repository e lo distribuisce su Service Catalog come.Bootstrapping-Admin-Product
Questo prodotto è il CloudFormation modello utilizzato per creare una pipeline di rilascio. La distribuzione di questo modello come prodotto Service Catalog aiuta a mantenere il controllo della versione. Se non ci sono modifiche albp-pipeline
blueprint, la pipeline salta questa fase. -
Crea pipeline di rilascio: in base agli attributi del prodotto nel file di configurazione, la pipeline di configurazione prepara i parametri dello stack e avvia uno stack che crea una CloudFormation pipeline di rilascio per il prodotto. Per ulteriori informazioni, consulta Release pipeline in questa guida.
-
Implementazione dei prodotti: la pipeline di rilascio implementa il blueprint come prodotto Service Catalog e lo associa al portafoglio di destinazione. Gli utenti finali possono ora distribuire il prodotto in quanto membri dell'unità organizzativa Account AWS di destinazione.
Pipeline di rilascio
La pipeline di rilascio automatizza il rilascio dei blueprint come prodotti Service Catalog. Questa pipeline è una risorsa. AWS CodePipeline Quando l'organizzazione desidera rilasciare un nuovo blueprint, uno sviluppatore carica il modello IaC e il relativo file di configurazione del prodotto nell'archivio del prodotto. L'aggiunta dei dettagli del prodotto al file di configurazione attiva la pipeline di configurazione. La pipeline di configurazione crea una pipeline di rilascio per questo progetto. Qualsiasi aggiornamento successivo al blueprint attiva questa pipeline di rilascio per aggiornare il prodotto in Service Catalog con una nuova versione.
La pipeline di rilascio include controlli proattivi che automatizzano i controlli di sicurezza e conformità per i tuoi progetti. I controlli proattivi sono progettati per impedire la creazione di risorse non conformi. Questi controlli possono ridurre il numero di eventi di sicurezza gestiti da altri tipi di controlli di sicurezza, come i controlli reattivi e investigativi. Poiché i controlli proattivi assicurano che le risorse distribuite siano conformi prima dell'implementazione, non esiste alcun evento di rilevamento che richieda una risposta o una correzione.
La prima volta che si richiama la pipeline di configurazione, viene creato un prodotto Service Catalog denominato. Bootstrapping-Admin-Product
Questo prodotto è il CloudFormation modello per la pipeline di rilascio. Come illustrato nella figura seguente, la pipeline di configurazione utilizza il Bootstrapping-Admin-Product
prodotto per creare una pipeline di rilascio dedicata per ogni nuovo blueprint. Esiste una one-to-one relazione tra i blueprint e le pipeline di rilascio.

Fasi della pipeline di rilascio
L'immagine seguente mostra le fasi predefinite della pipeline di rilascio e le risorse con cui la pipeline interagisce. Ogni fase della pipeline è un progetto. CodeBuild

Di seguito sono riportate le fasi della pipeline di rilascio:
-
Allineamento dei file : questa fase verifica che il blueprint sia un modello o un CloudFormation costrutto. AWS Cloud Development Kit (AWS CDK) Se il blueprint è un AWS CDK costrutto, questa fase sintetizza il costrutto in un modello. AWS CDK CloudFormation Questo processo automatizza e standardizza le implementazioni tramite. CloudFormation Se vengono rilevati errori, la pipeline fallisce.
-
Controllo della sintassi: l'errore di sintassi è una causa comune di errori di CloudFormation distribuzione. In questa fase, AWS CloudFormation Linter (cfn-lint)
verifica la presenza di errori di sintassi confrontando il modello con le specifiche della risorsa.AWS CloudFormation Esegue anche altri controlli, come la verifica di valori validi per le proprietà delle risorse e il rispetto delle migliori pratiche. Se vengono rilevati errori, la pipeline fallisce e cfn-lint restituisce suggerimenti. -
Controllo: in questa fase, cfn_nag
verifica la presenza di potenziali problemi di sicurezza cercando modelli. Ad esempio, verifica la presenza di gruppi di sicurezza e policy AWS Identity and Access Management (IAM) eccessivamente permissivi, di crittografia mancante e di password letterali. Se vengono rilevati errori, la pipeline fallisce e cfn_nag restituisce suggerimenti. -
Controllo della versione: la pipeline di rilascio esegue il controllo della versione in base alla strategia di versione definita nel file di configurazione del prodotto. Se la versione del prodotto è definita come immutabile, Service Catalog disattiva la versione precedente del prodotto.
-
Pubblica prodotto: la pipeline di rilascio rilascia il prodotto in Service Catalog.
Nota
La pipeline di rilascio è personalizzabile. Ad esempio, puoi rimuovere tutte le fasi che non sono applicabili al tuo caso d'uso. Puoi anche aggiungere altre fasi se desideri aggiungere altri controlli di controllo, convalide aggiuntive o una fase di approvazione manuale. Questa guida non include istruzioni per modificare la pipeline di rilascio. Per ulteriori informazioni, consulta la documentazione CodePipelinee CodeBuild.