

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurando o Enterprise Blueprint Factory
<a name="setup"></a>

Esta seção ajuda você a configurar o Enterprise Blueprint Factory em seu AWS ambiente. Ele inclui instruções detalhadas para configurar os repositórios e os AWS recursos necessários para o Enterprise Blueprint Factory.

## Pré-requisitos
<a name="setup-prereqs"></a>

A seguir estão os pré-requisitos para configurar o Enterprise Blueprint Factory em seu ambiente: AWS 
+ O seguinte Contas da AWS:
  + Uma conta usada para administrar o Enterprise Blueprint Factory e lançar produtos
  + Uma ou mais contas que consomem o produto lançado
+ Todas as contas são:
  + Gerenciado como uma organização em [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
  + Localizado na mesma [unidade organizacional (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit)
  + A organização segue o [account-per-tenant modelo](https://aws.amazon.com/blogs/mt/managing-the-account-lifecycle-in-account-per-tenant-saas-environments-on-aws/)
+ AWS Command Line Interface (AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Permissões para implantar uma AWS CloudFormation pilha que cria os seguintes AWS recursos:
  + Grupo de CloudWatch registros do Amazon Logs
  + AWS CodePipeline oleodutos
  + AWS CodeBuild projetos
  + Política e regra de ônibus para EventBridge eventos da Amazon
  + AWS Identity and Access Management Papel e política (IAM)
  + AWS Key Management Service (AWS KMS) chave e política chave
  + AWS Service Catalog portfólios, produtos e produtos provisionados
  + Tópico, política de tópicos e assinatura do Amazon Simple Notification Service (Amazon SNS)
  + Buckets do Amazon Simple Storage Service (Amazon S3)
  + AWS Systems Manager Parâmetros do Parameter Store

  Para obter mais informações sobre como configurar essas permissões, consulte a [CloudFormation documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) e a [implementação de políticas para permissões de privilégios mínimos](https://docs.aws.amazon.com/prescriptive-guidance/latest/least-privilege-cloudformation/introduction.html) para. AWS CloudFormation
+ Uma GitHub conta

## Práticas recomendadas
<a name="setup-best-practices"></a>

Recomendamos que você siga estas melhores práticas ao configurar o Enterprise Blueprint Factory em seu AWS ambiente:
+ Ao configurar as permissões necessárias para implantar o Enterprise Blueprint Factory, siga o princípio do menor privilégio e conceda as permissões mínimas necessárias. Para obter mais informações, consulte [Concessão de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [nas melhores práticas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) na documentação do IAM.
+ Ao configurar o acesso aos portfólios do Service Catalog, siga o princípio do privilégio mínimo e conceda acesso somente a funções, usuários ou administradores específicos. Siga as [melhores práticas de segurança](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html) do Service Catalog.

## Criando os repositórios
<a name="setup-create-repos"></a>

Esta seção ajuda você a configurar o repositório de [configuração e o repositório](architecture-components.md#architecture-config-repo) de [produtos para o Enterprise Blueprint Factory](architecture-components.md#architecture-product-repo). Para configurar seus repositórios, você [bifurca](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) os repositórios fornecidos em. GitHub Em seguida, você usa Conexões de código da AWS para criar uma [conexão com](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html) seu GitHub repositório. Em seguida, você clona os GitHub repositórios na sua máquina local.

**Para bifurcar os repositórios GitHub**

1. Inicie sessão no [GitHub](https://github.com/login).

1. Navegue até o repositório [do GitHub repositório de configuração](https://github.com/aws-samples/aws-enterprise-blueprint-factory-config-repo).

1. Escolha **Fork.**

1. Na página **Criar uma nova bifurcação**, na caixa **Nome do repositório**, digite. `ServiceCatalog-ConfigRepo`

1. (Opcional) Insira uma descrição.

1. Selecione **Copiar somente a ramificação principal**.

1. Escolha **Criar bifurcação.**

1. Repita essas etapas para bifurcar o repositório [Code repo](https://github.com/aws-samples/aws-enterprise-blueprint-factory-code-repo) GitHub . Insira o nome `ServiceCatalog-CodeRepo` desse repositório.

1. Repita essas etapas para bifurcar o repositório do [Product Repo](https://github.com/aws-samples/aws-enterprise-blueprint-factory-blueprint-repo) GitHub . Insira o nome `ServiceCatalog-BlueprintProductRepo` desse repositório.

**Para criar a CodeConnections conexão**

1. Na AWS CLI, insira o seguinte comando para criar uma CodeConnections conexão com: GitHub

   ```
   aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection>
   ```

1. Use o console AWS Developer Tools para concluir a conexão. Para obter mais informações, consulte [Atualizar uma conexão pendente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html).

**Para clonar os repositórios bifurcados**
+ Insira os seguintes comandos para clonar os GitHub repositórios em sua estação de trabalho local:

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

## Configurando o Enterprise Blueprint Factory
<a name="setup-factory"></a>

As instruções nesta seção descrevem como configurar o Enterprise Blueprint Factory em sua conta de destino. O repositório de produtos do qual você clonou GitHub contém dois CloudFormation modelos de amostra e. `BP-S3` `BP-SNS` Seguindo essas instruções, você implanta esses dois exemplos de blueprints como produtos no Service Catalog.

**Para configurar as funções**

1. Na conta do desenvolvedor do Blueprint, crie a seguinte política de confiança e salve-a como`sc-enduserrole-trust-policy.json`:

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

1. Insira o comando a seguir para criar a função `ServiceCatalogEndUserRole` do 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**  
Os desenvolvedores usam a `ServiceCatalogEndUserRole` função para provisionar o produto Service Catalog. Essa função não precisa de permissões para criar os recursos definidos no blueprint. Isso segue as melhores práticas de permissões com menos privilégios e segregação de funções.

1. Crie a seguinte política de confiança e salve-a como`sc-launchconstraintrole-trust-policy.json`:

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "Service": "servicecatalog.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Insira o comando a seguir para criar a função `ServiceCataloglogLaunchConstraintRole` do 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. Adicione a política a seguir à função `ServiceCataloglogLaunchConstraintRole` do IAM. Inclua todas as outras permissões necessárias para os recursos do produto, conforme descrito em [Configurando uma função do Launch](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html#constraints-launch-role) na documentação do Service Catalog:

   ```
   {
             "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
      ]
   }
   ```
**nota**  
O Service Catalog usa essa função para implantar a CloudFormation pilha como um produto no Service Catalog. A política de confiança para essa função garante que somente o Service Catalog possa assumi-la. Outros usuários ou serviços não podem assumir essa função. Isso segue a melhor prática de segregação de funções.

1. Crie a seguinte política de confiança e salve-a como`sc-codebuild-trust-policy.json`:

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "Service": "codebuild.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Insira o comando a seguir para criar a função `codebuild-servicecatalog-admin-role` do 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**  
Os CodeBuild trabalhos no pipeline de configuração usam essa função.

**Para configurar o bucket do Amazon S3**
+ Para criar um bucket do Amazon Simple Storage Service (Amazon S3) usado para armazenar CodePipeline os artefatos, siga as instruções [em Criação de um bucket na documentação](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) do Amazon S3. Siga as [melhores práticas de segurança do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

**Para configurar os AWS Systems Manager parâmetros**
+ Siga as instruções em [Criando parâmetros do Parameter Store no Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) para criar os parâmetros do Systems Manager na tabela a seguir. Esses parâmetros são usados no CloudFormation modelo que implanta o pipeline de configuração.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/enterprise-blueprint-factory/setup.html)

**Para atualizar os CloudFormation modelos**

1. No repositório de código (`ServiceCatalog-CodeRepo`), abra o arquivo **ServiceCatalog-Pipeline.yml**.

1. Edite os valores padrão para os seguintes parâmetros nesse arquivo:
   + `ConfigRepositoryName`é o parâmetro do Systems Manager que armazena o GitHub repositório em que os arquivos de configuração do Enterprise Blueprint Factory são armazenados. O valor padrão é `/blueprints/resources/ConfigRepo`.
   + `CodeRepositoryName`é o parâmetro do Systems Manager que armazena o GitHub repositório em que o código do pipeline de configuração do Enterprise Blueprint Factory e o `Bootstrapping-Admin-Product` código são armazenados. O valor padrão é `/blueprints/resources/CodeRepo`.
   + `BlueprintRepositoryName`é o parâmetro do Systems Manager que armazena o GitHub repositório em que os blueprints do Enterprise Blueprint Factory são armazenados. O valor padrão é `/blueprints/resources/BlueprintRepo`.
   + `BranchName`é a ramificação do repositório de configuração em que o arquivo de configuração é armazenado. O valor padrão é `main`.
   + `VPCID`é o parâmetro do Systems Manager que armazena o ID da VPC de destino. O valor padrão é `/blueprints/resources/vpc_id`.
   + `Subnets`é o parâmetro do Systems Manager que armazena as sub-redes IDs de destino. O valor padrão é `/blueprints/resources/subnets`.
   + `SecurityGroupIds`é o parâmetro do Systems Manager que armazena os grupos IDs de segurança de destino. O valor padrão é `/blueprints/resources/securitygroups`.
   + `IamRoleName`é o nome da função do IAM que os CodeBuild trabalhos usam. O valor padrão é`codebuild-servicecatalog-admin-role`.
   + `EnvironmentType`é o ambiente em que você está implantando o Enterprise Blueprint Factory. O valor padrão é `DEV`.
   + `ArtifactBucket`é o parâmetro do Systems Manager que armazena o bucket do Amazon S3 onde CodePipeline armazena artefatos. O valor padrão é`/blueprints/resources/artifacts-bucket-name`.
   + `CodeConnectionArn`é o Amazon Resource Name (ARN) da CodeConnections conexão a. GitHub

1. Salve e feche o arquivo **ServiceCatalog-Pipeline.yml**.

1. Insira os seguintes comandos para mesclar as alterações no repositório de código:

   ```
   cd ServiceCatalog-CodeRepo
   git add ServiceCatalog-Pipeline.yml
   git commit -m "<description of change>"
   git push origin main
   ```

1. No repositório de configuração (`ServiceCatalog-ConfigRepo`), abra o arquivo **bp\_config.yml**.

1. Atualize os valores na seção de portfólio conforme necessário para sua organização. Por exemplo, `portfolio_access_roles` atualize os `share_to_ou` atributos e. Para obter mais informações, consulte [Arquivo de configuração](architecture-components.md#architecture-config-file) neste guia.

1. Salve e feche o arquivo **bp\_config.yml**.

1. Insira os seguintes comandos para mesclar as alterações no repositório de código:

   ```
   cd ServiceCatalog-ConfigRepo
   git add bp_config.yml
   git commit -m "<description of change>"
   git push origin main
   ```

**Para implantar a CloudFormation pilha**

1. Faça login na conta administrativa do Enterprise Blueprint Factory.

1. Mude para uma função do IAM que tenha [permissões administrativas](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html).

1. Abra o [console de CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Na barra de navegação na parte superior da tela, escolha o destino Região da AWS.

1. Na página **Pilhas**, escolha **Criar pilha** no canto superior direito e selecione **Com novos recursos (padrão)**.

1. Em **Prepare template** (Preparar modelo), selecione **Template is ready** (O modelo está pronto).

1. Em **Especificar modelo**, escolha **Fazer upload de um arquivo de modelo**.

1. **Escolha Escolher arquivo**, navegue até a `ServiceCatalog-CodeRepo` pasta e escolha **ServiceCatalog-Pipeline.yml**.

1. Escolha **Avançar** para continuar e validar o modelo.

1. Em **Nome da pilha**, insira um nome para a pilha.

1. Na seção **Parâmetros**, não altere os valores padrão.

1. Escolha **Próximo**.

1. Na página **Configurar opções de pilha**, não altere os valores padrão e escolha **Avançar**.

1. Na página **Revisar e criar**, verifique os detalhes do modelo e da pilha e escolha **Enviar**.

1. Monitore o progresso da implantação da pilha. Para obter mais informações, consulte a [documentação do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/monitor-stack-progress.html).

1. Aguarde até que o status mude para`CREATE_COMPLETE`.

**Para validar a implantação**

1. Abra o [console de AWS Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. No painel de navegação, escolha **Produtos**.

1. Confirme se **ServiceCatalog-Pipeline** está disponível na lista de produtos.

1. Abra o [console de AWS CodePipeline](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Em **Nome**, escolha o pipeline de configuração. Por padrão, o nome do pipeline é`ServiceCatalog-Pipeline`.

1. Selecione **Visualizar histórico**.

1. Visualize o status da execução do pipeline e do estágio. Para obter mais informações sobre o status, consulte [Exibir status de execução](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) na CodePipeline documentação.

1. Espere até que o status do pipeline de configuração seja`Succeeded`.

1. Abra o [console do Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. No painel de navegação, escolha **Produtos**.

1. Confirme se os **produtos BP-S3** e **BP-SNS** estão disponíveis. Isso indica que os pipelines de lançamento do produto para os esquemas de amostra foram concluídos com êxito.

1. Se você quiser excluir os exemplos de blueprints que você implantou ao configurar o Enterprise Blueprint Factory, siga as instruções em [Excluindo](using-factory.md#using-factory-delete) um blueprint.

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

Se você não estiver usando o Enterprise Blueprint Factory, poderá excluí-lo para parar de incorrer nos custos associados aos seus AWS recursos.

**Para excluir os recursos do**

1. Insira os seguintes comandos para excluir as funções do IAM que foram implantadas na conta administrativa do 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. Exclua a CloudFormation pilha da Enterprise Blueprint Factory. Para obter instruções, consulte [Excluir uma pilha do CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) ou [Excluir uma pilha do](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/service_code_examples.html#delete-stack-sdk). AWS CLI

1. Exclua o bucket do Amazon S3 usado para armazenar os CodePipeline artefatos. Para obter instruções, consulte [Excluir um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) na documentação do Amazon S3.

1. Exclua os seguintes parâmetros do Systems Manager do 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`

   Para obter instruções, consulte [Excluindo parâmetros do Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/deleting-parameters.html) na documentação do Systems Manager.