

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas de políticas de controle de serviço (SCPs) com AWS Organizations
<a name="org_troubleshoot_policies"></a>

Use as informações aqui para ajudá-lo a diagnosticar e corrigir erros comuns encontrados nas políticas de controle de serviço (SCPs).

As políticas de controle de serviço (SCPs) em AWS Organizations são semelhantes às políticas do IAM e compartilham uma sintaxe comum. Essa sintaxe começa com as regras da [Notação de JavaScript Objetos](http://www.json.org) (JSON). JSON descreve um *objeto* com pares de nome e valor que compõem o objeto. A [gramática da política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-grammar.html) aproveita isso, definindo os nomes e valores, que têm significado e são compreendidos pelos Serviços da AWS que usam políticas para conceder permissões.

AWS Organizations usa um subconjunto da sintaxe e gramática do IAM. Para obter detalhes, consulte [Sintaxe de SCP](orgs_manage_policies_scps_syntax.md).

**Topics**
+ [Mais de um objeto de política](#morethanonepolicyblock)
+ [Mais de um elemento de declaração](#morethanonestatement)
+ [O documento da política excedeu o tamanho máximo](#scptoolong)

## Mais de um objeto de política
<a name="morethanonepolicyblock"></a>

Uma SCP deve conter apenas um único objeto JSON. Você denota um objeto colocando chaves \$1 \$1 em torno. Embora você possa aninhar outros objetos dentro de um objeto JSON incorporando \$1 \$1 adicionais dentro do par de chaves externas, uma política pode conter apenas um par mais externo de \$1 \$1 chaves. O exemplo a seguir está ***incorreto*** porque contém dois objetos no nível superior (indicados em*red*):

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

****  

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

------

No entanto, você pode atender a intenção do exemplo anterior com o uso de gramática correta da política. Em vez de incluir dois objetos de política completos, cada um com seu próprio elemento `Statement`, você pode combinar dois blocos em um único elemento `Statement`. O elemento `Statement` tem um conjunto de dois objetos como seu valor, como mostrado no exemplo a seguir: 

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

Esse exemplo não pode ser mais compactado em um `Statement` com um elemento, porque os dois elementos têm diferentes efeitos. Em geral, você pode combinar instruções apenas quando os elementos `Effect` e `Resource` em cada instrução forem idênticos.

## Mais de um elemento de declaração
<a name="morethanonestatement"></a>

À primeira vista, esse erro pode parecer uma variação do erro na seção anterior. No entanto, sintaticamente é um tipo diferente de erro. No exemplo a seguir, há somente um objeto de política, como indicado por um único par de \$1 \$1 chaves no nível superior. No entanto, esse objeto contém dois elementos `Statement` dentro de si.

Uma SCP deve conter apenas um elemento `Statement`, que inclui o nome (`Statement`) que aparece à esquerda do sinal de dois pontos, seguido pelo valor à direita. O valor de um elemento `Statement` deve ser um objeto, denotado por chaves \$1 \$1, contendo um elemento `Effect`, um elemento `Action` e um elemento `Resource`. O exemplo a seguir é ***incorreto***, pois contém dois elementos `Statement` no objeto da política:

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

****  

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

------

Como um objeto de valor pode ser um conjunto de vários objetos de valor, você pode resolver esse problema combinando os dois elementos `Statement` em um único elemento com uma matriz de objetos, como mostrado no exemplo a seguir:

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

****  

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

------

O valor do elemento `Statement` é uma matriz de objetos. A matriz no exemplo consiste em dois objetos, sendo que cada um deles é um valor correto para um elemento `Statement`. Cada objeto na matriz é separado por vírgulas. 

## O documento da política excedeu o tamanho máximo
<a name="scptoolong"></a>

O tamanho máximo de um documento de SCP é de 5.120 caracteres. Este tamanho máximo inclui todos os caracteres, também os espaços em branco. Para reduzir o tamanho da SCP, você poderá remover todos os caracteres de espaço em branco (como espaços e quebras de linha) que estão fora das aspas. 

**nota**  
Se você salvar a política usando o Console de gerenciamento da AWS, o espaço em branco extra entre os elementos JSON e fora das aspas será removido e não contado. Se você salvar a política usando uma operação do SDK ou a AWS CLI, a política será salva exatamente como você forneceu e nenhuma remoção automática de caracteres ocorrerá.