Sintaxe de SCP - AWS Organizations

Sintaxe de SCP

As políticas de controle de serviço (SCPs) usam uma sintaxe muito semelhante à usada pelas políticas de permissão do AWS Identity and Access Management (IAM) e políticas com base em recursos (como políticas de bucket do Amazon S3). Para obter mais informações sobre as políticas do IAM e sua sintaxe, consulte Visão geral das políticas do IAM no Guia do usuário do IAM.

Uma SCP é um arquivo de texto sem formatação estruturado de acordo com as regras do JSON. Ela usa os elementos que são descritos neste tópico.

nota

Todos os caracteres em sua conta de SCP contam em relação ao seu tamanho máximo. Os exemplos deste guia mostram as SCPs formatadas com espaço em branco adicional para melhorar a legibilidade. No entanto, para economizar espaço quando o tamanho da política se aproximar do tamanho máximo, é possível excluir todos os espaços em branco, como caracteres de espaço e quebras de linhas, que estiverem fora das aspas.

Para obter informações gerais sobre SCPs, consulte Políticas de controle de serviço (SCPs).

Resumo de elementos

A seguinte tabela resume os elementos de políticas que você pode usar em SCPs. Alguns elementos de políticas estão disponíveis apenas em SCPs que negam ações. A coluna Supported effects (Efeitos com suporte) lista o tipo de efeito que você pode usar com cada elemento de política em SCPs.

Elemento Finalidade Efeitos com suporte
Versão Especifica as regras da sintaxe da linguagem a serem usadas para processar a política.

Allow, Deny

Instrução Serve como o contêiner para elementos de políticas. Você pode ter várias instruções em SCPs. Allow, Deny
ID da instrução (Sid) (Opcional) Fornece um nome amigável para a instrução. Allow, Deny
Efeito Define se a instrução da SCP permite ou nega o acesso principal a usuários e funções do IAM em uma conta. Allow, Deny

Ação

Especifica os serviço e ações da AWS que a SCP permite ou nega.

Allow, Deny

NotAction

Especifica os serviço e ações da AWS que não se aplicam à SCP. Usado em vez do elemento Action.

Deny

Recurso Especifica os recursos da AWS ao quais a SCP se aplica. Deny
Condição Especifica as condições em que a instrução está em vigor. Deny

As seguintes seções oferecem mais informações e exemplos de como os elementos de políticas são usados em SCPs.

Elemento Version

Cada SCP deve incluir um elemento Version com o valor "2012-10-17". Este é o mesmo valor da versão mais recente das políticas de permissão do IAM.

"Version": "2012-10-17",

Para obter mais informações, consulte Elementos de política JSON do IAM: versão no Guia do usuário do IAM.

Elemento Statement

Uma SCP consiste em um ou mais elementos Statement. Você pode ter apenas uma palavra-chave Statement em uma política, mas o valor pode ser uma matriz JSON de instruções (entre os caracteres []).

O exemplo a seguir mostra uma única instrução que consiste em elementos Effect, Action e Resource únicos.

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

O exemplo a seguir inclui duas instruções como uma lista de matrizes dentro de um elemento Statement. A primeira instrução permite todas as ações, enquanto a segunda nega todas as ações do EC2. O resultado é que um administrador da conta pode delegar qualquer permissão, exceto as do Amazon Elastic Compute Cloud (Amazon EC2).

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

Para obter mais informações, consulte Elementos de política JSON do IAM: instrução no Guia do usuário do IAM.

Elemento ID da instrução (Sid)

O Sid é um identificador opcional que você fornece para a instrução da política. Você pode atribuir um valor Sid a cada instrução em uma matriz de instruções. A seguinte SCP de exemplo mostra uma instrução Sid.

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

Para obter mais informações, consulte Elementos de política JSON do IAM: Id no Guia do usuário do IAM.

Elemento Effect

Cada instrução deve conter um elemento Effect. O valor pode ser Allow ou Deny. Isso afeta todas as ações listadas na mesma instrução.

Para obter mais informações, consulte Elementos de política JSON do IAM: efeito no Guia do usuário do IAM.

"Effect": "Allow"

O seguinte exemplo mostra uma SCP com uma instrução que contém um elemento Effect com um valor de Allow que permite que os usuários da conta executem ações para o serviço Amazon S3. Esse exemplo é útil em uma organização que usa a estratégia de lista de permissões (em que todas as políticas de FullAWSAccess padrão são desvinculadas para que as permissões sejam implicitamente negadas por padrão). O resultado é que a instrução permite as permissões do Amazon S3 para todas as contas anexadas:

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

Embora ele use a mesma palavra-chave de valor Allow como uma política de permissões do IAM, em uma SCP, ele na realidade não concede permissões a um usuário para fazer alguma coisa. Em vez disso, as SCPs agem como filtros que especificam o máximo de permissões para as contas em uma organização, unidade organizacional (UO) ou conta. No exemplo anterior, mesmo que um usuário na conta tivesse a política gerenciada AdministratorAccess anexada, a SCP limitaria todos os usuários na conta para apenas ações do Amazon S3.

"Effect": "Deny"

Em uma instrução em que o elemento Effect tem um valor de Deny, você também pode restringir o acesso a recursos específicos ou definir condições para quando SCPs estiverem em vigor.

A seguinte tabela mostra um exemplo de como usar uma chave de condição em uma instrução de negação.

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

Essa instrução em uma SCP define uma proteção para impedir que as contas afetadas (em que a SCP é anexada à própria conta ou à raiz ou UO da organização que contém a conta) executem instâncias do Amazon EC2 se a instância do Amazon EC2 não estiver definida como t2.micro. Mesmo que uma política do IAM que permite essa ação seja anexada à conta, a proteção criada pela SCP impedirá isso.

Elementos Action e NotAction

Cada instrução deve conter um dos seguintes:

  • Em instruções de permissão ou de negação, um elemento Action.

  • Em instruções de negação apenas (em que o valor do elemento Effect é Deny), um elemento Action ou NotAction.

O valor do elemento Action ou NotAction é uma lista (uma matriz JSON) de strings que identificam serviços e ações da AWS que são permitidos ou negados pela instrução.

Cada string consiste na abreviação do serviço (como "s3", "ec2", "iam" ou "organizations"), tudo em letras minúsculas, seguida por um ponto e vírgula e uma ação desse serviço. As ações e não ações diferenciam maiúsculas de minúsculas e devem ser digitadas conforme mostrado na documentação de cada serviço. Em geral, todas elas são digitadas com cada palavra começando com uma letra maiúscula e o restante em minúsculas. Por exemplo: "s3:ListAllMyBuckets".

Você também pode usar caracteres curinga, como asterisco (*) ou ponto de interrogação (?) em uma SCP:

  • Você também pode usar um asterisco como um curinga para corresponder a várias ações que compartilham parte de um nome. O valor "s3:*" significa todas as ações no serviço Amazon S3. O valor de "ec2:Describe*" corresponde apenas às ações do EC2 que começam com "Describe".

  • Use o curinga ponto de interrogação (?) para corresponder a um único caractere.

nota

Em uma SCP, os caracteres curinga (*) e (?) em um elemento Action ou NotAction só pode ser usado sozinho ou no final da string. Ele não pode aparecer no início nem no meio da string. Portanto, "servicename:action*" é válido, mas "servicename:*action" e "servicename:some*action" são inválidos em SCPs.

Para obter uma lista de todos os serviços e ações aos quais oferecem suporte em SCPs do AWS Organizations e em políticas de permissões do IAM, consulte Ações, recursos e chaves de condições para serviços da AWS no Guia do usuário do IAM.

Para obter mais informações, consulte Elementos da política JSON do IAM: Action e Elementos da política JSON do IAM: NotAction no Guia do usuário do IAM.

Exemplo do elemento Action

O seguinte exemplo mostra uma SCP com uma instrução que permite que os administradores de contas deleguem permissões para descrever, iniciar, interromper e encerrar a instâncias do EC2 na conta. Este é um exemplo de uma lista de permissões e é útil quando as políticas Allow * padrão não são anexadas, para que, por padrão, as permissões sejam implicitamente negadas. Se a política Allow * padrão ainda estiver anexada à raiz, à UO ou à conta à qual a política a seguir está anexada, a política não terá efeito.

{ "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": "*" } }

O exemplo a seguir mostra como é possível negar o acesso a serviços que você não deseja que sejam usados em contas anexadas. Ele pressupõe que as SCPs "Allow *" padrão ainda estejam anexadas a todas as UOs e à raiz. Esse exemplo de política impede que os administradores de contas anexadas deleguem permissões para os serviços IAM, Amazon EC2 e Amazon RDS . Qualquer ação de outros serviços pode ser delegada, desde que não haja outra política anexada que a negue.

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

Exemplo do elemento NotAction

O exemplo a seguir mostra como usar um elemento NotAction para excluir serviços da AWS do efeito da política.

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

Com essa instrução, as contas afetadas são limitadas a executar ações na Região da AWS especificada, exceto ao usar ações do IAM.

Elemento Resource

Em instruções em que o elemento Effect tem um valor de Allow, você pode especificar apenas "*" no elemento Resource de uma SCP. Você não pode especificar nomes de recursos da Amazon (ARNs) individuais.

Você também pode usar caracteres curinga, como asterisco (*) ou ponto de interrogação (?) no elemento de recurso:

  • Você também pode usar um asterisco como um curinga para corresponder a várias ações que compartilham parte de um nome.

  • Use o curinga ponto de interrogação (?) para corresponder a um único caractere.

Em instruções em que o elemento Effect tem um valor de Deny, você pode especificar ARNs individuais, conforme mostrado no seguinte exemplo.

{ "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 que as entidades principais do IAM em contas façam alterações em uma função administrativa comum do IAM criada em todas as contas em sua organização.

Para obter mais informações, consulte Elementos da política JSON do IAM: recurso no Guia do usuário do IAM.

Elemento Condition

Você pode especificar um elemento Condition em instruções de negação em uma SCP.

{ "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" ] } } } ] }

Esta SCP nega acesso a todas as operações fora das regiões eu-central-1 e eu-west-1, exceto para ações nos serviços listados.

Para obter mais informações, consulte Elementos de política JSON do IAM: condição no Guia do usuário do IAM.

Elementos sem suporte

Os seguintes elementos não são compatíveis em SCPs:

  • Principal

  • NotPrincipal

  • NotResource