Ejemplo de SCP para etiquetar recursos - AWS Organizations

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.

Ejemplo de SCP para etiquetar recursos

Requerir una etiqueta en los recursos creados especificados

La siguiente SCP impide que los usuarios y roles de IAM en las cuentas afectadas creen ciertos tipos de recursos si la solicitud no incluye las etiquetas especificadas.

importante

Recuerde probar las políticas basadas en denegación con los servicios que utiliza en su entorno. El siguiente ejemplo es un simple bloque de creación de secretos sin etiquetar o ejecución de instancias de Amazon EC2 sin etiquetar, y no incluye ninguna excepción.

La siguiente política de ejemplo no es compatible con AWS CloudFormation como está escrito, porque ese servicio crea un secreto y luego lo etiqueta como dos pasos separados. Esta política de ejemplo bloquea eficazmente AWS CloudFormation de crear un secreto como parte de una pila, porque tal acción resultaría, aunque brevemente, en un secreto que no está etiquetado como sea necesario.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCreateSecretWithNoProjectTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyRunInstanceWithNoProjectTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/Project": "true" } } }, { "Sid": "DenyCreateSecretWithNoCostCenterTag", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } }, { "Sid": "DenyRunInstanceWithNoCostCenterTag", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "Null": { "aws:RequestTag/CostCenter": "true" } } } ] }

Para obtener una lista de todos los servicios y las acciones que se admiten tanto en las SCP de AWS Organizations como en las políticas de permisos de IAM, consulte Acciones, recursos y claves de condición para servicios de AWS en la Guía del usuario.

Impedir que las etiquetas se modifiquen excepto por entidades autorizadas

El siguiente SCP muestra cómo una política puede permitir que solo los principales autorizados modifiquen las etiquetas adjuntas a los recursos. Esto es una parte importante del uso del control de acceso basado en atributos (ABAC) como parte de su estrategia de seguridad en la nube AWS. La política permite al autor de la llamada modificar las etiquetas solo en aquellos recursos donde la etiqueta de autorización (en este ejemplo, access-project) coincide exactamente con la misma etiqueta de autorización adjunta al usuario o rol de que realiza la solicitud. La política también impide que el usuario autorizado cambie el valor de la etiqueta que se utiliza para la autorización. El principal de llamada debe tener la etiqueta de autorización para realizar cualquier cambio.

Esta política solo impide que los usuarios no autorizados cambien las etiquetas. Un usuario autorizado que no esté bloqueado por esta política debe seguir teniendo una política del IAM independiente que otorgue explícitamente el permiso Allow en las API de etiquetado pertinentes. Por ejemplo, si el usuario tiene una política de administrador con Allow */* (permitir todos los servicios y todas las operaciones), entonces la combinación da como resultado que el usuario administrador pueda cambiar solamente aquellas etiquetas que tienen un valor de etiqueta de autorización que coincide con el valor de etiqueta de autorización adjunto a la entidad principal del usuario. Esto se debe a que el Deny explícito en esta política anula el Allow explícito en la política de administrador.

importante

Esta no es una solución de política completa y no debe usarse como se muestra aquí. Este ejemplo solo pretende ilustrar parte de una estrategia ABAC y debe personalizarse y probarse para entornos de producción.

Para obtener la política completa con un análisis detallado de cómo funciona, consulte Proteger las etiquetas de recursos utilizadas para la autorización mediante una política de control de servicios enAWS Organizations

Recuerde probar las políticas basadas en denegación con los servicios que utiliza en su entorno.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyModifyTagsIfResAuthzTagAndPrinTagDontMatch", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "ec2:ResourceTag/access-project": "${aws:PrincipalTag/access-project}", "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "Null": { "ec2:ResourceTag/access-project": false } } }, { "Sid": "DenyModifyResAuthzTagIfPrinTagDontMatch", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "aws:RequestTag/access-project": "${aws:PrincipalTag/access-project}", "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "ForAnyValue:StringEquals": { "aws:TagKeys": [ "access-project" ] } } }, { "Sid": "DenyModifyTagsIfPrinTagNotExists", "Effect": "Deny", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:role/org-admins/iam-admin" }, "Null": { "aws:PrincipalTag/access-project": true } } } ] }