Solucionar problemas de conexão SSH do sandbox do AWS CodeBuild
Use as informações neste tópico para ajudar a identificar, diagnosticar e resolver problemas de conexão SSH do sandbox do CodeBuild.
Tópicos
Erro StartSandboxConnectionInvalidInputException referente ao SSH no ambiente de sandbox do CodeBuild
Problema: ao tentar se conectar a um ambiente de sandbox do CodeBuild usando o comando ssh codebuild-sandbox-ssh=, você pode encontrar um erro <sandbox-arn>InvalidInputException, como:
An error occurred (InvalidInputException) when calling the StartSandboxConnection operation: Failed to start SSM session for {sandbox-arn} User: arn:aws:sts::<account-ID>:assumed-role/<service-role-name>/AWSCodeBuild-<UUID>is not authorized to perform: ssm:StartSession on resource.
An error occurred (InvalidInputException) when calling the StartSandboxConnection operation: Failed to start SSM session for sandbox<sandbox-arn>: codebuild:<UUID>is not connected.
Possível causa:
-
Agente do Amazon EC2 Systems Manager ausente: a imagem de compilação não tem o SSM Agent devidamente instalado ou configurado.
-
Permissões insuficientes: o perfil de serviço do projeto do CodeBuild não tem as permissões de SSM necessárias.
Solução recomendada: se você estiver usando uma imagem personalizada para a compilação, faça o seguinte.
-
Instalar o SSM Agent do . Consulte mais informações em Instalar e desinstalar manualmente o SSM Agent em instâncias do Amazon EC2 para Linux no . A versão do SSM Agent deve ser
3.0.1295.0ou posterior. -
Copie o arquivo https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json
para o diretório /etc/amazon/ssm/na imagem. Isso habilita o Modo de contêiner no SSM Agent. -
Certifique-se de que o perfil de serviço do seu projeto do CodeBuild tenha as seguintes permissões e reinicie o ambiente de sandbox:
{ "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:codebuild:region:account-id:build/*", "arn:aws:ssm:region::document/AWS-StartSSHSession" ] }
Erro: “Não foi possível encontrar as credenciais” quando o SSH está no ambiente de sandbox do CodeBuild
Problema: ao tentar se conectar a um ambiente de sandbox do CodeBuild usando o comando ssh codebuild-sandbox-ssh=, você pode encontrar os seguintes erros de credenciais:<sandbox-arn>
Unable to locate credentials. You can configure credentials by running "aws configure".
Possível causa: as credenciais da AWS não foram configuradas corretamente no ambiente local.
Solução recomendada: configure as credenciais da AWS CLI seguindo a documentação oficial: Como definir as configurações da AWS CLI no Guia do usuário da AWS Command Line Interface para a versão 2.
Erro StartSandboxConnectionAccessDeniedException referente ao SSH no ambiente de sandbox do CodeBuild
Problema: ao tentar se conectar a um ambiente de sandbox do CodeBuild usando o comando ssh codebuild-sandbox-ssh=, você pode encontrar os seguintes erros de permissão:<sandbox-arn>
An error occurred (AccessDeniedException) when calling the StartSandboxConnection operation: User: arn:aws:sts::account-id:assumed-role/role-nameis not authorized to perform: codebuild:StartSandboxConnection on resource:sandbox-arnbecause no identity-based policy allows the codebuild:StartSandboxConnection action
Possível causa: as credenciais da AWS não têm as permissões necessárias do CodeBuild para realizar essa operação.
Solução recomendada: certifique-se de que o perfil ou usuário do IAM associado às credenciais da AWS CLI tenha as seguintes permissões:
{ "Effect": "Allow", "Action": [ "codebuild:StartSandboxConnection" ], "Resource": [ "arn:aws:codebuild:region:account-id:sandbox/*" ] }
Erro: “ssh: Não foi possível resolver o nome do host” ao fazer SSH no ambiente de sandbox do CodeBuild
Problema: ao tentar se conectar a um ambiente de sandbox do CodeBuild usando o comando ssh codebuild-sandbox-ssh=, você encontra os seguintes erros de resolução de nome do host:<sandbox-arn>
ssh: Could not resolve hostname
Possível causa: esse erro geralmente ocorre quando o script de conexão de sandbox do CodeBuild necessário não foi executado corretamente no ambiente local.
A solução recomendada:
-
Baixe o script de conexão de sandbox do CodeBuild.
-
Execute o script no terminal para estabelecer a configuração SSH necessária.
-
Tente estabelecer novamente a conexão SSH com o ambiente de sandbox.