

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

# Implantação da Control Tower (CT)
<a name="cfctdeployment"></a>

O guia Customizations for AWS Control Tower (cFCT) é para administradores, DevOps profissionais, fornecedores independentes de software, arquitetos de infraestrutura de TI e integradores de sistemas que desejam personalizar e ampliar seus ambientes da AWS Control Tower para suas empresas e clientes. Ele fornece informações sobre a personalização e a extensão do ambiente do AWS Control Tower com o pacote de personalização do CfCT.

 **Tempo de implantação:** Aproximadamente 30 minutos

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

Antes de implantar essa solução, certifique-se de que ela seja destinada aos **administradores do AWS Control Tower**.

Quando você estiver pronto para configurar sua landing zone usando o console do AWS Control Tower ou APIs siga estas etapas:

Para começar a usar o AWS Control Tower, consulte: [Getting Started with AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html) 

Para saber como personalizar sua zona de pouso, consulte: [Personalizando sua zona de pouso](https://docs.aws.amazon.com/controltower/latest/userguide/customize-landing-zone.html) 

Para iniciar e implantar sua zona de pouso, consulte: [Guia de implantação da zona de pouso](https://docs.aws.amazon.com/controltower/latest/userguide/deployment.html) 

## Visão geral da implantação
<a name="cfctdeployment-overview"></a>

Use as etapas a seguir para implantar essa solução na AWS.

 [Etapa 1: criar e implantar o bucket S3](#step-1-cfn) 

**nota**  
Configuração do bucket S3 — somente para ADMIN. Essa é uma etapa de configuração única e não deve ser repetida pelos usuários finais. Os buckets do S3 armazenam o pacote de implantação, incluindo o CloudFormation modelo da AWS e o código Lambda necessários para a execução do ASR. Esses recursos são implantados usando CfCt ou StackSet.

**1. Configurar o bucket S3**  
Configure o bucket do S3 que será usado para armazenar e servir seus pacotes de implantação.

**2. Configurar o ambiente do**  
Prepare as variáveis de ambiente, as credenciais e as ferramentas necessárias para o processo de criação e implantação.

**3. Configurar políticas de bucket do S3**  
Defina e aplique as políticas de bucket apropriadas para controlar o acesso e as permissões.

**4. Prepare a construção**  
Compile, empacote ou prepare seu aplicativo ou ativos para implantação.

**5. Implantar pacotes no S3**  
Faça o upload dos artefatos de construção preparados para o bucket S3 designado.

 [Etapa 2: implantação de pilhas no AWS Control Tower](#step-2-cfn) 

**1. Crie um manifesto de construção para componentes do ASR**  
Defina um manifesto de construção que liste todos os componentes do ASR, suas versões, dependências e instruções de construção.

**2. Atualize o CodePipeline**  
Modifique a CodePipeline configuração da AWS para incluir as novas etapas de construção, artefatos ou estágios necessários para a implantação dos componentes do ASR.

## Etapa 1: criar e implantar no bucket S3
<a name="step-1-cfn"></a>

As soluções da AWS usam dois buckets: um bucket para acesso global aos modelos, que é acessado via HTTPS, e buckets regionais para acessar ativos dentro da região, como o código Lambda.

**1. Configurar o bucket S3**  
Escolha um nome de bucket exclusivo, por exemplo, asr-staging. Defina duas variáveis de ambiente em seu terminal, uma deve ser o nome base do bucket com -reference como sufixo e a outra com a região de implantação pretendida como sufixo:

```
export BASE_BUCKET_NAME=asr-staging-$(date +%s)
export TEMPLATE_BUCKET_NAME=$BASE_BUCKET_NAME-reference
export REGION=us-east-1
export ASSET_BUCKET_NAME=$BASE_BUCKET_NAME-$REGION
```

**2. Configuração do ambiente**  
Na sua conta da AWS, crie dois buckets com esses nomes, por exemplo, asr-staging-reference e asr-staging-us-east -1. (O bucket de referência conterá os CloudFormation modelos, o bucket regional conterá todos os outros ativos, como o pacote de código lambda.) Seus buckets devem ser criptografados e impedir o acesso público

```
aws s3 mb s3://$TEMPLATE_BUCKET_NAME/
aws s3 mb s3://$ASSET_BUCKET_NAME/
```

**nota**  
Ao criar seus buckets, certifique-se de que eles não estejam acessíveis ao público. Use nomes de bucket aleatórios. Desative o acesso público. Use a criptografia KMS. E verifique a propriedade do bucket antes de fazer o upload.

**3. Configuração da política de buckets do S3**  
Atualize a política de bucket do S3 $TEMPLATE\_BUCKET\_NAME para incluir permissões para o ID da conta de execução. PutObject Atribua essa permissão a uma função do IAM na conta de execução que está autorizada a gravar no bucket. Essa configuração permite que você evite criar o bucket na conta de gerenciamento.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::template-bucket-name/*",
                "arn:aws:s3:::template-bucket-name"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "org-id"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::template-bucket-name/*",
                "arn:aws:s3:::template-bucket-name"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:PrincipalArn": "arn:aws:iam::account-id:role/iam-role-name"
                }
            }
        }
    ]
}
```

Altere a política de bucket do S3 do ativo para incluir permissões. Atribua essa permissão a uma função do IAM na conta de execução que está autorizada a gravar no bucket. Repita essa configuração para cada bucket de ativos regional (por exemplo, asr-staging-us-east asr-staging-eu-west -1, -1 etc.), permitindo implantações em várias regiões sem precisar criar os buckets na conta de gerenciamento.

**4. Preparação da construção**
+ Pré-requisitos:
  + AWS CLI v2
  + Python 3.11\+ com pip
  + AWS CDK 2.171.1\+
  + Node.js 20\+ com npm
  + Poesia v2 com plugin para exportar
+ Clone do Git [https://github.com/aws-solutions/automated-security-response-on-aws.git](https://github.com/aws-solutions/automated-security-response-on-aws.git) 

Primeiro, certifique-se de ter executado npm install na pasta de origem.

Em seguida, na pasta de implantação em seu repositório clonado, execute build-s3-dist.sh, passando o nome raiz do seu bucket (ex. mybucket) e a versão que você está criando (por exemplo, v1.0.0). Recomendamos usar uma versão semver com base na versão baixada de GitHub (ex. GitHub: v1.0.0, sua compilação: v1.0.0.mybuild)

```
chmod +x build-s3-dist.sh
export SOLUTION_NAME=automated-security-response-on-aws
export SOLUTION_VERSION=v1.0.0.mybuild
./build-s3-dist.sh -b $BASE_BUCKET_NAME -v $SOLUTION_VERSION
```

 **5. Implante pacotes no S3** 

```
cd deployment
aws s3 cp global-s3-assets/  s3://$TEMPLATE_BUCKET_NAME/$SOLUTION_NAME/$SOLUTION_VERSION/ --recursive --acl bucket-owner-full-control
aws s3 cp regional-s3-assets/  s3://$ASSET_BUCKET_NAME/$SOLUTION_NAME/$SOLUTION_VERSION/ --recursive --acl bucket-owner-full-control
```

## Etapa 2: implantação de pilhas no AWS Control Tower
<a name="step-2-cfn"></a>

**1. Crie um manifesto para componentes do ASR**  
[Depois de implantar artefatos ASR nos buckets do S3, atualize o [manifesto do pipeline](https://docs.aws.amazon.com/controltower/latest/userguide/cfcn-byo-customizations.html) do Control Tower para fazer referência à nova versão e, em seguida, acione a execução do pipeline, consulte: implantação da torre de controle](https://docs.aws.amazon.com/controltower/latest/userguide/deployment.html) 

**Importante**  
Para garantir a implantação correta da solução ASR, consulte a documentação oficial da AWS para obter informações detalhadas sobre a visão geral dos CloudFormation modelos e a descrição dos parâmetros. Links de informações abaixo: [Guia de visão geral dos parâmetros dos CloudFormation ](https://docs.aws.amazon.com/solutions/latest/automated-security-response-on-aws/deployment.html) [modelos](https://docs.aws.amazon.com/en_us/solutions/latest/automated-security-response-on-aws/aws-cloudformation-template.html) 

O manifesto dos componentes do ASR tem a seguinte aparência:

```
region: us-east-1 #<HOME_REGION_NAME>
version: 2021-03-15

# Control Tower Custom CloudFormation Resources
resources:
  - name: <ADMIN STACK NAME>
    resource_file: s3://<ADMIN TEMPLATE BUCKET path>
    parameters:
      - parameter_key: UseCloudWatchMetricsAlarms
        parameter_value: "yes"
      - parameter_key: TicketGenFunctionName
        parameter_value: ""
      - parameter_key: ShouldDeployWebUI
        parameter_value: "yes"
      - parameter_key: AdminUserEmail
        parameter_value: "<YOUR EMAIL ADDRESS>"
      - parameter_key: LoadSCAdminStack
        parameter_value: "yes"
      - parameter_key: LoadCIS120AdminStack
        parameter_value: "no"
      - parameter_key: LoadCIS300AdminStack
        parameter_value: "no"
      - parameter_key: UseCloudWatchMetrics
        parameter_value: "yes"
      - parameter_key: LoadNIST80053AdminStack
        parameter_value: "no"
      - parameter_key: LoadCIS140AdminStack
        parameter_value: "no"
      - parameter_key: ReuseOrchestratorLogGroup
        parameter_value: "yes"
      - parameter_key: LoadPCI321AdminStack
        parameter_value: "no"
      - parameter_key: RemediationFailureAlarmThreshold
        parameter_value: "5"
      - parameter_key: LoadAFSBPAdminStack
        parameter_value: "no"
      - parameter_key: EnableEnhancedCloudWatchMetrics
        parameter_value: "no"
    deploy_method: stack_set
    deployment_targets:
     accounts: # :type: list
        - <ACCOUNT_NAME> # and/or
        - <ACCOUNT_NUMBER>
    regions:
      - <REGION_NAME>

  - name:  <ROLE MEMBER STACK NAME>
    resource_file: s3://<ROLE MEMBER TEMPLATE BUCKET path>
    parameters:
      - parameter_key: SecHubAdminAccount
        parameter_value: <ADMIN_ACCOUNT_NAME>
      - parameter_key: Namespace
        parameter_value: <NAMESPACE>
    deploy_method: stack_set
    deployment_targets:
      organizational_units:
        - <ORG UNIT>

  - name:  <MEMBER STACK NAME>
    resource_file: s3://<MEMBER TEMPLATE BUCKET path>
    parameters:
      - parameter_key: SecHubAdminAccount
        parameter_value: <ADMIN_ACCOUNT_NAME>
      - parameter_key: LoadCIS120MemberStack
        parameter_value: "no"
      - parameter_key: LoadNIST80053MemberStack
        parameter_value: "no"
      - parameter_key: Namespace
        parameter_value: <NAMESPACE>
      - parameter_key: CreateS3BucketForRedshiftAuditLogging
        parameter_value: "no"
      - parameter_key: LoadAFSBPMemberStack
        parameter_value: "no"
      - parameter_key: LoadSCMemberStack
        parameter_value: "yes"
      - parameter_key: LoadPCI321MemberStack
        parameter_value: "no"
      - parameter_key: LoadCIS140MemberStack
        parameter_value: "no"
      - parameter_key: EnableCloudTrailForASRActionLog
        parameter_value: "no"
      - parameter_key: LogGroupName
        parameter_value: <LOG_GROUP_NAME>
      - parameter_key: LoadCIS300MemberStack
        parameter_value: "no"
    deploy_method: stack_set
    deployment_targets:
     accounts: # :type: list
        - <ACCOUNT_NAME> # and/or
        - <ACCOUNT_NUMBER>
    organizational_units:
      - <ORG UNIT>
    regions: # :type: list
      - <REGION_NAME>
```

**2. Atualização do pipeline de código**  
Adicione um arquivo de manifesto a custom-control-tower-configuration um.zip e execute uma CodePipeline, consulte: visão geral [do pipeline de código](https://docs.aws.amazon.com/controltower/latest/userguide/cfct-codepipeline-overview.html) 