UsarAWS CodeBuildAmazon Virtual Private Cloud - AWS CodeBuild

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

UsarAWS CodeBuildAmazon Virtual Private Cloud

Normalmente, AWS CodeBuild no puede obtener acceso a los recursos de una VPC. Para habilitar el acceso, debe proporcionar información de configuración específica de la VPC adicional en la configuración del proyecto de CodeBuild. Esta información incluye el ID de la VPC, los identificadores de subred de la VPC y los identificadores de grupo de seguridad de la VPC. Las compilaciones habilitadas para VPC pueden acceder a los recursos que se encuentran dentro de la VPC. Para obtener más información acerca de cómo configurar una VPC en Amazon VPC, consulte laGuía del usuario de Amazon VPC.

nota

La conectividad con la VPC desde CodeBuild no es compatible con Windows.

Casos de uso

La conectividad con la VPC desde las compilaciones de AWS CodeBuild permite:

  • Ejecutar pruebas de integración desde la compilación con los datos de una base de datos de Amazon RDS que esté aislada en una subred privada.

  • Consultar datos en un clúster de Amazon ElastiCache directamente desde las pruebas.

  • Interactuar con los servicios web internos alojados en Amazon EC2, Amazon ECS o servicios que utilizan un Elastic Load Balancing interno.

  • Recuperar las dependencias de repositorios de artefactos internos y autoalojados, como PyPI para Python, Maven para Java y npm para Node.js.

  • Obtener acceso a los objetos de un bucket de S3 configurado para permitir el acceso únicamente a través de un punto de enlace de Amazon VPC.

  • Consultar servicios web externos que requieren direcciones IP fijas a través de la dirección IP elástica de la gateway NAT o la instancia NAT asociada a la subred.

Sus compilaciones pueden tener acceso a cualquier recurso alojado en su VPC.

Permitir el acceso a Amazon VPC en sus proyectos de CodeBuild

Incluya estos ajustes en la configuración de su VPC:

  • ParaID DE LA VPC, elija el ID de la VPC que usa CodeBuild.

  • ParaSubredes, elija una subred privada con traducción de NAT que incluya o tenga rutas a los recursos utilizados por CodeBuild.

  • ParaGrupos de seguridad, elija los grupos de seguridad que usa CodeBuild para permitir el acceso a los recursos de las VPC.

Si desea utilizar la consola para crear un proyecto de compilación, consulte Creación de un proyecto de compilación (consola). Cuando crea o cambia su proyecto CodeBuild, enVPC:, elija el ID de la VPC, las subredes y los grupos de seguridad.

Si desea utilizar AWS CLI para crear un proyecto de compilación, consulte Crear un proyecto de compilación (AWS CLI). Si utiliza laAWS CLICon CodeBuild, la función de servicio utilizada por CodeBuild para interactuar con los servicios en nombre del usuario de IAM debe tener asociada una política. Para obtener información, consulte Permite que CodeBuild tenga acceso aAWSservicios necesarios para crear una interfaz de red de VPC.

El objeto vpcConfig debe incluir su vpcId, securityGroupIds y subnets.

  • vpcId: Obligatorio. El ID de la VPC que usa CodeBuild. Ejecute este comando para obtener una lista de todos los ID de Amazon VPC de su región:

    aws ec2 describe-vpcs
  • Subredes: Obligatorio. Los ID de subred que incluyen recursos utilizados por CodeBuild. Ejecute este comando para obtener estos identificadores:

    aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region us-east-1
    nota

    Reemplace us-east-1 por la región.

  • securityGroupIds: Obligatorio. Los ID de grupo de seguridad utilizados por CodeBuild para permitir el acceso a los recursos de las VPC. Ejecute este comando para obtener estos identificadores:

    aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --region us-east-1
    nota

    Reemplace us-east-1 por la región.

Prácticas recomendadas para las VPC

Utilice esta lista de comprobación cuando configure una VPC para que funcione con CodeBuild.

  • Configure la VPC con subredes públicas y privadas y una gateway NAT. La gateway NAT debe residir en una subred pública. Para obtener más información, consulte VPC son subredes públicas y privadas (NAT) en la Guía del usuario de Amazon VPC.

    importante

    Necesita una gateway NAT o una instancia NAT para utilizar CodeBuild con la VPC de modo que CodeBuild pueda tener acceso a los puntos de enlace públicos (por ejemplo, para ejecutar comandos de la CLI durante las compilaciones). No puede utilizar la gateway de Internet en lugar de una gateway NAT o instancia NAT porque CodeBuild no permite asignar direcciones IP elásticas a las interfaces de red que crea, y Amazon EC2 no permite la asignación automática de una dirección IP pública para las interfaces de red creadas fuera de Amazon EC2 Lance una instancia.

  • Incluya varias zonas de disponibilidad con su VPC.

  • Asegúrese de que los grupos de seguridad no permitan el tráfico de entrada de sus compilaciones. CodeBuild no tiene requisitos específicos para el tráfico saliente, pero debe permitir el acceso a los recursos de Internet necesarios para su compilación, como GitHub o Amazon S3.

    Para obtener más información, consulte Reglas del grupo de seguridad en la Guía del usuario de Amazon VPC.

  • Configure subredes independientes para sus compilaciones.

  • Cuando configure sus proyectos de CodeBuild para tener acceso a la VPC, elija únicamente subredes privadas.

Para obtener más información acerca de cómo configurar una VPC en Amazon VPC, consulte laGuía del usuario de Amazon VPC.

Para obtener más información acerca del uso deAWS CloudFormationPara configurar una VPC de modo que utilice la característica de CodeBuild VPC, consulte laPlantilla de VPC de AWS CloudFormation.

Solución de problemas con la configuración de la VPC

Utilice la información que aparece en el mensaje de error para ayudarle a identificar, diagnosticar y resolver los problemas.

A continuación, se incluyen varias recomendaciones para ayudarle a solucionar un error de CodeBuild de VPC de:Build does not have internet connectivity. Please check subnet network configuration.

  1. Asegúrese de que la gateway de Internet está conectada a la VPC.

  2. Asegúrese de que la tabla de enrutamiento de su subred pública apunta a la gateway de Internet.

  3. Asegúrese de que las ACL de red permiten el tráfico.

  4. Asegúrese de que los grupos de seguridad permiten el tráfico.

  5. Solucione los problemas de la gateway NAT.

  6. Asegúrese de que la tabla de enrutamiento de las subredes privadas apunta a la gateway NAT.

  7. Asegúrese de que el rol de servicio utilizado por CodeBuild para interactuar con los servicios en nombre del usuario de IAM tiene los permisos deEsta política. Para obtener más información, consulte Cree un rol de servicio de CodeBuild.

    Si faltan permisos en CodeBuild, es posible que aparezca el error siguiente:Unexpected EC2 error: UnauthorizedOperation. Este error puede producirse si CodeBuild no tiene los permisos de Amazon EC2 necesarios para trabajar con una VPC.