Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Inicialize seu ambiente para uso com o AWS CDK

Modo de foco
Inicialize seu ambiente para uso com o AWS CDK - AWS Cloud Development Kit (AWS CDK) v2

Este é o Guia do Desenvolvedor AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

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

Este é o Guia do Desenvolvedor AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

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

Inicialize seu AWS ambiente para prepará-lo para implantações em AWS Cloud Development Kit (AWS CDK) pilhas.

Como fazer bootstrapping em seu ambiente

Você pode usar a interface de linha de AWS CDK comando (AWS CDK CLI) ou sua ferramenta de AWS CloudFormation implantação preferida para inicializar seu ambiente.

Usar o CDK  CLI

Você pode usar o CDK CLI cdk bootstrapcomando para inicializar seu ambiente. Esse é o método que recomendamos se você não precisar de modificações significativas no bootstrapping.

Fazer o bootstrapping a partir de qualquer diretório de trabalho

Para fazer o bootstrapping a partir de qualquer diretório de trabalho, forneça o ambiente no qual fazer o bootstrapping como um argumento de linha de comandos. Veja um exemplo a seguir:

$ cdk bootstrap aws://123456789012/us-east-1
dica

Se você não tem o número AWS da sua conta, você pode obtê-lo no AWS Management Console. Você também pode usar o AWS CLI comando a seguir para exibir as informações padrão da sua conta, incluindo o número da sua conta:

$ aws sts get-caller-identity

Se você nomeou perfis em seus credentials arquivos AWS config e, use a --profile opção para recuperar as informações da conta de um perfil específico. Veja um exemplo a seguir:

$ aws sts get-caller-identity --profile prod

Para exibir a região padrão, use o comando aws configure get:

$ aws configure get region $ aws configure get region --profile prod

Ao fornecer um argumento, o prefixo aws:// é opcional. Veja o que é válido a seguir:

$ cdk bootstrap 123456789012/us-east-1

Para fazer o bootstrapping em vários ambientes ao mesmo tempo, forneça vários argumentos:

$ cdk bootstrap aws://123456789012/us-east-1 aws://123456789012/us-east-2
Bootstrapping a partir do diretório principal de um projeto do CDK

Você pode executar cdk bootstrap a partir do diretório principal de um projeto do CDK contendo um arquivo cdk.json. Se você não fornecer um ambiente como argumento, o CDK CLI obterá informações do ambiente de fontes padrão, como seus credentials arquivos config e ou qualquer informação de ambiente especificada para sua pilha de CDK.

Quando você inicializa a partir do diretório principal de um projeto do CDK, os ambientes fornecidos a partir de argumentos de linha de comandos têm precedência sobre outras fontes.

Para fazer o bootstrapping em um ambiente especificado em seus arquivos config e credentials, use a opção --profile:

$ cdk bootstrap --profile prod

Para obter mais informações sobre o comando cdk bootstrap e opções compatíveis, consulte cdk bootstrap.

Use qualquer AWS CloudFormation ferramenta

Você pode copiar o modelo de bootstrap do aws-cdk-cli GitHub repositório ou obtenha o modelo com o cdk bootstrap --show-template comando. Em seguida, use qualquer AWS CloudFormation ferramenta para implantar o modelo em seu ambiente.

Com esse método, você pode usar AWS CloudFormation StackSets ou AWS Control Tower. Você também pode usar o AWS CloudFormation console ou o AWS Command Line Interface (AWS CLI). Você pode fazer modificações no seu modelo antes de implantá-lo. Esse método pode ser mais flexível e adequado para implantações em grande escala.

Veja a seguir um exemplo de como usar a opção --show-template para recuperar e salvar o modelo de bootstrap em sua máquina local:

macOS/Linux
$ cdk bootstrap --show-template > bootstrap-template.yaml
Windows

No Windows, PowerShell deve ser usado para preservar a codificação do modelo.

powershell "cdk bootstrap --show-template | Out-File -encoding utf8 bootstrap-template.yaml"
$ cdk bootstrap --show-template > bootstrap-template.yaml
nota

Se os avisos do CDK estiverem aparecendo na saída AWS CloudFormation do modelo, forneça a --no-notices opção com seu comando.

Para implantar esse modelo usando o CDK CLI, você pode executar o seguinte:

$ cdk bootstrap --template bootstrap-template.yaml

Veja a seguir um exemplo de uso do AWS CLI para implantar o modelo:

macOS/Linux
aws cloudformation create-stack \ --stack-name CDKToolkit \ --template-body file://path/to/bootstrap-template.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-west-1
Windows
aws cloudformation create-stack ^ --stack-name CDKToolkit ^ --template-body file://path/to/bootstrap-template.yaml ^ --capabilities CAPABILITY_NAMED_IAM ^ --region us-west-1
aws cloudformation create-stack \ --stack-name CDKToolkit \ --template-body file://path/to/bootstrap-template.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-west-1

Para obter informações sobre como usar CloudFormation StackSets para inicializar vários ambientes, consulte Bootstrapping multiple Contas da AWS for use AWS CDK no blog de operações e migrações de nuvem CloudFormation StackSets da AWS.

Quando fazer bootstrapping em seu ambiente

Você deve inicializar cada AWS ambiente antes de implantá-lo no ambiente. Recomendamos que você fazer o bootstrapping proativamente em cada ambiente que planeja usar. Você pode fazer isso antes de planejar realmente implantar aplicações do CDK no ambiente. Ao fazer o bootstrapping proativamente em seus ambientes, você evita possíveis problemas futuros, como conflitos de nomes de buckets do Amazon S3 ou implantação de aplicações do CDK em ambientes que não receberam o bootstrapping.

Não há problema em fazer o bootstrapping em um ambiente mais de uma vez. Se um ambiente já tiver recebido o bootstrapping , a pilha de bootstrap será atualizada, se necessário. Caso contrário, nada acontecerá.

Se você tentar implantar uma pilha do CDK em um ambiente em que não foi feito o bootstrapping, você verá um erro como o seguinte:

$ cdk deploy ✨ Synthesis time: 2.02s ❌ Deployment failed: Error: BootstrapExampleStack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)

Atualizar a pilha de bootstrap

Periodicamente, a equipe do CDK atualizará o modelo de bootstrap para uma nova versão. Quando isso acontece, recomendamos que você atualize a pilha de bootstrap. Se você não personalizou o processo de bootstrapping, você pode atualizar sua pilha de bootstrap seguindo as mesmas etapas que você seguiu para fazer o bootstrapping originalmente em seu ambiente. Para obter mais informações, consulte Histórico de versões do modelo de bootstrap.

Recursos padrão criados durante o bootstrapping

Perfis do IAM criados durante o bootstrapping

Por padrão, a inicialização provisiona as seguintes funções AWS Identity and Access Management (IAM) em seu ambiente:

  • CloudFormationExecutionRole

  • DeploymentActionRole

  • FilePublishingRole

  • ImagePublishingRole

  • LookupRole

CloudFormationExecutionRole

Essa função do IAM é uma função CloudFormation de serviço que concede CloudFormation permissão para realizar implantações de pilha em seu nome. Essa função dá CloudFormation permissão para realizar chamadas de AWS API em sua conta, incluindo a implantação de pilhas.

Ao usar uma função de serviço, as permissões provisionadas para a função de serviço determinam quais ações podem ser executadas em seus CloudFormation recursos. Sem essa função de serviço, as credenciais de segurança que você fornece com o CDK CLI determinaria o que CloudFormation é permitido fazer.

DeploymentActionRole

Esse perfil do IAM concede permissões para realizar implantações em seu ambiente. É assumido pelo CDK CLI durante as implantações.

Ao usar um perfil para implantações, você pode realizar implantações em várias contas, pois o perfil pode ser assumido por identidades da AWS em uma conta diferente.

FilePublishingRole

Esse perfil do IAM concede permissões para a execução de ações no bucket de bootstrap do Amazon Simple Storage Service (Amazon S3), incluindo o carregamento e a exclusão de ativos. É assumido pelo CDK CLI durante as implantações.

ImagePublishingRole

Esse perfil do IAM concede permissões para a execução de ações no repositório de bootstrap do Amazon Elastic Container Registry (Amazon ECR). É assumido pelo CDK CLI durante as implantações.

LookupRole

Essa função do IAM concede readOnly permissão para pesquisar valores de contexto do AWS ambiente. É assumido pelo CDK CLI ao executar tarefas como síntese e implantações de modelos.

Recurso IDs criado durante a inicialização

Quando você implanta o modelo de bootstrap padrão, recursos físicos IDs para bootstrap são criados usando a seguinte estrutura:. cdk-qualifier-description-account-ID-Region

  • Qualificador: um valor de string exclusivo de nove caracteres de hnb659fds. O valor real não tem significado.

  • Descrição: uma descrição breve do recurso. Por exemplo, container-assets.

  • ID da conta — A Conta da AWS ID do ambiente.

  • Região — O Região da AWS do meio ambiente.

A seguir está um exemplo de ID físico do bucket de armazenamento do Amazon S3 criado durante a o bootstrapping: cdk-hnb659fds-assets-012345678910-us-west-1.

Permissões para usar ao fazer bootstrapping em seu ambiente

Ao inicializar um AWS ambiente, a identidade do IAM que executa a inicialização deve ter pelo menos as seguintes permissões:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "ecr:*", "ssm:*", "s3:*", "iam:*" ], "Resource": "*" } ] }

Com o tempo, a pilha de bootstrap, incluindo os recursos criados e as permissões que eles exigem, pode mudar. Com futuras alterações, talvez seja necessário modificar as permissões necessárias para fazer bootstrapping em um ambiente.

Personalizar o bootstrapping

Se o modelo de bootstrap padrão não atender às suas necessidades, você pode personalizar a o bootstrapping de recursos em seu ambiente das seguintes maneiras:

  • Use as opções da linha de comandos com o comando cdk bootstrap: esse método é melhor para fazer alterações pequenas e específicas que são compatíveis com as opções da linha de comandos.

  • Modifique o modelo de bootstrap padrão e implante-o: esse método é melhor para fazer alterações complexas ou se você quiser controle total sobre a configuração dos recursos provisionados durante o bootstrapping.

Para obter mais informações sobre como personalizar o bootstrapping, consulte Personalize o AWS CDK bootstrapping.

Bootstrapping com CDK Pipelines

Se você estiver usando o CDK Pipelines para implantar no ambiente de outra conta e receber uma mensagem como a seguinte:

Policy contains a statement with one or more invalid principals

Essa mensagem de erro significa que os perfis do IAM apropriados não existem no outro ambiente. A causa mais provável é que o ambiente não tenha recebido o bootstrapping. Faça o bootstrapping no ambiente e tente novamente.

Proteger sua pilha de bootstrap contra exclusão

Se uma pilha de bootstrap for excluída, os AWS recursos que foram originalmente provisionados no ambiente para suportar implantações de CDK também serão excluídos. Isso fará com que o pipeline pare de funcionar. Se isso acontecer, não há solução geral para recuperação.

Depois que seu ambiente receber o bootstrapping, não exclua e recrie a pilha de bootstrap do ambiente. Em vez disso, tente atualizar a pilha de bootstrap para uma nova versão executando o comando cdk bootstrap novamente.

Para se proteger contra a exclusão acidental de sua pilha de bootstrap, recomendamos que você forneça a opção --termination-protection com o comando cdk bootstrap para ativar a proteção contra encerramento. Você pode ativar a proteção contra encerramento em pilhas de bootstrap novas ou existentes. Para instruções sobre como ativar a proteção contra encerramento, consulte Habilitar proteção contra encerramento para a pilha de bootstrap.

Histórico de versões do modelo de bootstrap

O modelo de bootstrap é versionado e evolui ao longo do tempo com o próprio. AWS CDK Se você fornecer seu próprio modelo de bootstrap, mantenha-o atualizado com o modelo padrão canônico. Você quer garantir que seu modelo continue funcionando com todos os atributos do CDK.

nota

As versões anteriores do modelo de bootstrap criavam um AWS KMS key em cada ambiente inicializado por padrão. Para evitar cobranças pela chave do KMS, faça o bootstrapping nesses ambientes novamente usando o --no-bootstrap-customer-key. O padrão atual é a ausência de chave do KMS, o que ajuda a evitar essas cobranças.

Esta seção contém uma lista das alterações feitas em cada versão.

Versão do modelo AWS CDK versão Alterações
1 1.40.0 Versão inicial do modelo com bucket, chave, repositório e perfis.
2 1.45,0 Divida o perfil de publicação de ativos em perfis separados de publicação de arquivos e imagens.
3 1.46.0 Adicione a exportação FileAssetKeyArn para poder adicionar permissões de descriptografia aos consumidores de ativos.
4 1.61.0 AWS KMS as permissões agora estão implícitas via Amazon S3 e não são mais necessárias. FileAsetKeyArn Adicione o parâmetro CdkBootstrapVersion do SSM para que a versão da pilha de bootstrap possa ser verificada sem saber o nome da pilha.
5 1.87.0 O perfil de implantação pode ler o parâmetro do SSM.
6 1.108.0 Adicione um perfil de pesquisa separado do perfil de implantação.
6 1.109.0 Anexe a tag aws-cdk:bootstrap-role aos perfis de implantação, publicação de arquivos e publicação de imagens.
7 1.10.0 O perfil de implantação não pode mais ler buckets diretamente na conta de destino. (No entanto, essa função é efetivamente de administrador e, de qualquer forma, sempre pode usar suas AWS CloudFormation permissões para tornar o bucket legível).
8 1.14.0 O perfil de pesquisa tem permissões somente leitura completas para o ambiente de destino e também tem uma tag aws-cdk:bootstrap-role.
9 2.1.0 Impede que os carregamentos de ativos do Amazon S3 sejam rejeitados pela criptografia SCP comumente referenciada.
10 2.4.0 O Amazon ECR agora ScanOnPush está habilitado por padrão.
11 2.18.0 Adiciona uma política que permite que o Lambda extraia dos repositórios do Amazon ECR para que ele sobreviva à nova realização do bootstrapping.
12 2.20.0 Adiciona suporte para cdk import experimentais.
13 2.25.0 Torna imutáveis as imagens de contêiner nos repositórios do Amazon ECR criados pelo bootstrap.
14 2.34.0 Por padrão, desativa a verificação de imagens do Amazon ECR no nível do repositório para permitir o bootstrapping de regiões que não oferecem suporte à verificação de imagens.
15 2.60,0 As chaves do KMS não podem ser marcadas com tags.
16 2.69,0 Aborda a descoberta KMS.2 do Security Hub.
17 2.72.0 Aborda a descoberta ECR.3 do Security Hub.
18 2.80,0 Alterações revertidas feitas para a versão 16, pois elas não funcionam em todas as partições e não são recomendadas.
19 2.106.1 Alterações revertidas feitas na versão 18, em que a AccessControl propriedade foi removida do modelo. (#27964)
20 2.119.0 Adicione ssm:GetParameters ação à função de AWS CloudFormation implantação do IAM. Para obter mais informações, consulte a #28336.
21 2.149.0 Adicione uma condição ao perfil de publicação de arquivos.
22 2.160,0 Adicione permissões sts:TagSession à política de confiança dos perfis do IAM de bootstrap.
23 2.161,0 Adicione as permissões cloudformation:RollbackStack e cloudformation:ContinueUpdateRollback à política de confiança do perfil do IAM de implantação. Isso fornece permissões para o comando cdk rollback.
24 2.165.0 Altere a duração dos dias em que os objetos não atuais no bucket de bootstrap serão retidos, de 365 para 30 dias. Como o novo cdk gc comando introduz a capacidade de excluir objetos no bucket de bootstrap, esse novo comportamento garante que os objetos excluídos permaneçam no bucket de bootstrap por 30 dias em vez de 365 dias. Para obter mais informações sobre essa mudança, consulte aws-cdk PR #31949.
25 2.165.0 Adicione suporte ao bucket de bootstrap para a remoção de uploads incompletos de várias partes. Envios incompletos de várias partes serão excluídos após 1 dia. Para obter mais informações sobre essa mudança, consulte aws-cdk PR #31956.

Atualizar do modelo de bootstrap legado para o moderno

A AWS CDK v1 suportava dois modelos de bootstrap, antigos e modernos. O CDK v2 oferece suporte somente ao modelo moderno. Para referência, aqui estão as diferenças de alto nível entre esses dois modelos.

Atributo Legado (somente v1) Moderno (v1 e v2)
Implantação entre contas Não permitido Permitido
AWS CloudFormation Permissões Implanta usando as permissões atuais do usuário (determinadas pelo AWS perfil, variáveis de ambiente etc.) Implanta usando as permissões especificadas quando a pilha de bootstrap foi provisionada (por exemplo, usando --trust)
Versionamento Apenas uma versão da pilha de bootstrap está disponível A pilha do Bootstrap tem versão; novos recursos podem ser adicionados em versões futuras e os AWS CDK aplicativos podem exigir uma versão mínima
Recursos* Bucket do Amazon S3 Bucket do Amazon S3
AWS KMS key
Perfis do IAM
Repositório do Amazon ECR
Parâmetro SSM para versionamento
Nomenclatura de recursos Gerado automaticamente Deterministic
Criptografia do bucket Chave padrão AWS chave gerenciada por padrão. Você pode personalizar o uso de uma chave gerenciada pelo cliente.

* Adicionaremos recursos extras ao modelo de bootstrap conforme necessário.

Um ambiente em que foi feito o bootstrapping usando o modelo legado deve ser atualizado para usar o modelo moderno do CDK v2 por meio de um novo bootstrapping. Reimplante todos os AWS CDK aplicativos no ambiente pelo menos uma vez antes de excluir o bucket legado.

Abordar descobertas do Security Hub

Se você estiver usando AWS Security Hub, poderá ver descobertas relatadas sobre alguns dos recursos criados pelo processo de AWS CDK inicialização. As descobertas do Security Hub ajudam você a encontrar configurações de recursos que você deve verificar novamente quanto à precisão e segurança. Analisamos essas configurações específicas de recursos com a AWS Security e temos certeza de que elas não constituem um problema de segurança.

[KMS.2] As entidades principais do IAM não devem ter políticas incorporadas do IAM que permitam ações de descriptografia em todas as chaves do KMS

O perfil de implantação (DeploymentActionRole) concede permissão para ler dados criptografados, o que é necessário para implantações entre contas com o CDK Pipelines. As políticas nesse perfil não concedem permissão a todos os dados. Ele só concede permissão para ler dados criptografados do Amazon S3 e AWS KMS somente quando esses recursos permitem isso por meio de seu bucket ou política de chaves.

Veja a seguir um trecho dessas duas declarações no perfil de implantação do modelo de bootstrap:

DeploymentActionRole: Type: AWS::IAM::Role Properties: ... Policies: - PolicyDocument: Statement: ... - Sid: PipelineCrossAccountArtifactsBucket Effect: Allow Action: - s3:GetObject* - s3:GetBucket* - s3:List* - s3:Abort* - s3:DeleteObject* - s3:PutObject* Resource: "*" Condition: StringNotEquals: s3:ResourceAccount: Ref: AWS::AccountId - Sid: PipelineCrossAccountArtifactsKey Effect: Allow Action: - kms:Decrypt - kms:DescribeKey - kms:Encrypt - kms:ReEncrypt* - kms:GenerateDataKey* Resource: "*" Condition: StringEquals: kms:ViaService: Fn::Sub: s3.${AWS::Region}.amazonaws.com ...

Por que o Security Hub sinaliza isso?

As políticas contêm uma cláusula Resource: * combinada com uma Condition. O Security Hub sinaliza o curinga *. Esse curinga é usado porque, no momento em que a conta é inicializada, a AWS KMS chave criada pelo CDK Pipelines para o repositório de CodePipeline artefatos ainda não existe e, portanto, não pode ser referenciada no modelo de bootstrap pelo ARN. Além disso, o Security Hub não considera a cláusula Condition ao levantar essa bandeira. Isso Resource: * se Condition restringe às solicitações feitas com Conta da AWS a mesma AWS KMS chave. Essas solicitações devem vir do Amazon S3 da Região da AWS mesma forma que a chave. AWS KMS

Preciso corrigir essa descoberta?

Desde que você não tenha modificado a AWS KMS chave em seu modelo de bootstrap para ser excessivamente permissiva, a função de implantação não permite mais acesso do que o necessário. Portanto, não é necessário corrigir essa descoberta.

E se eu quiser corrigir essa descoberta?

A forma como você corrige essa descoberta depende se você usará ou não o CDK Pipelines para implantações entre contas.

Para corrigir a descoberta do Security Hub e usar o CDK Pipelines para implantações entre contas
  1. Se ainda não o tiver feito isso, implante a pilha de bootstrap do CDK usando o comando cdk bootstrap.

  2. Se você ainda não tiver feito isso, crie e implante seu CDK PipelinePara obter instruções, consulte Integração e entrega contínuas (CI/CD) usando CDK Pipelines.

  3. Obtenha o ARN da AWS KMS chave do compartimento de CodePipeline artefatos. Esse recurso é criado durante a criação do pipeline.

  4. Obtenha uma cópia do modelo de bootstrap do CDK para modificá-lo. Veja a seguir um exemplo, usando o AWS CDK CLI:

    $ cdk bootstrap --show-template > bootstrap-template.yaml
  5. Modifique o modelo substituindo o Resource: * da declaração PipelineCrossAccountArtifactsKey pelo valor do ARN.

  6. Implante o modelo para atualizar sua pilha de bootstrap. Veja a seguir um exemplo, usando o CDK CLI:

    $ cdk bootstrap aws://account-id/region --template bootstrap-template.yaml
Para corrigir a descoberta do Security Hub se você não está usando o CDK Pipelines para implantações entre contas
  1. Obtenha uma cópia do modelo de bootstrap do CDK para modificá-lo. Veja a seguir um exemplo, usando o CDK CLI:

    $ cdk bootstrap --show-template > bootstrap-template.yaml
  2. Exclua as instruções PipelineCrossAccountArtifactsBucket e PipelineCrossAccountArtifactsKey do modelo.

  3. Implante o modelo para atualizar sua pilha de bootstrap. Veja a seguir um exemplo, usando o CDK CLI:

    $ cdk bootstrap aws://account-id/region --template bootstrap-template.yaml

Considerações

Como a inicialização provisiona recursos em seu ambiente, você pode incorrer em AWS cobranças quando esses recursos são usados com o. AWS CDK

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.