Todos os produtos
Search
Central de documentação

Resource Access Management:Estrutura e sintaxe de políticas

Última atualização: Jun 26, 2026

Uma política do Resource Access Management (RAM) é um documento JSON que define permissões. Este tópico explica a estrutura da política e a sintaxe de seus elementos.

Estrutura da política

Uma política do RAM tem dois elementos de nível superior: Version e Statement.

Elemento

Obrigatório

Descrição

Version

Sim

Versão da linguagem de política. O único valor válido é "1".

Statement

Sim

Lista com uma ou mais declarações de permissão. Cada declaração define as ações permitidas ou negadas nos respectivos recursos.

Cada objeto Statement contém os seguintes elementos:

Elemento

Obrigatório

Formato

Descrição

Effect

Sim

"Allow" ou "Deny"

Indica se a declaração concede ou nega acesso.

Action ou NotAction

Sim

"service:ActionName" ou ["service:ActionName", ...]

Operações de API abrangidas pela declaração. Use Action para listar explicitamente as operações permitidas ou negadas. Utilize NotAction com "Effect": "Allow" para conceder acesso a tudo, exceto às operações listadas. Esse recurso funciona como um atalho para subtrair itens de um curinga (*). NotAction não equivale a "Effect": "Deny": a negação bloqueia o acesso mesmo quando outra declaração o concede, enquanto NotAction apenas restringe o escopo do efeito.

Resource

Sim

"resource_arn" ou ["resource_arn", ...]

Recursos aos quais a declaração se aplica. Use "*" para corresponder a todos os recursos.

Condition

Não

{ "Operator": { "ConditionKey": "ConditionValue" } }

Restrições necessárias para que a declaração tenha efeito.

image

O exemplo a seguir mostra a estrutura básica de uma política com uma única declaração:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "service:ActionName",
            "Resource": "resource_arn",
            "Condition": {
                "Operator": {
                    "ConditionKey": "ConditionValue"
                }
            }
        }
    ]
}

Regras gerais de sintaxe

  • Formato JSON: As políticas devem estar em JSON válido. Nomes de elementos (como Effect), operadores e valores predefinidos diferenciam maiúsculas de minúsculas e devem estar entre aspas duplas (").

  • Valor único ou array: Elementos que aceitam múltiplos valores, como Action e Resource, podem ser uma única string ou um array de strings. Ambas as formas abaixo são válidas:

    "Action": "ecs:DescribeInstances"
    
    "Action": [
        "ecs:DescribeInstances",
        "ecs:StopInstance"
    ]
  • Curingas: Utilize curingas nos valores de Action e Resource para corresponder a vários alvos:

    • O asterisco (*) corresponde a zero ou mais caracteres. Por exemplo, ecs:Describe* corresponde a todas as ações do ECS que começam com Describe.

    • O ponto de interrogação (?) corresponde a qualquer caractere único.

Definição formal da sintaxe

A gramática a seguir, no estilo Backus-Naur Form (BNF), fornece a definição formal da linguagem de política.

Convenções de notação

Símbolo

Significado

< >

Regra gramatical (não terminal). Substituída pela definição da regra.

=

Define uma regra gramatical.

( )

Agrupa alternativas.

`

`

Separa alternativas. Escolha uma.

[ ]

Array (lista JSON). Não é opcional.

? após um elemento

Indica que o elemento é opcional.

" "

String literal exibida na política exatamente como escrita.

policy  = {
     <version_block>,
     <statement_block>
}
<version_block> = "Version" : ("1")
<statement_block> = "Statement" : [ <statement>, <statement>, ... ]
<statement> = { 
    <effect_block>,
    <action_block>,
    <resource_block>,
    <condition_block?>
}
<effect_block> = "Effect" : ("Allow" | "Deny")  
<action_block> = "Action" | "NotAction" : 
    ("*" | <action_string> | [<action_string>, <action_string>, ...])
<resource_block> = "Resource" : 
    ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])
<condition_block> = "Condition" : <condition_map>
<condition_map> = {
  <condition_type_string> : { 
      <condition_key_string> : <condition_value_list>,
      <condition_key_string> : <condition_value_list>,
      ...
  },
  <condition_type_string> : {
      <condition_key_string> : <condition_value_list>,
      <condition_key_string> : <condition_value_list>,
      ...
  }, ...
}  
<condition_value_list> = (<condition_value> | [<condition_value>, <condition_value>, ...])
<condition_value> = ("String" | "Number" | "Boolean" | "Date and time" | "IP address")

Referências