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 CodePipeline los recursos
Las condiciones de las declaraciones de IAM política forman parte de la sintaxis que se utiliza para especificar los permisos a los recursos que requieren las CodePipeline acciones. El uso de etiquetas en las condiciones es una manera de controlar el acceso a los recursos y las solicitudes. Para obtener información sobre el etiquetado de CodePipeline recursos, consulteEtiquetado de recursos. En este tema, se explica el control de acceso basado en etiquetas.
Al diseñar IAM políticas, es posible que esté configurando permisos granulares al conceder acceso a recursos específicos. A medida que crezca la cantidad de recursos que administra, esta tarea será más complicada. El etiquetado de recursos y uso de etiquetas en las condiciones de instrucción de política pueden facilitar esta tarea. Puede conceder acceso de forma masiva a cualquier recurso con una determinada etiqueta. A continuación, aplique repetidamente esta etiqueta a los recursos pertinentes durante la creación o después.
Las etiquetas se pueden asociar al recurso o pasarse dentro de la solicitud a los servicios que admiten etiquetado. En CodePipeline, los recursos pueden tener etiquetas y algunas acciones pueden incluirlas. Al crear una IAM política, puede usar las claves de condición de las etiquetas para controlar:
-
Qué usuarios pueden realizar acciones en un recurso de canalización, basándose en las etiquetas que ya tiene.
-
Qué etiquetas se pueden pasar en la solicitud de una acción.
-
Si se pueden utilizar claves de etiqueta específicas en una solicitud.
Los operadores de condición de cadena le permiten desarrollar elementos Condition
que restringen el acceso comparando una clave con el valor de una cadena. Puede agregar IfExists
al final de cualquier nombre de operador de condición, salvo la condición Null. El objetivo es decir lo siguiente: “Si la clave de la política está presente en el contexto de la solicitud, se debe procesar la clave según se indica en la política. Si la clave no está presente, el elemento de condición se evalúa en verdadero". Por ejemplo, puede utilizar StringEqualsIfExists
para restringir por condiciones las claves que podrían no estar presentes en otros tipos de recursos.
Para la sintaxis y semántica completas de claves de condición de etiquetas, consulte Control de acceso mediante etiquetas. Para obtener información adicional acerca de las claves de condición, consulte los siguientes recursos. Los ejemplos CodePipeline de políticas de esta sección se ajustan a la siguiente información sobre las claves de condición y la amplían con ejemplos de matices CodePipeline , como la anidación de recursos.
Los siguientes ejemplos muestran cómo especificar las condiciones de las etiquetas en las políticas para CodePipeline los usuarios.
ejemplo 1: Limitar acciones en función de etiquetas en la solicitud
La política de usuarios AWSCodePipeline_FullAccess
administrados otorga a los usuarios permisos ilimitados para realizar cualquier CodePipeline acción en cualquier recurso.
La política siguiente limita esta capacidad y deniega los usuarios no autorizados el permiso para crear canalizaciones donde las etiquetas especificas se incluyen en la solicitud. Para ello, deniega la acción CreatePipeline
si la solicitud especifica una etiqueta denominada Project
con uno de los valores ProjectA
o ProjectB
. (La clave de aws:RequestTag
condición se usa para controlar qué etiquetas se pueden pasar en una IAM solicitud).
En el siguiente ejemplo, la intención de la política es denegar a los usuarios no autorizados el permiso para crear una canalización con los valores de etiqueta especificados. Sin embargo, la creación de una canalización requiere acceder a los recursos además de a la propia canalización (por ejemplo, a las acciones y etapas de la canalización). Como lo 'Resource'
especificado en la política es'*'
, la política se evalúa en función de cada recurso que tenga una canalización ARN y se cree al crear la canalización. Estos recursos adicionales no tienen la clave de condición de etiqueta, por lo que la comprobación StringEquals
da un error y no se concede al usuario la capacidad para lanzar cualquier tipo de instancia. Para solucionar este problema, utilice en su lugar el operador de condición StringEqualsIfExists
. De esta forma, la prueba solo se realiza si la clave de condición existe.
Podría leer lo siguiente como: “Si el recurso que se está comprobando tiene una clave de condición "RequestTag/Project"
, deberá permitirse la acción solo si el valor de clave comienza por projectA
. Si el recurso que se está comprobando no tiene esta clave de condición, no deberá tenerse en cuenta”.
Además, la política impide que estos usuarios no autorizados manipulen los recursos utilizando la clave de condición aws:TagKeys
para no permitir que las acciones de modificación de etiquetas incluyan estos mismos valores de etiqueta. El administrador del cliente debe adjuntar esta IAM política a los usuarios administrativos no autorizados, además de la política de usuarios administrados.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codepipeline:CreatePipeline", "codepipeline:TagResource" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "aws:RequestTag/Project": ["ProjectA", "ProjectB"] } } }, { "Effect": "Deny", "Action": [ "codepipeline:UntagResource" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }
ejemplo 2: Limitar acciones en función de etiquetas de recursos
La política de usuarios AWSCodePipeline_FullAccess
administrados otorga a los usuarios permisos ilimitados para realizar cualquier CodePipeline acción en cualquier recurso.
La siguiente política limita esta capacidad y deniega a los usuarios no autorizados el permiso para realizar acciones en canalizaciones específicas del proyecto. Para ello, deniega algunas acciones si el recurso tiene una etiqueta denominada Project
con el valor ProjectA
o ProjectB
. (La clave de condición aws:ResourceTag
se utiliza para controlar el acceso a los recursos en función de las etiquetas que tengan los recursos). El administrador del cliente debe adjuntar esta IAM política a IAM los usuarios no autorizados, además de la política de usuarios administrados.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codepipeline:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": ["ProjectA", "ProjectB"] } } } ] }
ejemplo 3: Permitir acciones en función de etiquetas en la solicitud
La siguiente política otorga a los usuarios permiso para crear procesos de desarrollo en CodePipeline.
Para ello, permite las acciones CreatePipeline
y TagResource
si la solicitud especifica una etiqueta denominada Project
con el valor ProjectA
. En otras palabras, la única clave de etiqueta que se puede especificar esProject
, y su valor debe serProjectA
.
La clave de aws:RequestTag
condición se usa para controlar qué etiquetas se pueden transferir en una IAM solicitud. La condición aws:TagKeys
garantiza la distinción entre mayúsculas y minúsculas de las claves de etiqueta. Esta política es útil para los usuarios o roles que no tienen asociada la política de usuario administrada AWSCodePipeline_FullAccess
. La política administrada otorga a los usuarios permisos ilimitados para realizar cualquier CodePipeline acción en cualquier recurso.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:CreatePipeline", "codepipeline:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/Project": "ProjectA" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }
ejemplo 4: Limitar acciones en función de etiquetas de recursos
La política de usuarios AWSCodePipeline_FullAccess
administrados otorga a los usuarios permisos ilimitados para realizar cualquier CodePipeline acción en cualquier recurso.
La siguiente política limita esta capacidad y deniega a los usuarios no autorizados el permiso para realizar acciones en canalizaciones específicas del proyecto. Para ello, deniega algunas acciones si el recurso tiene una etiqueta denominada Project
con el valor ProjectA
o ProjectB
.
Además, la política impide que estos usuarios no autorizados manipulen los recursos al utilizar la clave de condición aws:TagKeys
que no permite que las acciones de modificación de etiquetas incluyan estos mismos valores de etiquetas ni eliminen por completo la etiqueta Project
. El administrador del cliente debe adjuntar esta IAM política a los usuarios o roles no autorizados, además de la política de usuarios administrados.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codepipeline:UntagResource" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }