Información general sobre la administración de los permisos de acceso a los recursos de AWS CodeBuild - AWS CodeBuild

Información general sobre la administración de los permisos de acceso a los recursos de AWS CodeBuild

Cada recurso de AWS es propiedad de una cuenta de AWS y los permisos para crear o tener acceso a un recurso se rigen por las políticas de permisos. Un administrador de cuentas puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y funciones).

nota

Un administrador de cuentas (o usuario administrador) es un usuario que tiene privilegios de administrador. Para obtener más información, consulte Prácticas recomendadas de IAM en la Guía del usuario de IAM.

Cuando concede permisos, decide quién obtiene los permisos, los recursos a los que se tiene acceso y las acciones que se pueden realizar en esos recursos.

AWS CodeBuildRecursos y operaciones de

En AWS CodeBuild, el recurso principal es un proyecto de compilación. En una política, se usa un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política. Las compilaciones son también recursos y tienen ARN asociados. Para obtener más información, consulte Nombres de recursos de Amazon (ARN) y espacios de nombres de servicios de AWS en la Referencia general de Amazon Web Services.

Tipo de recurso Formato de ARN
Proyecto de compilación

arn:aws:codebuild:region-ID:account-ID:project/project-name

Compilación

arn:aws:codebuild:region-ID:account-ID:build/build-ID

Grupo de informes arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name
Informar arn:aws:codebuild:region-ID:account-ID:report/report-ID
Flota

arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID

Todos los recursos de CodeBuild

arn:aws:codebuild:*

Todos los recursos de CodeBuild que pertenecen a la cuenta especificada en la región AWS indicada

arn:aws:codebuild:region-ID:account-ID:*

importante

Cuando se usa la característica de capacidad reservada, otros proyectos de la misma cuenta pueden acceder a los datos almacenados en caché en las instancias de flota (incluidos los archivos de origen, las capas de Docker y los directorios almacenados en caché que se indican en la especificación de compilación). Esto es así por diseño y permite que los proyectos de la misma cuenta compartan instancias de flotas.

nota

La mayoría de los servicios de AWS tratan el carácter de dos puntos (:) o la barra inclinada (/) como el mismo carácter en los ARN. Sin embargo, CodeBuild utiliza una coincidencia exacta en los patrones de recursos y reglas. Asegúrese de utilizar los caracteres correctos cuando cree patrones de eventos para que coincidan con la sintaxis de ARN en el recurso.

Por ejemplo, puede indicar un proyecto de compilación específico (myBuildProject) en su instrucción utilizando su ARN del modo siguiente:

"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"

Para especificar todos los recursos, o si una acción de API no admite ARN, utilice el carácter comodín (*) en el elemento Resource de la siguiente manera:

"Resource": "*"

Algunas acciones de API de CodeBuild aceptan varios recursos (por ejemplo, BatchGetProjects). Para especificar varios recursos en una única instrucción, separe sus ARN con comas, tal y como se indica a continuación:

"Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject", "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject" ]

CodeBuild proporciona un conjunto de operaciones para trabajar con los recursos de CodeBuild. Para ver una lista, consulte AWS CodeBuildReferencia de permisos de .

Titularidad de los recursos

La cuenta de AWS es la propietaria de los recursos que se crean en ella, independientemente de quién los haya creado. En concreto, el propietario de los recursos es la cuenta de AWS de la entidad principal (es decir, la cuenta de usuario raíz, un usuario o un rol de IAM) que autentica la solicitud de creación de recursos. Los siguientes ejemplos ilustran cómo funciona:

  • Si utiliza las credenciales de cuenta de usuario raíz de su cuenta de AWS para crear una regla, la cuenta de AWS será la propietaria del recurso de CodeBuild.

  • Si crea un usuario en su cuenta de AWS y le concede permisos para crear recursos de CodeBuild, el usuario podrá crear recursos de CodeBuild. Sin embargo, su cuenta de AWS, a la que pertenece el usuario, será la propietaria de los recursos de CodeBuild.

  • Si crea un rol de IAM en su cuenta de AWS con permisos para crear recursos de CodeBuild, cualquier usuario que pueda asumir el rol podrá crear recursos de CodeBuild. La cuenta de AWS a la que pertenece el rol será la propietaria de los recursos de CodeBuild.

Administración del acceso a los recursos

Una política de permisos describe quién tiene acceso a qué recursos.

nota

En esta sección, se describe cómo se utiliza IAM en AWS CodeBuild. No se proporciona información detallada sobre el servicio de IAM. Para ver la documentación completa de IAM, consulte ¿Qué es IAM? en la Guía del usuario de IAM. Para obtener más información acerca de la sintaxis y las descripciones de las políticas del IAM, consulte Referencia de políticas de IAM de AWS en la Guía del usuario de IAM.

Las políticas que se asocian a una identidad de IAM se denominan políticas basadas en identidades (o políticas de IAM). Las políticas que se adjuntan a un recurso se denominan políticas basadas en recursos. CodeBuild es compatible con las políticas basadas en la identidad y las políticas basadas en los recursos para determinadas API de solo lectura con el fin de compartir recursos entre cuentas.

Acceso seguro a los buckets de S3

Le recomendamos encarecidamente que incluya los siguientes permisos en el rol de IAM para verificar que el bucket de S3 asociado al proyecto de es de su propiedad o es propiedad de una persona de confianza. Estos permisos no se incluyen en los roles y las políticas administradas de AWS. Debe agregarlos usted.

  • s3:GetBucketAcl

  • s3:GetBucketLocation

Si cambia el propietario de un bucket de S3 que se utiliza en el proyecto, debe asegurarse de que usted sigue siendo el propietario del bucket y, si no es así, actualizar los permisos en el rol de rol de IAM. Para obtener más información, consulte Cómo permitir que los usuarios interactúen con CodeBuild y Cómo permitir que CodeBuild interactúe con otros servicios de AWS.

Especificar elementos de la política: acciones, efectos y entidades principales

Para cada recurso de AWS CodeBuild, el servicio define un conjunto de operaciones de API. Para conceder permisos para estas operaciones de API, CodeBuild define un conjunto de acciones que usted puede especificar en una política. Algunas operaciones de API pueden requerir permisos para más de una acción para poder realizar la operación de API. Para obtener más información, consulte AWS CodeBuildRecursos y operaciones de y AWS CodeBuildReferencia de permisos de .

A continuación, se indican los elementos básicos de la política:

  • Recurso: use un Nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política.

  • Acción: use palabras de clave de acción para identificar las operaciones del recurso que desea permitir o denegar. Por ejemplo, el permiso codebuild:CreateProject concede al usuario permiso para realizar la operación CreateProject.

  • Efecto: especifique el efecto (permitir o denegar) cuando el usuario solicite la acción específica. Si no concede acceso de forma explícita (permitir) a un recurso, el acceso se deniega implícitamente. También puede denegar explícitamente el acceso a un recurso. Puede hacer esto para asegurarse de que un usuario no pueda tener acceso a un recurso, aunque otra política le otorgue acceso.

  • Entidad principal: en las políticas basadas en identidades (políticas de IAM), el usuario al que se asocia esta política es la entidad principal implícita. Para las políticas basadas en recursos, debe especificar el usuario, cuenta, servicio u otra entidad que desee que reciba permisos.

Para obtener más información sobre la sintaxis y descripciones de las políticas de IAM, consulte Referencia de la política de IAM de AWS en la Guía del usuario de IAM.

Para ver una tabla con todas las acciones de API de CodeBuild y los recursos a los que se aplican, consulte AWS CodeBuildReferencia de permisos de .