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

Vários tokens de acesso no CodeBuild

Modo de foco
Vários tokens de acesso no CodeBuild - AWS CodeBuild

O CodeBuild oferece suporte ao fornecimento de tokens de acesso a provedores terceirizados a partir de seus segredos no AWS Secrets Manager ou por meio de conexões do Conexões de código da AWS. Você pode definir seu segredo ou conexão como a credencial padrão para interações com um provedor terceirizado específico, como GitHub, GitHub Enterprise ou Bitbucket.

Você pode definir suas credenciais de origem em três níveis diferentes:

  1. Credenciais no nível da conta para todos os projetos: essas são as credenciais padrão para todos os projetos em uma conta da AWS. Elas serão usadas em um projeto quando nenhuma credencial de projeto ou de nível de origem for especificada.

  2. Credenciais no nível da origem para um repositório específico: é quando um segredo do Secrets Manager ou a conexão do CodeConnections é definido em uma origem do projeto. Essas credenciais serão usadas somente para operações no repositório de origem especificado. Isso permite que você configure vários tokens de acesso com diferentes escopos de permissão no mesmo projeto e não use as credenciais padrão no nível da conta.

  3. Credenciais de fallback no nível do projeto: você pode definir uma credencial de fallback no nível do projeto usando NO_SOURCE como tipo de fonte primária e definir um segredo ou uma conexão nela. Isso pode ser usado quando você tem várias fontes em um projeto, mas deseja usar as mesmas credenciais ou quando não deseja usar as credenciais padrão no nível da conta para o projeto.

Etapa 1: criar um segredo do Secrets Manager ou uma conexão do CodeConnections

Use as instruções a seguir para criar um segredo do Secrets Manager ou uma conexão do CodeConnections:

Etapa 2: conceder acesso ao perfil do IAM do projeto do CodeBuild aos segredos do Secrets Manager

nota

Antes de continuar, você deve ter acesso ao token criado no Secrets Manager ou no CodeConnections.

Para conceder acesso ao perfil do IAM do projeto do CodeBuild ao Secrets Manager ou ao CodeConnections, você deve adicionar a seguinte política do IAM.

Para conceder acesso ao perfil do IAM do projeto do CodeBuild
  1. Crie um perfil do IAM para o projeto do CodeBuild seguindo as instruções para Permitir que o CodeBuild interaja com outros serviços da AWS para o projeto do CodeBuild.

  2. Execute um destes procedimentos:

    • Adicione a seguinte política do IAM ao seu perfil de projeto do CodeBuild para conceder acesso ao seu segredo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "<secret-arn>" ] } ] }

      (Opcional) Se você estiver usando chaves gerenciadas pelo cliente do AWS KMS para criptografar um segredo do Secrets Manager, poderá adicionar a seguinte declaração de política para conceder acesso.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<kms-key-arn>", "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "<secret-arn>" } } } ] }
    • Adicione a seguinte política do IAM ao perfil de projeto do CodeBuild para conceder acesso à sua conexão.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:GetConnectionToken", "codeconnections:GetConnection" ], "Resource": [ <connection-arn> ] } ] }

Etapa 3: configurar tokens do Secrets Manager ou do CodeConnections

Você pode definir as credenciais de origem em três níveis diferentes com os tokens do Secrets Manager ou do CodeConnections.

Configure os tokens do Secrets Manager ou do CodeConnections como credenciais no nível da conta

Você pode configurar um segredo do Secrets Manager ou uma conexão do CodeConnections como uma credencial no nível da conta e usá-lo em um projeto.

AWS Management Console
Para configurar uma conexão como uma credencial no nível da conta na AWS Management Console
  1. Em Provedor de origem, escolha Bitbucket, GitHub ou GitHub Enterprise.

  2. Em Credencial, siga um destes procedimentos:

    • Escolha Credencial de origem padrão para usar a credencial de origem padrão da conta e aplicá-la a todos os projetos.

      1. Se você ainda não tiver feito login no provedor de origem, escolha Gerenciar credencial de origem padrão.

      2. Em Tipo de credencial, escolha um tipo de credencial.

      3. Se você escolheu CodeConnections, opte por usar uma conexão existente ou criar uma conexão.

        Se você escolheu outro tipo de credencial, em Serviço, escolha qual serviço você gostaria de usar para armazenar seu token e faça o seguinte:

        • Se você optar por usar o Secrets Manager, poderá usar uma conexão secreta existente ou criar um segredo e escolher Salvar. Para obter mais informações sobre como criar um segredo, consulte Criar e armazenar um token em um segredo do Secrets Manager.

        • Se você optar por usar o CodeBuild, insira o token ou o nome de usuário e a senha da aplicação e escolha Salvar.

    • Escolha Credencial de origem personalizada para usar uma credencial de origem personalizada para substituir as configurações padrão da conta.

      1. Em Tipo de credencial, escolha um tipo de credencial.

      2. Em Conexão, escolha usar uma conexão existente ou crie uma.

AWS CLI
Para configurar uma conexão como uma credencial no nível da conta na AWS CLI
  • Abra um terminal (Linux, macOS ou Unix) ou um prompt de comando (Windows). Use a AWS CLI para executar o comando import-source-credentials.

    Use o seguinte comando para configurar um segredo do Secrets Manager:

    aws codebuild import-source-credentials \ --token "<secret-arn>" \ --server-type <source-provider> \ --auth-type SECRETS_MANAGER \ --region <aws-region>

    Use o seguinte comando para configurar uma conexão do CodeConnections:

    aws codebuild import-source-credentials \ --token "<connection-arn>" \ --server-type <source-provider> \ --auth-type CODECONNECTIONS \ --region <aws-region>

    Esse comando permite importar um token como credenciais de origem padrão no nível da conta. Quando você importa uma credencial usando a API ImportSourceCredentials, o CodeBuild usa o token para todas as interações com o provedor de origem, como webhooks, relatórios de status de compilação e operações de git clone, a menos que um conjunto mais específico de credenciais tenha sido configurado no projeto.

Para configurar uma conexão como uma credencial no nível da conta na AWS Management Console
  1. Em Provedor de origem, escolha Bitbucket, GitHub ou GitHub Enterprise.

  2. Em Credencial, siga um destes procedimentos:

    • Escolha Credencial de origem padrão para usar a credencial de origem padrão da conta e aplicá-la a todos os projetos.

      1. Se você ainda não tiver feito login no provedor de origem, escolha Gerenciar credencial de origem padrão.

      2. Em Tipo de credencial, escolha um tipo de credencial.

      3. Se você escolheu CodeConnections, opte por usar uma conexão existente ou criar uma conexão.

        Se você escolheu outro tipo de credencial, em Serviço, escolha qual serviço você gostaria de usar para armazenar seu token e faça o seguinte:

        • Se você optar por usar o Secrets Manager, poderá usar uma conexão secreta existente ou criar um segredo e escolher Salvar. Para obter mais informações sobre como criar um segredo, consulte Criar e armazenar um token em um segredo do Secrets Manager.

        • Se você optar por usar o CodeBuild, insira o token ou o nome de usuário e a senha da aplicação e escolha Salvar.

    • Escolha Credencial de origem personalizada para usar uma credencial de origem personalizada para substituir as configurações padrão da conta.

      1. Em Tipo de credencial, escolha um tipo de credencial.

      2. Em Conexão, escolha usar uma conexão existente ou crie uma.

Agora você pode usar o token no projeto de compilação e executá-lo. Para obter mais informações, consulte Criar um projeto de compilação no AWS CodeBuild e Executar compilações do AWS CodeBuild manualmente.

Configurar vários tokens como credenciais no nível de origem

Para usar segredos do Secrets Manager ou conexões do CodeConnections como credenciais no nível de origem, faça referência direta ao token no projeto do CodeBuild e inicie uma compilação.

AWS Management Console
Para configurar vários tokens como credenciais em nível de origem no AWS Management Console
  1. Em Provedor de origem, escolha GitHub.

  2. Em Credencial, siga um destes procedimentos:

    • Escolha Credencial de origem padrão para usar a credencial de origem padrão da conta e aplicá-la a todos os projetos.

      1. Se você não estiver conectado ao GitHub, escolha Gerenciar credencial de origem padrão.

      2. Em Tipo de credencial, escolha Aplicação GitHub.

      3. Em Conexão, escolha usar uma conexão existente ou crie uma.

    • Escolha Credencial de origem personalizada para usar uma credencial de origem personalizada para substituir as configurações padrão da conta.

      1. Em Tipo de credencial, escolha Aplicação GitHub.

      2. Em Conexão, escolha usar uma conexão existente ou crie uma.

  3. Escolha Adicionar origem e repita o processo de escolha do provedor de origem e das credenciais.

AWS CLI
Para configurar vários tokens como credenciais em nível de origem no AWS CLI
  • Abra um terminal (Linux, macOS ou Unix) ou um prompt de comando (Windows). Use a AWS CLI para executar o comando create-project.

    Use o seguinte comando:

    aws codebuild create-project --region <aws-region> \ --name <project-name> \ --artifacts type=NO_ARTIFACTS \ --environment "type=LINUX_CONTAINER, computeType=BUILD_GENERAL1_SMALL, image=aws/codebuild/amazonlinux2-x86_64-standard:5.0" \ --service-role <service-role-name> \ --source "type=GITHUB, location=<github-repository-1>, auth={type=SECRETS_MANAGER,resource=<secret-or-connection-arn-1>}" \ --secondary-sources "type=GITHUB, location=<github-repository-2>, auth={type=SECRETS_MANAGER,resource=<secret-or-connection-arn-2>}, sourceIdentifier=secondary" aws codebuild start-build --region <aws-region> --project-name <project-name>
Para configurar vários tokens como credenciais em nível de origem no AWS Management Console
  1. Em Provedor de origem, escolha GitHub.

  2. Em Credencial, siga um destes procedimentos:

    • Escolha Credencial de origem padrão para usar a credencial de origem padrão da conta e aplicá-la a todos os projetos.

      1. Se você não estiver conectado ao GitHub, escolha Gerenciar credencial de origem padrão.

      2. Em Tipo de credencial, escolha Aplicação GitHub.

      3. Em Conexão, escolha usar uma conexão existente ou crie uma.

    • Escolha Credencial de origem personalizada para usar uma credencial de origem personalizada para substituir as configurações padrão da conta.

      1. Em Tipo de credencial, escolha Aplicação GitHub.

      2. Em Conexão, escolha usar uma conexão existente ou crie uma.

  3. Escolha Adicionar origem e repita o processo de escolha do provedor de origem e das credenciais.

Defina um fallback de credencial de origem no nível do projeto

Para configurar o fallback da credencial de origem no nível do projeto, use NO_SOURCE como fonte primária do seu projeto e faça referência ao token.

aws codebuild create-project \ --name <project-name> \ --service-role <service-role-name> \ --artifacts type=NO_ARTIFACTS \ --environment "type=LINUX_CONTAINER, computeType=BUILD_GENERAL1_SMALL, image=aws/codebuild/amazonlinux2-x86_64-standard:5.0" \ --service-role <service-role-name> \ --source "type=NO_SOURCE, auth={type=SECRETS_MANAGER,resource=<secret-or-connection-arn>}, buildspec=<buildspec>" --secondary-sources "type=GITHUB, location=<github-repository>, sourceIdentifier=secondary" aws codebuild start-build --region <aws-region> --project-name <project_name>

Ao usar NO_SOURCE, um buildspec normalmente é fornecido dentro do modelo de origem, pois não está diretamente configurado para usar uma fonte externa para buscar buildspec. Normalmente, uma origem NO_SOURCE lidará com a clonagem de todos os repositórios relevantes de dentro do buildspec. Para garantir que as credenciais configuradas estejam disponíveis para essas operações, você pode ativar a opção git-credential-helper no buildspec.

env: git-credential-helper: yes

Durante a compilação, o CodeBuild vai ler o campo AuthServer do token configurado e usará as credenciais do token para todas as solicitações do git para esse provedor de origem terceirizado específico.

Opções de configuração adicionais

Você pode configurar as credenciais do Secrets Manager no nível da conta usando modelos do AWS CloudFormation. Você pode usar o modelo do AWS CloudFormation a seguir para definir uma credencial no nível da conta:

Parameters: GitHubToken: Type: String NoEcho: true Default: placeholder Resources: CodeBuildAuthTokenSecret: Type: AWS::SecretsManager::Secret Properties: Description: CodeBuild auth token Name: codebuild-auth-token SecretString: !Join - '' - - '{"ServerType":"GITHUB","AuthType":"PERSONAL_ACCESS_TOKEN","Token":"' - !Ref GitHubToken - '"}' Tags: - Key: codebuild:source:provider Value: github - Key: codebuild:source:type Value: personal_access_token CodeBuildSecretsManagerAccountCredential: Type: AWS::CodeBuild::SourceCredential Properties: ServerType: GITHUB AuthType: SECRETS_MANAGER Token: !Ref CodeBuildAuthTokenSecret
nota

Se você também estiver criando um projeto na mesma pilha, use o atributo DependsOn do AWS CloudFormation para garantir que AccountCredential seja criado antes do projeto.

Você também pode configurar as credenciais de vários níveis de origem do Secrets Manager usando modelos do AWS CloudFormation. Você pode usar o modelo do AWS CloudFormation a seguir para usar vários tokens para extrair várias origens:

Parameters: GitHubTokenOne: Type: String NoEcho: true Default: placeholder GitHubTokenTwo: Type: String NoEcho: true Default: placeholder Resources: CodeBuildSecretsManagerProject: Type: AWS::CodeBuild::Project Properties: Name: codebuild-multitoken-example ServiceRole: <service-role> Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/amazonlinux2-x86_64-standard:5.0 Source: Type: GITHUB Location: <github-repository-one> Auth: Type: SECRETS_MANAGER Resource: !Ref CodeBuildAuthTokenSecretOne SecondarySources: - Type: GITHUB Location: <github-repository-two> Auth: Type: SECRETS_MANAGER Resource: !Ref CodeBuildAuthTokenSecretTwo SourceIdentifier: secondary Artifacts: Type: NO_ARTIFACTS LogsConfig: CloudWatchLogs: Status: ENABLED CodeBuildProjectIAMRoleSecretAccess: Type: AWS::IAM::RolePolicy Properties: RoleName: <role-name> PolicyName: CodeBuildProjectIAMRoleSecretAccessPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - secretsmanager:GetSecretValue Resource: - !Ref CodeBuildAuthTokenSecretOne - !Ref CodeBuildAuthTokenSecretTwo CodeBuildAuthTokenSecretOne: Type: AWS::SecretsManager::Secret Properties: Description: CodeBuild auth token one Name: codebuild-auth-token-one SecretString: !Join - '' - - '{"ServerType":"GITHUB","AuthType":"PERSONAL_ACCESS_TOKEN","Token":"' - !Ref GitHubTokenOne - '"}' Tags: - Key: codebuild:source:provider Value: github - Key: codebuild:source:type Value: personal_access_token CodeBuildAuthTokenSecretTwo: Type: AWS::SecretsManager::Secret Properties: Description: CodeBuild auth token two Name: codebuild-auth-token-two SecretString: !Join - '' - - '{"ServerType":"GITHUB","AuthType":"PERSONAL_ACCESS_TOKEN","Token":"' - !Ref GitHubTokenTwo - '"}' Tags: - Key: codebuild:source:provider Value: github - Key: codebuild:source:type Value: personal_access_token
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.