Sintaxis de las políticas SCP - AWS Organizations

Sintaxis de las políticas SCP

Las políticas de control de servicios (SCP) utilizan una sintaxis similar a la que se usa en las políticas de permisos de AWS Identity and Access Management (IAM) y en las políticas basadas en recursos (como las políticas de bucket de Amazon S3). Para obtener más información sobre las políticas del IAM y su sintaxis, consulte Información general de las políticas deI AM en la Guía del usuario IAM.

Una política SCP es un archivo de texto sin formato estructurado de acuerdo con las reglas JSON. Utiliza los elementos que se describen en este tema.

nota

Todos los caracteres de la SCP se contabilizan para calcular su tamaño máximo. Los ejemplos que aparecen en esta guía muestran los SCP formateados con espacios en blanco adicionales para mejorar su legibilidad. Sin embargo, para ahorrar espacio si el tamaño de la política se aproxima al tamaño máximo, puede eliminar todos los espacios en blanco, como espacios y saltos de línea, que estén fuera de las comillas.

Para obtener información general sobre las SCP, consulte Políticas de control de servicios (SCP).

Resumen de elementos

En la tabla siguiente se resumen los elementos de política que se pueden usar en las SCP. Algunos elementos de política solo están disponibles en las SCP que deniegan acciones. En la columna Efectos admitidos se enumera los tipos de efectos que se pueden usar con cada elemento de política en las SCP.

Elemento Finalidad Efectos admitidos

Acción

Especifica los servicios y acciones de AWS que la SCP permite o deniega.

Allow, Deny

Efecto Define si la instrucción SCP permite o deniega el acceso a los usuarios y roles IAM en una cuenta.

Allow, Deny

Instrucción Sirve como contenedor de elementos de política. Una SCP puede contener varias instrucciones.

Allow, Deny

Statement ID (Sid) (ID de instrucción) (Opcional) Proporciona un nombre fácil de recordar para la instrucción.

Allow, Deny

Versión Especifica las reglas de sintaxis del lenguaje que se utilizarán para procesar la política.

Allow, Deny

Condición Especifica las condiciones que determinan cuándo se aplica la instrucción.

Allow,Deny

NotAction

Especifica los servicios y acciones de AWS que quedan exentos de la SCP. Se utiliza en lugar del elemento Action.

Allow,Deny

Recurso Especifica los recursos de AWS a los que se aplica la SCP.

Allow,Deny

No Recurso Especifica los recursos de AWS que quedan exentos de la SCP. Se utiliza en lugar del elemento Resource.

Allow, Deny

En las secciones siguientes se proporcionan más información y ejemplos sobre cómo usar los elementos de política en las SCP.

Elementos Action y NotAction

El valor del elemento Action o NotAction es una lista (una matriz JSON) de cadenas que identifican los servicios y acciones de AWS que la instrucción permite o deniega.

Cada cadena consta de la abreviatura del servicio (como "s3", "ec2", "iam" u "organizaciones"), en letras minúsculas, seguida de un carácter de punto y coma y una acción de ese servicio. Las acciones y las acciones excluidas no distinguen entre mayúsculas y minúsculas. Por lo general, todas deben especificarse con cada palabra con la inicial en mayúsculas y el resto en minúsculas. Por ejemplo: "s3:ListAllMyBuckets".

También puede utilizar caracteres comodín tales como el asterisco (*) o el signo de interrogación de cierre (?) en una SCP:

  • Utilice un asterisco (*) como carácter comodín como representación de varias acciones que comparten parte de un nombre. El valor "s3:*" significa todas las acciones del servicio Amazon S3. El valor "ec2:Describe*" coincide solo con las acciones de EC2 que empiezan por "Describe".

  • Utilice el carácter comodín del signo de interrogación de cierre (?) como representación de un carácter único.

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.

Para obtener más información, consulte Elementos de la política de JSON de IAM: Action y Elementos de la política de JSON de IAM: NotAction en la Guía del usuario de IAM.

Ejemplo de elemento Action

El siguiente ejemplo muestra una política SCP con una instrucción que permite a los administradores de la cuenta delegar los permisos describe, start, stop y terminate para las instancias EC2 de la cuenta. Este es un ejemplo de una lista de permitidos, y es útil cuando las políticas Allow * predeterminadas no se asocian para que, de forma predeterminada, los permisos sean denegados implícitamente. Si la política Allow * predeterminada sigue estando asociada al nodo raíz, unidad organizativa o cuenta a la que la siguiente política está asociada, entonces la política no tiene ningún efecto.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } }

El siguiente ejemplo muestra cómo puede denegar el acceso a servicios que no desea usar en cuentas asociadas. Se asume que las políticas SCP "Allow *" predeterminadas siguen estando asociadas a las unidades organizativas y al nodo raíz. Esta política de ejemplo impide que los administradores de las cuentas asociadas deleguen permisos para los servicios de IAM, Amazon EC2 y Amazon RDS. Cualquier acción desde otros servicios se puede delegar siempre y cuando no exista otra política asociada que la deniegue.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "iam:*", "ec2:*", "rds:*" ], "Resource": "*" } }

Ejemplo de elemento NotAction

En el ejemplo siguiente se muestra cómo puede utilizar un elemento NotAction para excluir servicios de AWS del efecto de la política.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "LimitActionsInRegion", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "us-west-1" } } } ] }

Con esta instrucción, las cuentas afectadas se limitan a realizar acciones en la Región de AWS especificada, excepto cuando se usan acciones de IAM.

ConditionElemento

Puede especificar un elemento Condition en las instrucciones de Allow y Deny de una SCP.

El siguiente ejemplo muestra cómo utilizar un elemento de condición con una instrucción Allow en una SCP para permitir que determinadas entidades principales accedan a los servicios de AWS.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowServicesForSpecificPrincipal", "Effect":"Allow", "Action":[ "ec2:*", "s3:*", "rds:*", "lambda:*", "cloudformation:*", "iam:*", "cloudwatch:*" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:PrincipalArn":[ "arn:aws:iam::123456789012:role/specific-role" ] } } } ] }

El siguiente ejemplo muestra cómo utilizar un elemento de condición con una instrucción Deny para restringir el acceso a cualquier operación fuera de las regiones eu-central-1 y eu-west-1, excepto a las acciones en los servicios especificados.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] } } } ] }

Para obtener más información, consulte Elementos de la política de JSON de IAM: Condición en la Guía del usuario de IAM.

EffectElemento

Cada instrucción debe contener un elemento Effect. El valor puede ser Allow o Deny. Afecta a las acciones enumeradas en la misma instrucción.

Para obtener más información, consulte Elemento de la política de JSON de IAM: Efecto en la Guía del usuario IAM.

"Effect": "Allow"

En el siguiente ejemplo se muestra una SCP con una instrucción que contiene un elemento Effect con un valor de Allow que permite a los usuarios de la cuenta realizar acciones para el servicio Amazon S3. Este ejemplo es útil en una organización que usa la estrategia de permitidos (donde las políticas FullAWSAccess predeterminadas estén desasociadas y, por tanto, los permisos se deniegan implícitamente de forma predeterminada). El resultado es que la instrucción permite los permisos de Amazon S3 en cualquier cuenta asociada:

{ "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } }

Tenga en cuenta que aunque esta instrucción utiliza la misma palabra clave con el valor Allow que en una política de permisos de IAM, las SCP no conceden en realidad permisos de usuario. En lugar de ello, las SCP actúan como filtros que especifican el máximo de permisos para las cuentas de una organización, unidad organizativa (OU) o cuenta. En el ejemplo anterior, aunque un usuario de la cuenta tuviera la política AdministratorAccess administrada asociada, esta SCP limita las acciones de todos los usuarios de la cuenta afectada a solo las acciones de Amazon S3.

"Effect": "Deny"

En una instrucción cuyo elemento Effect tiene el valor Deny, también puede restringir el acceso a recursos específicos o definir condiciones que determinen cuándo se aplicará la SCP.

A continuación, se muestra un ejemplo de cómo utilizar una clave de condición en una instrucción de denegación.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "t2.micro" } } } }

Esta instrucción de una SCP establece una medida de seguridad para evitar que las cuentas afectadas (cuando la SCP se adjunte a la propia cuenta o al nodo raíz de la organización o unidad organizativa que contiene la cuenta) lancen instancias Amazon EC2 si estas instancias Amazon EC2 no están establecidas en t2.micro. Aunque se adjunte a la cuenta una política de IAM que permita esta acción, la medida de seguridad creada por la SCP la impedirá.

Elemento Resource y NotResource

En las instrucciones cuyo elemento Effect tiene el valor Allow, puede especificar solamente "*" en el elemento Resource de una SCP. No puede especificar los nombres de recurso de Amazon (ARN) de los recursos individuales.

Puede utilizar caracteres comodín tales como el asterisco (*) o el signo de interrogación de cierre (?) en el elemento de recurso:

  • Utilice un asterisco (*) como carácter comodín como representación de varias acciones que comparten parte de un nombre.

  • Utilice el carácter comodín del signo de interrogación de cierre (?) como representación de un carácter único.

En las instrucciones cuyo elemento Effect tiene el valor Deny, puede especificar ARN individuales, como se muestra en el ejemplo siguiente.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyAccessToAdminRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/role-to-deny" ] } ] }

Esta SCP restringe a las cuentas de usuarios y roles IAM para que no puedan realizar cambios en un rol de IAM administrativo común creado en todas las cuentas de la organización.

En el siguiente ejemplo se muestra cómo puede utilizar un elemento NotResource para excluir Amazon Bedrock del efecto de la política.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Statement1", "Effect":"Deny", "Action":[ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "NotResource":[ "arn:aws:bedrock:*::foundation-model/model-to-permit" ] } ] }

Para obtener más información, consulte Elemento de la política de JSON de IAM: Resource en la Guía del usuario de IAM.

StatementElemento

Una política SCP consta de uno o varios elementos Statement. Solo puede tener una palabra clave Statement en una política, pero el valor puede ser una matriz de instrucciones JSON (rodeadas por caracteres [ ]).

El siguiente ejemplo muestra una única instrucción que consta de los elementos Effect, Action y Resource.

"Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" }

El siguiente ejemplo incluye dos instrucciones como una lista de matriz dentro de un elemento Statement. La primera instrucción permite todas las acciones, mientras que la segunda deniega todas las acciones de EC2. El resultado es que el administrador de la cuenta puede delegar cualquier permiso, excepto los de Amazon Elastic Compute Cloud (Amazon EC2):

"Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "*" } ]

Para obtener más información, consulte Elementos de la política de JSON de IAM: Instrucción en la Guía del usuario de IAM.

Elemento de ID de instrucción (Sid)

El elemento Sid es un identificador opcional que se proporciona para la instrucción de la política. Puede asignar un valor de Sid a cada instrucción de una matriz de instrucciones. En el siguiente ejemplo de SCP se incluye una instrucción Sid de muestra.

{ "Statement": { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" } }

Para obtener más información, consulte Elementos de la política de JSON de IAM: ID en la Guía del usuario de IAM.

VersionElemento

Todas las SCP deben incluir un elemento Version con el valor "2012-10-17". Este es el mismo valor de versión que la versión más reciente de las políticas de permisos de IAM.

Para obtener más información, consulte Elementos de la política de JSON de IAM: Versión en la Guía del usuario de IAM.

Elementos no compatibles

Los siguientes elementos no son compatibles con las SCP:

  • NotPrincipal

  • Principal