Uso de etiquetas para controlar el acceso a los recursos de AWS CodeBuild - 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.

Uso de etiquetas para controlar el acceso a los recursos de AWS CodeBuild

Las condiciones de las declaraciones de IAM política forman parte de la sintaxis que se puede utilizar para especificar los permisos para las acciones CodeBuild basadas en proyectos. Puede crear una política que permita o deniegue acciones en los proyectos en función de las etiquetas asociadas a esos proyectos y, a continuación, aplicar esas políticas a los IAM grupos que configure para administrar los usuarios. Para obtener información sobre cómo aplicar etiquetas a un proyecto mediante la consola o AWS CLI, consulteCreación de un proyecto de compilación en AWS CodeBuild. Para obtener información sobre cómo aplicar etiquetas mediante el CodeBuild SDK, consulte CreateProject Etiquetas en la CodeBuildAPIreferencia. Para obtener información sobre el uso de etiquetas para controlar el acceso a AWS los recursos, consulte Control del acceso a AWS los recursos mediante etiquetas de recursos en la Guía del IAM usuario.

importante

Al utilizar la función de capacidad reservada, otros proyectos de la misma cuenta pueden acceder a los datos almacenados en caché en las instancias de la flota, incluidos los archivos fuente, las capas de Docker y los directorios en caché especificados en la especificación de construcción. Esto se debe a su diseño y permite que los proyectos de la misma cuenta compartan instancias de flota.

ejemplo Ejemplo 1: Limite las acciones CodeBuild del proyecto en función de las etiquetas de recursos

En el ejemplo siguiente, se deniegan todas las acciones BatchGetProjects en los proyectos etiquetados con la clave Environment y el valor de clave Production. El administrador de un usuario debe adjuntar esta IAM política, además de la política de usuarios gestionados, a los usuarios no autorizados. La clave de condición aws:ResourceTag se utiliza para controlar el acceso a los recursos en función de sus etiquetas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
ejemplo Ejemplo 2: Limite las acciones CodeBuild del proyecto en función de las etiquetas de solicitud

La siguiente política deniega a los usuarios el permiso para la acción CreateProject si la solicitud contiene una etiqueta con la clave Environment y el valor de clave Production. Además, la política impide que estos usuarios no autorizados puedan modificar los proyectos utilizando la clave de condición aws:TagKeys y no permite UpdateProject si la solicitud contiene una etiqueta con la clave Environment. El administrador debe adjuntar esta IAM política, además de la política de usuarios gestionados, a los usuarios que no estén autorizados a realizar estas acciones. La clave de aws:RequestTag condición se usa para controlar qué etiquetas se pueden transferir en una IAM solicitud

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:CreateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Environment": "Production" } } }, { "Effect": "Deny", "Action": [ "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Environment"] } } } ] }
ejemplo Ejemplo 3: denegar o permitir acciones en grupos de informes en función de etiquetas de recursos

Puede crear una política que permita o deniegue acciones en CodeBuild los recursos (proyectos y grupos de informes) en función de las AWS etiquetas asociadas a esos recursos y, a continuación, aplicar esas políticas a los IAM grupos que configure para administrar los usuarios. Por ejemplo, puede crear una política que deniegue todas CodeBuild las acciones en cualquier grupo de informes con la clave de AWS etiqueta Status y el valor clave de ySecret, a continuación, aplicar esa política al IAM grupo que creó para desarrolladores generales (Developers). Luego debes asegurarte de que los desarrolladores que trabajan en esos grupos de informes etiquetados no sean miembros de ese grupo general Developers grupo, sino que pertenecen a un IAM grupo diferente al que no se ha aplicado la política restrictiva (SecretDevelopers).

El siguiente ejemplo deniega todas CodeBuild las acciones en los grupos de informes etiquetados con la clave Status y el valor de clave deSecret:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : [ "codebuild:BatchGetReportGroups," "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ] "Resource" : "*", "Condition" : { "StringEquals" : "aws:ResourceTag/Status": "Secret" } } ] }
ejemplo Ejemplo 4: Limitar CodeBuild las acciones AWSCodeBuildDeveloperAccess a las etiquetas de recursos

Puede crear políticas que permitan CodeBuild realizar acciones en todos los grupos de informes y proyectos que no estén etiquetados con etiquetas específicas. Por ejemplo, la siguiente política permite el equivalente de permisos AWSCodeBuildDeveloperAccess para todos los grupos de informes y proyectos excepto los etiquetados con las etiquetas especificadas:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Status": "Secret", "aws:ResourceTag/Team": "Saanvi" } } } ] }