

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.

# Solución de problemas de políticas de control de servicios (SCPs) con AWS Organizations
<a name="org_troubleshoot_policies"></a>

Utilice la información que aparece aquí para ayudarle a diagnosticar y corregir los errores comunes que se encuentran en las políticas de control de servicios (SCPs).

Las políticas de control de servicios (SCPs) AWS Organizations son similares a las políticas de IAM y comparten una sintaxis común. Esta sintaxis comienza con las reglas de la [notación de JavaScript objetos](http://www.json.org) (JSON). JSON describe un *objeto* con pares de nombre y valor que componen el objeto. La [gramática de las políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-grammar.html) se basa en la definición de nombres y valores que tengan significado y puedan ser entendidos por los Servicios de AWS que usan políticas para conceder permisos.

AWS Organizations utiliza un subconjunto de la sintaxis y la gramática de IAM. Para obtener más información, consulte [Sintaxis de SCP](orgs_manage_policies_scps_syntax.md).

**Topics**
+ [Más de un objeto de política](#morethanonepolicyblock)
+ [Más de un elemento Statement](#morethanonestatement)
+ [El documento de política supera el tamaño máximo](#scptoolong)

## Más de un objeto de política
<a name="morethanonepolicyblock"></a>

Una SCP debe constar de uno y un solo objeto JSON. Los objetos se indican incluyéndolos en llaves \$1 \$1. Aunque puede anidar otros objetos dentro de un objeto JSON añadiendo llaves (\$1\$1) adicionales en el par exterior, una política solo puede contener un par exterior de llaves \$1 \$1. El ejemplo siguiente es ***incorrecto*** porque contiene dos objetos en el nivel superior (denominados «in*red*»):

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}
```

------

Sin embargo, podría satisfacer la intención del ejemplo anterior con el uso de la gramática de políticas correcta. En lugar de incluir dos objetos de política completos, cada uno con su propio elemento `Statement`, puede combinar los dos bloques en un único elemento `Statement`. El elemento `Statement` tiene una matriz de dos objetos como su valor, tal y como se muestra en el ejemplo siguiente: 

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}
```

Este ejemplo no se puede comprimir en una instrucción `Statement` con un solo elemento, porque los dos elementos tienen efectos diferentes. Por lo general, solo puede combinar instrucciones cuando los elementos `Effect` y `Resource` de cada instrucción sean idénticos.

## Más de un elemento Statement
<a name="morethanonestatement"></a>

Este error podría parecer a simple vista una variante del error de la sección anterior. Sin embargo, es un tipo de error diferente desde el punto de vista sintáctico. En el siguiente ejemplo, solo hay un objeto de política indicado por un único par de llaves \$1 \$1 en el nivel superior. Sin embargo, ese objeto contiene dos elementos `Statement` en su interior.

Una SCP debe contener solo un elemento `Statement`, que consta del nombre (`Statement`) que aparece a la izquierda de un carácter de punto y coma, seguido de su valor a la derecha. El valor de un elemento `Statement` debe ser un objeto, identificado por llaves \$1 \$1, que contiene un elemento `Effect`, un elemento `Action` y un elemento `Resource`. El siguiente ejemplo es ***incorrecto*** porque contiene dos elementos `Statement` en el objeto de política:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}
```

------

Como un objeto de valor puede ser una matriz de varios objetos de valor, puede resolver este problema combinando los dos elementos `Statement` en un elemento con una matriz de objetos, tal y como se muestra en el ejemplo siguiente:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource":"*"
    },
    {
      "Effect": "Deny",
      "Action": "s3:*",
      "Resource": "*"
    }
 ]
}
```

------

El valor del elemento `Statement` es una matriz de objetos. La matriz del ejemplo se compone de dos objetos, cada uno de los cuales es un valor correcto para un elemento `Statement`. Cada objeto de la matriz está separado por comas. 

## El documento de política supera el tamaño máximo
<a name="scptoolong"></a>

El tamaño máximo de un documento de SCP es 5120 bytes. Este tamaño máximo incluye todos los caracteres, incluido el espacio en blanco. Para reducir el tamaño de su SCP, puede eliminar todos los caracteres de espacio en blanco (como espacios y saltos de línea) que estén fuera de las comillas. 

**nota**  
Si guarda la política utilizando el Consola de administración de AWS, los espacios en blanco adicionales entre los elementos JSON y fuera de las comillas se eliminan y no se cuentan. Si guardas la política mediante una operación del SDK o la AWS CLI, la política se guardará exactamente como la proporcionaste y no se eliminarán automáticamente los caracteres.