Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

CodeBuild aprovisionamiento, creación de roles

Modo de enfoque
CodeBuild aprovisionamiento, creación de roles - AWS Proton

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.

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.

Las herramientas de infraestructura como código (IaaC), como AWS CloudFormation Terraform, requieren permisos para los diferentes tipos de recursos. AWS Por ejemplo, si una plantilla de IaC declara un bucket de Amazon S3, necesitará permisos para crear, leer, actualizar y eliminar buckets de Amazon S3. Se considera una buena práctica de seguridad limitar los roles a los permisos mínimos necesarios. Dada la variedad de AWS recursos, resulta difícil crear políticas de privilegios mínimos para las plantillas de IaaC, especialmente cuando los recursos que gestionan esas plantillas pueden cambiar más adelante. Por ejemplo, en las últimas modificaciones de una plantilla gestionada por AWS Proton, se añade un recurso de base de datos. RDS

La configuración de los permisos correctos ayuda a facilitar las implementaciones de su iAC. AWS Proton CodeBuild El aprovisionamiento ejecuta CLI comandos arbitrarios proporcionados por el cliente en un CodeBuild proyecto ubicado en la cuenta del cliente. Por lo general, estos comandos crean y eliminan la infraestructura mediante una herramienta de infraestructura como código (IaC), como AWS CDK. Cuando se despliega un AWS recurso cuya plantilla utiliza CodeBuild Provisioning, AWS se iniciará una compilación en un proyecto gestionado por. CodeBuild AWS Se pasa una función a CodeBuild, que se CodeBuild supone que ejecuta comandos. Esta función, denominada función de CodeBuild aprovisionamiento, la proporciona el cliente y contiene los permisos necesarios para aprovisionar la infraestructura. Se supone que solo debe asumirlo, CodeBuild y ni siquiera AWS Proton puede asumirlo.

Creación del rol

La función de CodeBuild aprovisionamiento se puede crear en la IAM consola o en. AWS CLI Para crearlo en la AWS CLI:

aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AWSProtonCodeBuildProvisioningBasicAccess

También se adjunta elAWSProtonCodeBuildProvisioningBasicAccess, que contiene los permisos mínimos que necesita el CodeBuild servicio para ejecutar una compilación.

Si prefiere utilizar la consola, asegúrese de lo siguiente al crear el rol:

  1. Para una entidad de confianza, seleccione AWS servicio y, a continuación, seleccione CodeBuild.

  2. En el paso Añadir permisos, seleccione AWSProtonCodeBuildProvisioningBasicAccess y cualquier otra política que desee asociar.

Acceso de administrador

Si adjuntas la AdministratorAccess política a la función de CodeBuild aprovisionamiento, se garantizará que ninguna plantilla de IaaC falle por falta de permisos. También significa que cualquier persona que pueda crear una plantilla de entorno o una plantilla de servicio puede realizar acciones a nivel de administrador, incluso si ese usuario no es administrador. AWS Proton no recomienda su uso AdministatorAccess con la función de aprovisionamiento CodeBuild . Si decide utilizarla AdministratorAccess con la función de CodeBuild aprovisionamiento, hágalo en un entorno aislado.

Puedes crear un rol AdministratorAccess en la IAM consola o ejecutando este comando:

aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
Creación de un rol con un alcance mínimo

Si desea crear un rol con permisos mínimos, hay disponibles varios enfoques:

  • Implemente el rol con permisos de administrador y, a continuación, limite los permisos del rol. Se recomienda utilizar IAMAccess Analyzer.

  • Utilice políticas administradas para dar acceso a los servicios que planee utilizar.

AWS CDK

Si lo utilizas AWS CDK con AWS Proton y lo has ejecutado cdk bootstrap en cada cuenta o región del entorno, entonces ya existe un rol para él. cdk deploy En este caso, asocie la siguiente política a la función de CodeBuild aprovisionamiento:

{ "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::account-id:role/cdk-*-deploy-role-*", "arn:aws:iam::account-id:role/cdk-*-file-publishing-role-*" ], "Effect": "Allow" }
Personalizado VPC

Si decides ejecutar CodeBuild una CodeBuild función personalizada VPC, necesitarás los siguientes permisos:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:*/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" } } }

También puede utilizar la política administrada AmazonEC2FullAccess, aunque incluye permisos que quizás no necesite. Para adjuntar la política gestionada medianteCLI:

aws iam create-role --role-name AWSProtonCodeBuildProvisioning --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"codebuild.amazonaws.com"},"Action":"sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSProtonCodeBuildProvisioning --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.