

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
<a name="setup"></a>

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
<a name="setup-prereqs"></a>

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](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
  + Situato nella stessa [unità organizzativa (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit)
  + L'organizzazione segue il [account-per-tenant modello](https://aws.amazon.com/blogs/mt/managing-the-account-lifecycle-in-account-per-tenant-saas-environments-on-aws/)
+ AWS Command Line Interface (AWS CLI), [installato](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configurato](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) e [Implementazione delle politiche per le autorizzazioni con privilegi minimi per](https://docs.aws.amazon.com/prescriptive-guidance/latest/least-privilege-cloudformation/introduction.html). AWS CloudFormation
+ Un account GitHub 

## Best practice
<a name="setup-best-practices"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla [sicurezza](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) 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](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html) per Service Catalog.

## Creazione dei repository
<a name="setup-create-repos"></a>

Questa sezione consente di configurare l'archivio di [configurazione e il repository](architecture-components.md#architecture-config-repo) dei [prodotti per Enterprise Blueprint Factory](architecture-components.md#architecture-product-repo). Per configurare i repository, è necessario inserire i repository [forniti.](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) GitHub Quindi, lo usi AWS CodeConnections per creare una [connessione](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html) al tuo repository. GitHub Quindi, cloni i GitHub repository sul tuo computer locale.

**Per eseguire il fork dei repository GitHub**

1. Accedi ad [GitHub](https://github.com/login).

1. Vai al repository del repository [di configurazione](https://github.com/aws-samples/aws-enterprise-blueprint-factory-config-repo). GitHub 

1. **Scegli Fork.**

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

1. (Opzionale) Immettere una descrizione.

1. Seleziona **Copia solo il ramo principale**.

1. Scegli **Crea fork.**

1. Ripeti questi passaggi per eseguire il fork del repository [Code.](https://github.com/aws-samples/aws-enterprise-blueprint-factory-code-repo) GitHub Inserisci il nome `ServiceCatalog-CodeRepo` per questo repository.

1. Ripeti questi passaggi per eseguire il fork del repository [Product GitHub repo](https://github.com/aws-samples/aws-enterprise-blueprint-factory-blueprint-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>
   ```

1. Usa la console AWS Developer Tools per completare la connessione. Per ulteriori informazioni, consulta [Aggiornare una connessione in sospeso.](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)

**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
<a name="setup-factory"></a>

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 come`sc-enduserrole-trust-policy.json`:

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

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

1. 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"
     }
   }
   ```

1. 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
   ```

1. 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](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html#constraints-launch-role) 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.

1. 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"
     }
   }
   ```

1. 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 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) documentazione di Amazon S3. Segui le [best practice di sicurezza per Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

**Per configurare i parametri AWS Systems Manager**
+ Seguire le istruzioni riportate in [Creazione dei parametri di Parameter Store in Systems](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) Manager per creare i parametri di Systems Manager nella tabella seguente. Questi parametri vengono utilizzati nel CloudFormation modello che implementa la pipeline di configurazione.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/enterprise-blueprint-factory/setup.html)

**Per aggiornare i modelli CloudFormation**

1. Nel code repository (`ServiceCatalog-CodeRepo`), aprite il file **ServiceCatalog-Pipeline.yml**.

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

1. Salva e chiudi il file **ServiceCatalog-Pipeline.yml**.

1. 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
   ```

1. **Nel repository di configurazione (`ServiceCatalog-ConfigRepo`), aprite il file bp\_config.yml.**

1. 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](architecture-components.md#architecture-config-file) in questa guida.

1. Salvate e chiudete il file **bp\_config.yml**.

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

1. Passa a un ruolo IAM con [autorizzazioni amministrative](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html).

1. Apri la [CloudFormation console](https://console.aws.amazon.com/cloudformation/).

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

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

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

1. In **Specificare modello**, scegli **Carica un file modello**.

1. **Scegliete Scegli file**, accedete alla `ServiceCatalog-CodeRepo` cartella, quindi scegliete **ServiceCatalog-Pipeline.yml**.

1. Scegli **Avanti** per continuare e convalidare il modello.

1. Per **Nome dello stack**, inserisci un nome per lo stack.

1. Nella sezione **Parametri**, non modificate i valori predefiniti.

1. Scegli **Next (Successivo)**.

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

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

1. Monitora lo stato di avanzamento della distribuzione dello stack. Per ulteriori informazioni, consulta la [documentazione relativa ad CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/monitor-stack-progress.html).

1. Attendi che lo stato cambi in. `CREATE_COMPLETE`

**Per convalidare la distribuzione**

1. Apri la [AWS Service Catalog console](https://console.aws.amazon.com/servicecatalog/).

1. Nel riquadro di navigazione, scegli **Prodotti**.

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

1. Apri la [AWS CodePipeline console](https://console.aws.amazon.com/codesuite/codepipeline/home).

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

1. Scegli **View history (Visualizza cronologia)**.

1. Visualizza lo stato della pipeline e dell'esecuzione della fase. Per ulteriori informazioni sullo stato, consulta [Visualizza lo stato di esecuzione](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) nella CodePipeline documentazione.

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

1. Aprire la [console Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Nel riquadro di navigazione, scegli **Prodotti**.

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

1. [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.](using-factory.md#using-factory-delete)

## Eliminare Enterprise Blueprint Factory
<a name="setup-delete-factory"></a>

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
   ```

1. Elimina lo CloudFormation stack per Enterprise Blueprint Factory. Per istruzioni, consulta [Eliminare uno stack dalla CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) o [Eliminare uno stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/service_code_examples.html#delete-stack-sdk) da. AWS CLI

1. Elimina il bucket Amazon S3 utilizzato per archiviare gli artefatti. CodePipeline Per istruzioni, consulta [Eliminazione di un bucket nella documentazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) di Amazon S3.

1. 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/deleting-parameters.html) nella documentazione di Systems Manager.