Solución de problemas de conexión de SSH del entorno de pruebas AWS CodeBuild - AWS CodeBuild

Solución de problemas de conexión de SSH del entorno de pruebas AWS CodeBuild

Utilice la información de este tema como ayuda para identificar, diagnosticar y resolver problemas de conexión de SSH del entorno de pruebas de CodeBuild.

Error de StartSandboxConnectionInvalidInputException cuando se utiliza SSH en el entorno de pruebas de CodeBuild

Problema: al intentar conectarse a un entorno de pruebas de CodeBuild mediante el comando ssh codebuild-sandbox-ssh=<sandbox-arn>, es posible que se produzca un error InvalidInputException como el siguiente:

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.

Causa posible:

  • Falta Amazon EC2 Systems Manager Agent: la imagen de compilación no tiene el agente de SSM instalado o configurado correctamente.

  • Permisos insuficientes: el rol de servicio del proyecto de CodeBuild carece de los permisos de SSM necesarios.

Solución recomendada: si utiliza una imagen personalizada para la compilación, haga lo siguiente.

  1. Instalar el SSM Agent de . Para obtener más información, consulte Instalación y desinstalación manual de SSM Agent en instancias de Amazon EC2 para Linux en . La versión de SSM Agent debe ser 3.0.1295.0 o posterior.

  2. Copie el archivo https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json en el directorio /etc/amazon/ssm/ de la imagen. De este modo se habilita Modo de contenedor en SSM Agent.

  3. Asegúrese de que el rol de servicio del proyecto de CodeBuild tenga los siguientes permisos y, a continuación, reinicie el entorno de pruebas:

    { "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" ] }

Error: “Unable to locate credentials” al usar SSH en el entorno de pruebas de CodeBuild

Problema: al intentar conectarse a un entorno de pruebas de CodeBuild mediante el comando ssh codebuild-sandbox-ssh=<sandbox-arn>, puede aparecer el siguiente error de credenciales:

Unable to locate credentials. You can configure credentials by running "aws configure".

Causa posible: las credenciales de AWS no se han configurado correctamente en el entorno local.

Solución recomendada: configure las credenciales de AWS CLI siguiendo la documentación oficial: Configuración de ajustes para la AWS CLI en la Guía del usuario de la interfaz de línea de comandos AWS para la versión 2.

Error de StartSandboxConnectionAccessDeniedException cuando se utiliza SSH en el entorno de pruebas de CodeBuild

Problema: al intentar conectarse a un entorno de pruebas de CodeBuild mediante el comando ssh codebuild-sandbox-ssh=<sandbox-arn>, puede producirse el siguiente error de permisos:

An error occurred (AccessDeniedException) when calling the StartSandboxConnection operation: User: arn:aws:sts::account-id:assumed-role/role-name is not authorized to perform: codebuild:StartSandboxConnection on resource: sandbox-arn because no identity-based policy allows the codebuild:StartSandboxConnection action

Causa posible: sus credenciales de AWS carecen de los permisos de CodeBuild necesarios para realizar esta operación.

Solución recomendada: asegúrese de que el usuario de IAM o el rol asociado a sus credenciales de AWS CLI tenga los siguientes permisos:

{ "Effect": "Allow", "Action": [ "codebuild:StartSandboxConnection" ], "Resource": [ "arn:aws:codebuild:region:account-id:sandbox/*" ] }

Error: “ssh: Could not resolve hostname” cuando SSH pasa al entorno de pruebas de CodeBuild

Problema: al intentar conectarse a un entorno de pruebas de CodeBuild mediante el comando ssh codebuild-sandbox-ssh=<sandbox-arn>, aparece el siguiente error de resolución de nombre de host:

ssh: Could not resolve hostname

Causa posible: este error suele producirse cuando el script de conexión del entorno de pruebas de CodeBuild requerido no se ha ejecutado correctamente en el entorno local.

Solución recomendada:

  1. Descargue el script de conexión del entorno de pruebas de CodeBuild.

  2. Ejecute el script en el terminal para establecer la configuración de SSH necesaria.

  3. Vuelva a intentar la conexión de SSH con el entorno de pruebas.