

# Referência de política JSON do IAM
<a name="reference_policies"></a>

Esta seção apresenta sintaxe detalhada, descrições e exemplos dos elementos, variáveis e lógica de avaliação de políticas de JSON no IAM. Para obter mais informações gerais, consulte [Visão geral das políticas de JSON](access_policies.md#access_policies-json).

Esta referência inclui as seções a seguir.
+  [Referência de elemento de política JSON do IAM](reference_policies_elements.md): saiba mais sobre os elementos que você pode usar ao criar uma política. Veja exemplos adicionais de políticas e saiba mais sobre condições, tipos de dados suportados e como eles são usados em vários serviços. 
+ [Lógica da avaliação de política](reference_policies_evaluation-logic.md) – essa seção descreve solicitações da AWS, como elas são autenticadas e como a AWS usa políticas para determinar o acesso a recursos. 
+ [Gramática da linguagem das políticas de JSON do IAM](reference_policies_grammar.md): essa seção apresenta uma gramática formal para a linguagem usada para criar políticas no IAM.
+ [AWSPolíticas gerenciadas pela para funções de trabalho](access_policies_job-functions.md) – essa seção lista todas as políticas gerenciadas da AWS que são mapeadas diretamente para funções de trabalho comuns no setor de TI. Use essas políticas para facilmente conceder as permissões necessárias para executar as tarefas esperadas de alguém com determinada função de trabalho. Essas políticas consolidam permissões para vários serviços em uma única política.
+ [AWSChaves de contexto de condições globais da](reference_policies_condition-keys.md): esta seção inclui uma lista de todas as chaves de condição globais da AWS que você pode usar para limitar permissões em uma política do IAM.
+ [Chaves de contexto de condição do IAM e do AWS STS](reference_policies_iam-condition-keys.md): esta seção inclui uma lista de todas as chaves de condição do IAM e do AWS STS que você pode usar para limitar permissões em uma política do IAM.
+ [Ações, recursos e chaves de condição para produtos da AWSServiços](reference_policies_actions-resources-contextkeys.html): esta seção apresenta uma lista de todas as operações de API da AWS que você pode usar como permissões em uma política do IAM. Também inclui as chaves de condição específicas que podem ser usadas para refinar a solicitação.

# Referência de elemento de política JSON do IAM
<a name="reference_policies_elements"></a>

Documentos de política JSON são compostos de elementos. Os elementos são listados aqui na ordem geral em que são usados em uma política. A ordem dos elementos não importa, por exemplo, o elemento `Resource` pode vir antes do elemento `Action`. Não é necessário especificar todos os elementos `Condition` da política. Para saber mais sobre a estrutura e a finalidade gerais de um documento de política JSON, consulte [Visão geral das políticas de JSON](access_policies.md#access_policies-json).

Alguns elementos de política JSON são mutuamente exclusivos. Isso significa que você não pode criar uma política que usa ambos. Por exemplo, você não pode usar `Action` e `NotAction` na mesma instrução de política. Outros pares que são mutuamente exclusivos incluem `Principal`/`NotPrincipal` e `Resource`/`NotResource`. 

Os detalhes do que entra em uma política variam para cada serviço, dependendo de quais ações o serviço disponibiliza, que tipos de recursos ele contém e assim por diante. Quando você estiver gravando políticas para um serviço específico, é útil ver exemplos de políticas para esse serviço. Para obter uma lista de todos os serviços compatíveis com o IAM e links para a documentação desses serviços que discute o IAM e políticas, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).

 Quando você cria ou edita uma política JSON, o IAM pode executar a validação de políticas para ajudar você a criar uma política eficaz. O IAM identifica erros de sintaxe JSON, enquanto o IAM Access Analyzer fornece verificações de políticas adicionais com recomendações para ajudar você a refinar ainda mais suas políticas. Para saber mais sobre validação de política, consulte [Validação de política do IAM](access_policies_policy-validator.md). Para saber mais sobre as verificações de política do IAM Access Analyzer e as recomendações práticas, consulte [Validação de política do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

**Topics**
+ [Version](reference_policies_elements_version.md)
+ [Id](reference_policies_elements_id.md)
+ [Statement](reference_policies_elements_statement.md)
+ [Sid](reference_policies_elements_sid.md)
+ [Effect](reference_policies_elements_effect.md)
+ [Principal](reference_policies_elements_principal.md)
+ [NotPrincipal](reference_policies_elements_notprincipal.md)
+ [Action](reference_policies_elements_action.md)
+ [NotAction](reference_policies_elements_notaction.md)
+ [Resource](reference_policies_elements_resource.md)
+ [NotResource](reference_policies_elements_notresource.md)
+ [Condition](reference_policies_elements_condition.md)
+ [Variáveis e tags](reference_policies_variables.md)
+ [Tipos de dados compatíveis](reference_policies_elements_datatypes.md)

# Elementos de política JSON do IAM: Version
<a name="reference_policies_elements_version"></a>

**Nota de desambiguação**  
O elemento de política JSON `Version` é diferente de uma *versão de política*. O elemento de política `Version` é usado em uma política e define a versão da linguagem da política. A versão da política, por outro lado, é criada quando você faz alterações em uma política gerenciada pelo cliente no IAM. A política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. Se você estava procurando informações sobre o suporte a várias versões disponível para políticas gerenciadas, consulte [Versionamento de políticas do IAM](access_policies_managed-versioning.md).

O elemento de política `Version` especifica as regras de sintaxe de linguagem que devem ser usadas para processar uma política. Para usar todos os recursos de política disponíveis, inclua o elemento `Version` a seguir **fora** do elemento `Statement` em todas as suas políticas.

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

****  

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

------

O IAM oferece suporte aos seguintes valores do elemento `Version`:
+ `2012-10-17`. Esta é a versão atual da linguagem da política e você deve sempre incluir um elemento `Version` e defini-lo como `2012-10-17`. Caso contrário, você não poderá usar recursos, como variáveis de [política](reference_policies_variables.md), que foram introduzidos com esta versão.
+ `2008-10-17`. Esta é uma versão anterior da linguagem da política. Talvez você veja essa versão em antigas políticas existentes. Não use essa versão para as políticas novas ou quando você atualizar alguma política existente. Recursos mais recentes, como variáveis de política, não funcionarão com a sua política. Por exemplo, as variáveis como `${aws:username}` não serão reconhecidas como variáveis e serão tratadas como strings literais na política.

# Elementos de política JSON do IAM: Id
<a name="reference_policies_elements_id"></a>

O elemento `Id` especifica um identificador opcional para a política. O ID é usado de forma diferente em diferentes serviços. O ID  é permitido em políticas baseadas em recursos, mas não em políticas baseadas em identidades.

Para serviços que permitem que você defina um elemento `ID`, recomendamos que você use um UUID (GUID) para o valor ou que incorpore um UUID como parte do ID para garantir a exclusividade. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

**nota**  
Alguns produtos da AWS (por exemplo, Amazon SQS ou Amazon SNS) podem exigir este elemento e possuem requisitos de exclusividade para ele. Para obter informações específicas do serviço sobre a gravação de políticas, consulte a documentação para o serviço com o qual você está trabalhando.

# Elementos de política JSON do IAM: Statement
<a name="reference_policies_elements_statement"></a>

O elemento `Statement` é o principal elemento de uma política. Este elemento é obrigatório. O elemento `Statement` pode conter uma única instrução ou uma matriz de instruções individuais. Cada bloco de instrução individual deve ser colocado entre chaves \$1 \$1. Para várias instruções, a matriz deve estar entre colchetes [ ].

```
"Statement": [{...},{...},{...}]
```

O exemplo a seguir mostra uma política que contém uma matriz de três instruções dentro de um único elemento `Statement`. (A política permite que você acesse sua própria “pasta base” no console do Amazon S3.) A política inclui a variável `aws:username`, que é substituída durante a avaliação da política pelo nome de usuário da solicitação. Para obter mais informações, consulte [Introdução](reference_policies_variables.md#policy-vars-intro). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {"StringLike": {"s3:prefix": [
        "",
        "home/",
        "home/${aws:username}/"
      ]}}
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```

------

# Elementos de política JSON do IAM: Sid
<a name="reference_policies_elements_sid"></a>

É possível fornecer um `Sid` (ID de instrução) como identificador opcional para a instrução da política. Você pode atribuir um valor `Sid` a cada instrução em uma matriz de instruções. Você pode usar o valor `Sid` como uma descrição para a instrução de política. Em serviços que permitem que você especifique um elemento `ID`, como o SQS e o SNS, o valor `Sid` é apenas um subID do ID do documento de política. No IAM, o valor `Sid` deve ser exclusivo em uma política JSON.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExampleStatementID",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

O elemento `Sid` é compatível com letras maiúsculas ASCII (A-Z), letras minúsculas (a-z) e números (0-9). 

O IAM não expõe o `Sid` na API do IAM. Você não pode recuperar uma instrução específica com base neste ID.

**nota**  
Alguns produtos da AWS (por exemplo, Amazon SQS ou Amazon SNS) podem exigir este elemento e possuem requisitos de exclusividade para ele. Para obter informações específicas do serviço sobre a gravação de políticas, consulte a documentação do serviço com o qual você está trabalhando.

# Elementos de política JSON do IAM: Effect
<a name="reference_policies_elements_effect"></a>

O elemento `Effect` é obrigatório e especifica se a instrução resulta em uma permissão ou uma negação explícita. Os valores válidos para `Effect` são `Allow` e `Deny`. O valor `Effect` diferencia maiúsculas de minúsculas. 

```
"Effect":"Allow"
```

Por padrão, o acesso aos recursos é negado. Para permitir o acesso a um recurso, você deve definir o elemento `Effect` como `Allow`. Para substituir uma permissão (por exemplo, para substituir uma permissão que está em vigor), você define o elemento `Effect` como `Deny`. Para obter mais informações, consulte [Lógica da avaliação de política](reference_policies_evaluation-logic.md).

# Elementos da política JSON da AWS: Principal
<a name="reference_policies_elements_principal"></a>

Use o elemento `Principal` em uma política JSON baseada em recursos para especificar a entidade principal cujo acesso a um recurso é permitido ou negado. 

Você pode usar o elemento `Principal` em [políticas baseadas em recursos](access_policies_identity-vs-resource.md). Vários serviços suportam políticas baseadas em recursos, inclusive o IAM. O tipo de política do IAM baseada em recursos é uma política de confiança em função. Nas funções do IAM, use o elemento `Principal` na política de confiança em função para especificar quem pode assumir a função. Para o acesso entre contas, você deve especificar o identificador de 12 dígitos da conta confiável. Para saber se as entidades de contas fora de sua zona de confiança (organização confiável ou conta) têm acesso para assumir as suas funções, consulte [O que é o IAM Access Analyzer?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

**nota**  
Depois de criar a função, você pode alterar a conta para "\$1" a fim de permitir que todas as pessoas assumam a função. Se você fizer isso, recomendamos que você limite quem pode acessar a função através de outros meios, tal como um elemento `Condition` que limita o acesso somente a determinados endereços IP. Não deixe a função acessível a todos\$1

Outros exemplos de recursos que dão suporte a políticas baseadas em recursos incluem um bucket do Amazon S3 ou uma AWS KMS key.

Você não pode usar o elemento `Principal` em uma política baseada em identidade. As políticas baseadas em identidade são políticas de permissões que você anexa a identidades do IAM (usuários, grupos ou funções). Nesses casos, a entidade principal é implicitamente a identidade à qual a política está anexada.

**Topics**
+ [Como especificar uma entidade principal](#Principal_specifying)
+ [Entidades principais da Conta da AWS](#principal-accounts)
+ [Entidades de segurança de função do IAM](#principal-roles)
+ [Entidades principais da sessão de função](#principal-role-session)
+ [Entidades principais federadas OIDC](#principal-federated-web-identity)
+ [Entidades principais federadas SAML](#principal-saml)
+ [Entidades principais de usuário do IAM](#principal-users)
+ [Entidades principais do Centro de identidade do IAM](#principal-identity-users)
+ [Entidades principais federadas do AWS STS](#sts-session-principals)
+ [AWSResponsáveis pelos serviços da](#principal-services)
+ [Entidades principais de serviço da AWS nas regiões de aceitação](#principal-services-in-opt-in-regions)
+ [Todas as entidades principais](#principal-anonymous)
+ [Mais informações](#Principal_more-info)

## Como especificar uma entidade principal
<a name="Principal_specifying"></a>

Você especifica uma entidade principal no elemento `Principal` de uma política baseada em recursos ou em chaves de condição que dão suporte a entidades principais.

Você pode especificar qualquer um dos seguintes principais em uma política:
+ Conta da AWS e usuário raiz
+ Perfis do IAM
+ Sessões de função 
+ Usuários do IAM
+ Entidades principais federadas
+ AWSServiços da 
+ Todas as entidades principais

Não é possível identificar um grupo de usuários como entidade principal em uma política (como uma política baseada em recursos) porque os grupos são relacionados com permissões, não autenticação, e as entidades principais são entidades autenticadas do IAM.

Você pode especificar mais de uma entidade de segurança para cada um dos tipos de entidade de segurança nas seções a seguir usando uma matriz. As matrizes podem levar um ou mais valores. Ao especificar mais de uma entidade principal em um elemento, você concede permissões para cada entidade principal. Isso é um `OR` lógico e não um `AND` lógico, porque você autentica como uma entidade principal por vez. Se incluir mais de um valor, use colchetes (`[` e `]`) e delimite com vírgulas cada entrada da matriz. A política de exemplo a seguir define permissões para a conta 123456789012 ou para a conta 555555555555.

```
"Principal" : { 
"AWS": [ 
  "123456789012",
  "555555555555" 
  ]
}
```

**nota**  
Não é possível usar um curinga para fazer a correspondência de parte de um nome de entidade principal ou ARN. 

## Entidades principais da Conta da AWS
<a name="principal-accounts"></a>

Você pode especificar identificadores de Conta da AWS no elemento `Principal` de uma política baseada em recursos ou em chaves de condição que oferecem suporte a entidades principais. Isso delega autoridade para a conta. Quando você permite o acesso a uma conta diferente, um administrador nessa conta deve então conceder acesso a uma identidade (usuário ou função do IAM) nessa conta. Ao especificar uma Conta da AWS, você pode usar o ARN da conta (arn:aws:iam::*account-ID*:root), ou uma forma abreviada que consiste no prefixo `"AWS":` seguido pelo ID da conta.

Por exemplo, dado um ID da conta de `123456789012`, você pode usar um dos seguintes métodos para especificar essa conta no elemento `Principal`:

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

```
"Principal": { "AWS": "123456789012" }
```

O ARN da conta e o ID da conta abreviado têm comportamento semelhante. Ambos delegam permissões à conta. O uso do ARN da conta no elemento `Principal` não limita permissões apenas para o usuário raiz da conta. 

**nota**  
Quando você salva uma política baseada em recursos que inclui o ID abreviado da conta, o serviço pode convertê-lo no ARN da entidade principal. Isso não altera a funcionalidade da política.

Alguns serviços da AWS são compatíveis com opções adicionais para especificar uma conta do principal. Por exemplo, o Amazon S3 permite que você especifique um [ID de usuário canônico](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId) usando o seguinte formato:

```
"Principal": { "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }
```

Você também pode especificar mais de uma Conta da AWS (ou ID de usuário canônico) como uma entidade principal usando uma matriz. Por exemplo, você pode especificar uma entidade principal em uma política de bucket usando todos os três métodos.

```
"Principal": { 
  "AWS": [
    "arn:aws:iam::123456789012:root",
    "999999999999"
  ],
  "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
}
```

## Entidades de segurança de função do IAM
<a name="principal-roles"></a>

Você pode especificar ARNs de entidades principais de funções do IAM no elemento `Principal` de uma política baseada em recursos ou em chaves de condição que suportam entidades principais. As funções do IAM são identidades. No IAM, identidades são recursos aos quais você pode atribuir permissões. Funções confiam em outra identidade autenticada para assumir a respectiva função. Isso inclui uma entidade principal na AWS ou um usuário de um provedor de identidade externo (IdP). Quando uma entidade principal ou uma identidade assume uma função, ela recebe credenciais de segurança temporárias com as permissões da função assumida. Quando elas usam essas credenciais de sessão para executar operações na AWS, elas se tornam uma *entidade principal da sessão de função*.

Quando você especifica uma entidade principal de função em uma política baseada em recursos, as permissões efetivas para a entidade principal são limitadas por qualquer tipo de política que limite as permissões para a função. Isso inclui políticas de sessão e limites de permissões. Para mais informações sobre como as permissões efetivas de uma sessão de função são avaliadas, consulte [Lógica da avaliação de política](reference_policies_evaluation-logic.md).

Para especificar o ARN da função no elemento `Principal`, use o seguinte formato:

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:role/role-name" }
```

**Importante**  
Se o seu elemento `Principal` em uma política de confiança de perfil contiver um ARN que aponte para uma um perfil do IAM específico, esse ARN será transformado no ID exclusivo da entidade principal do perfil quando você salvar a política. Isso ajuda a reduzir o risco de alguém elevar seus privilégios ao remover e recriar a função. Normalmente, você não vê esse ID no console, porque o IAM utiliza uma transformação reversa de volta para o ARN de função quando a política de confiança é exibida. No entanto, se você excluir a função, a relação é interrompida. A política não se aplica mais, mesmo se você recriar a função, pois a nova função possui um novo ID principal que não corresponde ao ID armazenado na política de confiança. Quando isso acontece, o ID da entidade principal aparece nas políticas baseadas em recursos porque a AWS não pode mais mapeá-lo de volta para um ARN válido. O resultado final é que, se você excluir e recriar um perfil referenciado no elemento `Principal` de uma política de confiança, deverá editar o perfil na política para substituir o ID da entidade principal pelo ARN correto. O ARN se transforma novamente no novo ID da entidade principal da função quando você salva a política. Para obter mais informações, consulte [Understanding AWS's Handling of Deleted IAM roles in Policies](https://repost.aws/articles/ARSqFcxvd7R9u-gcFD9nmA5g/understanding-aws-s-handling-of-deleted-iam-roles-in-policies).

Como alternativa, você pode especificar a entidade principal da função como a entidade principal em uma política baseada em recurso ou [criar uma política de permissão ampla](#principal-anonymous) que use a chave de condição `aws:PrincipalArn`. Quando você usa essa chave, a entidade principal de sessão de função recebe as permissões com base no ARN da função assumida e não no ARN da sessão resultante. Como a AWS não converte ARNs da chave de condição em IDs, as permissões concedidas ao ARN da função persistirão se você excluir a função e criar uma nova função com o mesmo nome. Tipos de políticas baseadas em identidade, como limites de permissões ou políticas de sessão, não limitam as permissões concedidas usando a chave de condição `aws:PrincipalArn` com um curinga (\$1) no elemento `Principal`, a menos que as políticas baseadas em identidade contenham uma negação explícita.

## Entidades principais da sessão de função
<a name="principal-role-session"></a>

Você pode especificar sessões de função no elemento `Principal` de uma política baseada em recursos ou em chaves de condição que suportam entidades principais. Quando uma entidade principal ou uma identidade assume uma função, ela recebe credenciais de segurança temporárias com as permissões da função assumida. Quando elas usam essas credenciais de sessão para executar operações na AWS, elas se tornam uma *entidade principal da sessão de função*.

O formato que você usa para uma entidade principal da sessão de função depende da operação AWS STS que foi usada para assumir a função.

**Importante**  
A AWS recomenda usar [entidades principais de perfil do IAM](#principal-roles) em suas políticas, em vez de entidades principais de sessão de perfil, sempre que possível. Use instruções `Condition` e chaves de condição para reduzir ainda mais o acesso quando necessário.

Para especificar o ARN da entidade principal da sessão de perfil assumida no elemento `Principal`, use o seguinte formato:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:assumed-role/role-name/role-session-name" }
```

Além disso, os administradores podem projetar um processo para controlar como as sessões de função são emitidas. Por exemplo, eles podem fornecer uma solução de um clique para seus usuários que cria um nome de sessão previsível. Se o administrador fizer isso, você poderá usar as entidades principais da sessão de função em suas políticas ou chaves de condição. Caso contrário, você pode especificar o ARN do perfil como a entidade principal na chave de condição do `aws:PrincipalArn`. O modo como você especifica a função como entidade principal pode alterar as permissões efetivas para a sessão resultante. Para obter mais informações, consulte [Entidades de segurança de função do IAM](#principal-roles). 

## Entidades principais federadas OIDC
<a name="principal-federated-web-identity"></a>

Uma entidade principal federada do OIDC é a entidade principal usada ao chamar a API `AssumeRoleWithWebIdentity` do AWS STS com um token web JSON (JWT) de um IDP compatível com o OIDC, também conhecido como OpenID Provider (OP), para solicitar credenciais temporárias da AWS. Uma entidade principal federada do OIDC pode representar um IDP do OIDC em sua conta da AWS, ou os 4 provedores de identidade integrados: Login with Amazon, Google, Facebook, e [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html).

Usuários, workloads ou sistemas que receberam um JWT de seu IDP do OIDC podem chamar `AssumeRoleWithWebIdentity` usando o JWT para solicitar credenciais de segurança temporárias da AWS para um perfil do IAM configurado para confiar no IDP do OIDC que emitiu o JWT. O JWT pode ser um token de identificação, token de acesso ou um token JWT entregue por qualquer outro método, desde que atenda aos [requisitos listados pelo AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html#manage-oidc-provider-prerequisites). Para obter mais informações, consulte [Cenários comuns](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_federation_common_scenarios.html) e [Solicitar credenciais por meio de um provedor OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).

Use este tipo de entidade principal na política de confiança de seu perfil para permitir ou negar permissões de chamada `AssumeRoleWIthWebIdentity` usando um IDP do OIDC que existe ne sua Conta da AWS ou em um dos quatro IDPs integrados. Para especificar o ARN da entidade principal federada ao OIDC no elemento `Principal` de uma política de confiança de perfil, use um dos quatro formatos a seguir para os IDPs OIDC integrados:

```
"Principal": { "Federated": "cognito-identity.amazonaws.com" }
```

```
"Principal": { "Federated": "www.amazon.com" }
```

```
"Principal": { "Federated": "graph.facebook.com" }
```

```
"Principal": { "Federated": "accounts.google.com" }
```

Ao usar um provedor OIDC que você adiciona à sua conta, como o GitHub, você especifica o ARN do provedor na política de confiança da sua função. Essa configuração a você escrever políticas do IAM que controlam o acesso especificamente para usuários autenticados por meio de seu provedor de identidade personalizado.

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/full-OIDC-identity-provider-URL" }
```

Por exemplo, se GitHub for o provedor de identidade da Web confiável, o ARN da sessão do perfil do OIDC no elemento da `Principal` de uma política de confiança de perfil usará o seguinte formato:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/tokens.actions.githubusercontent.com" }
```

Consulte [Configurar o OpenID Connect na Amazon Web Services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) para obter mais informações.

As entidades principais federadas do OIDC não oferecem suporte a outros tipos de políticas além das políticas de confiança de funções.

## Entidades principais federadas SAML
<a name="principal-saml"></a>

Uma *entidade principal federada do SAML* é a entidade principal usada ao chamar a API `AssumeRoleWithSAML` do AWS STS para solicitar credenciais temporárias da AWS usando uma declaração do SAML. Você pode usar seu provedor de identidades (IdP) SAML para se conectar e assumir um perfil do IAM usando essa operação. Semelhante a `AssumeRoleWithWebIdentity`, `AssumeRoleWithSAML` não exige credenciais da AWS para autenticação. Em vez disso, primeiro, os usuários se autenticam com seu provedor de identidade SAML e fazem a chamada de API `AssumeRoleWithSAML` usando sua declaração SAML ou são redirecionados para a página de login/SAML da AWS para entrar no Console de gerenciamento da AWS. Para mais informações sobre quais entidades principais podem assumir uma função usando essa operação, consulte [Compare credenciais do AWS STS](id_credentials_sts-comparison.md).

Use este tipo de entidade principal em sua política de confiança de perfil para permitir ou negar permissões com base no provedor de identidade SAML confiável. Para especificar o ARN da sessão de perfil de identidade SAML no elemento `Principal` de uma política de confiança de perfil, use o seguinte formato:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:saml-provider/provider-name" }
```

## Entidades principais de usuário do IAM
<a name="principal-users"></a>

Você pode especificar usuários do IAM no elemento `Principal` de uma política baseada em recursos ou em chaves de condições que suportam entidades principais.

**nota**  
Em um elemento `Principal`, a parte do nome de usuário do [*nome do recurso da Amazon* (ARN)](reference_identifiers.md#identifiers-arns) diferencia maiúsculas e minúsculas.

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/user-name" }
```

```
"Principal": {
  "AWS": [
    "arn:aws:iam::AWS-account-ID:user/user-name-1", 
    "arn:aws:iam::AWS-account-ID:user/user-name-2"
  ]
}
```

Ao especificar usuários em um elemento `Principal`, você não pode usar um curinga (`*`) para se referir a "todos os usuários". Entidades principais sempre devem nomear usuários específicos. 

**Importante**  
Se o seu elemento `Principal` em uma política de confiança de função contiver um ARN que aponte para um usuário específico do IAM, o IAM transformará o ARN no ID exclusivo da entidade principal do usuário quando você salvar a política. Isso ajuda a reduzir o risco de alguém elevar seus privilégios ao remover e recriar o usuário. Normalmente, você não vê esse ID no console, pois há também uma transformação reversa de volta para o ARN do usuário quando a política de confiança é exibida. No entanto, se você excluir o usuário, a relação é interrompida. A política não se aplica mais, mesmo se você recriar o usuário. Isso porque o novo usuário tem um novo ID principal que não corresponde ao ID armazenado na política de confiança. Quando isso acontece, o ID da entidade principal aparece nas políticas baseadas em recursos porque a AWS não pode mais mapeá-lo de volta para um ARN válido. Como resultado, se você excluir e recriar um usuário mencionado no elemento `Principal` de uma política de confiança, você deve editar a função para substituir o agora incorreto ID da entidade principal pelo ARN correto. O IAM transformará novamente o ARN no novo ID da entidade principal do usuário quando você salvar a política.

## Entidades principais do Centro de identidade do IAM
<a name="principal-identity-users"></a>

No Centro de identidade do IAM, a entidade principal em uma política baseada em recursos deve ser definida como a entidade principal da Conta da AWS. Para especificar o acesso, faça referência ao ARN do perfil do conjunto de permissões no bloco de condições. Para obter detalhes, consulte [Referencing permission sets in resource policies, Amazon EKS, and AWS KMS](https://docs.aws.amazon.com/singlesignon/latest/userguide/referencingpermissionsets.html) no *Guia do usuário do Centro de identidade do IAM*.

## Entidades principais federadas do AWS STS
<a name="sts-session-principals"></a>

Você pode especificar *sessões de usuário federado* no elemento `Principal` de uma política baseada em recursos ou em chaves de condição que suportam entidades principais.

**Importante**  
A AWS recomenda que você limite o uso de sessões do usuário federado do AWS STS. Em vez disso, use os [perfis do IAM](IAM/latest/UserGuide/tutorial_cross-account-with-roles.html).

Uma entidade principal de usuário federado do AWS STS é criado por meio da operação chamada `GetFederationToken` com credenciais do IAM de longa duração. As permissões do usuário federado são a interseção da entidade principal que chamou `GetFederationToken` e das políticas de sessão passadas como parâmetros para a API `GetFederationToken`.

Na AWS, um Usuário raiz da conta da AWS ou usuários do IAM podem fazer autenticação usando chaves de acesso de longo prazo. Para mais informações sobre quais entidades principais podem fazer a federação usando essa operação, consulte [Compare credenciais do AWS STS](id_credentials_sts-comparison.md).
+ **Usuário federado do IAM**: um usuário do IAM se federa usando a operação `GetFederationToken`, que resulta em uma sessão de usuário federado para esse usuário do IAM.
+ **Usuário-raiz federado**: um usuário-raiz se federa usando a operação `GetFederationToken`, o que resulta em uma sessão de usuário federado para esse usuário-raiz.

Quando um usuário do IAM ou usuário raiz solicita credenciais temporárias do AWS STS usando essa operação, ele inicia uma sessão temporária de usuário federado. O ARN dessa sessão é baseado na identidade original que foi federada.

Para especificar o ARN da sessão de usuário federado no elemento `Principal`, use o seguinte formato:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:federated-user/user-name" }
```

## AWSResponsáveis pelos serviços da
<a name="principal-services"></a>

Você pode especificar serviços da AWS no elemento `Principal` de uma política baseada em recursos ou em chaves de condição que suportam entidades principais. Uma *entidade principal de serviço* é um identificador para um serviço. 

As funções do IAM que podem ser assumidas por um produto da AWS são chamadas de *[funções de serviço](id_roles.md#iam-term-service-role)*. As funções de serviço devem incluir uma política de confiança. *Políticas de confiança* são políticas baseadas em recursos anexadas a uma função que define quais entidades principais podem assumir a função. Algumas funções de serviço têm políticas de confiança predefinidas. No entanto, em alguns casos, você deve especificar o escopo principal do serviço na política de confiança. A entidade principal do serviço em uma política do IAM não pode ser `"Service": "*"`.

**Importante**  
O identificador de uma entidade principal de serviço inclui o nome do serviço e geralmente está no seguinte formato:  
`service-name.amazonaws.com`

O escopo principal do serviço é definido pelo serviço. É possível encontrar a entidade principal de serviço de alguns serviços abrindo [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md), verificando se o serviço tem um **Sim** na coluna **Perfil vinculado ao serviço** e abrindo o link de **Sim** para visualizar a documentação do perfil vinculado a esse serviço. Localize a seção **Service-Linked Role Permissions (Permissões da função vinculada ao serviço)** desse serviço para visualizar o principal do serviço.

O exemplo a seguir mostra uma política que pode ser anexada a uma função do serviço. A política permite que dois serviços, o Amazon ECS eo Elastic Load Balancing, assumam a função. Os serviços podem então realizar qualquer tarefa concedida pela política de permissões atribuída à função (não exibida). Para especificar vários principais de serviço, você não especifica dois elementos `Service`; pode ter apenas um. Em vez disso, você usa uma variedade de principais de serviços múltiplas como o valor de um único elemento `Service`.

```
"Principal": {
    "Service": [
        "ecs.amazonaws.com",
        "elasticloadbalancing.amazonaws.com"
   ]
}
```

## Entidades principais de serviço da AWS nas regiões de aceitação
<a name="principal-services-in-opt-in-regions"></a>

Você pode lançar recursos em várias regiões da AWS e em algumas dessas regiões pelas quais você deve optar. Para obter uma lista completa das regiões pelas quais você deve optar, consulte [Como gerenciar regiões da AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) no * guia Referência geral da AWS*.

Quando um serviço da AWS em uma região de aceitação faz uma solicitação dentro da mesma região, o formato do nome da entidade principal do serviço é identificado como a versão não regionalizada desse nome:

`service-name.amazonaws.com`

Quando um serviço da AWS em uma região de aceitação faz uma solicitação entre regiões para outra região, o formato do nome da entidade principal do serviço é identificado como a versão regionalizada desse nome:

`service-name.{region}.amazonaws.com`

Por exemplo, você tem um tópico do Amazon SNS localizado na região `ap-southeast-1` e um bucket do Amazon S3 localizado na região de aceitação `ap-east-1`. Você deseja configurar as notificações do bucket do S3 para publicar mensagens no tópico do SNS. Para permitir que o serviço S3 publique mensagens no tópico do SNS, você deve conceder à entidade principal do serviço S3 a permissão `sns:Publish` por meio da política de acesso baseada em recursos do tópico.

Se você especificar a versão não regionalizada da entidade principal do serviço S3, `s3.amazonaws.com`, na política de acesso do tópico, a solicitação `sns:Publish` do bucket para o tópico falhará. O exemplo a seguir especifica a entidade principal do serviço S3 não regionalizado no elemento de política `Principal` da política de acesso a tópicos do SNS.

```
"Principal": { "Service": "s3.amazonaws.com" }
```

Como o bucket está localizado em uma região de aceitação e a solicitação é feita fora dessa mesma região, a entidade principal do serviço S3 aparece como o nome da entidade principal do serviço regionalizado, `s3.ap-east-1.amazonaws.com`. Você deve usar o nome da entidade principal do serviço regionalizado quando um serviço da AWS em uma região de aceitação fizer uma solicitação para outra região. Depois de especificar o nome da entidade principal do serviço regionalizado, se o bucket fizer uma solicitação `sns:Publish` ao tópico do SNS localizado em outra região, a solicitação será bem-sucedida. O exemplo a seguir especifica a entidade principal do serviço regionalizado S3 no elemento de política `Principal` da política de acesso a tópicos do SNS.

```
"Principal": { "Service": "s3.ap-east-1.amazonaws.com" }
```

Políticas de recursos ou listas de permissões baseadas em entidades principais de serviços para solicitações entre regiões de uma região de aceitação para outra região só serão bem-sucedidas se você especificar o nome da entidade principal do serviço regionalizado.

**nota**  
Para políticas de confiança de perfis do IAM, recomendamos usar o nome da entidade principal do serviço não regionalizado. Os recursos do IAM são globais e, portanto, o mesmo perfil pode ser usado em qualquer região.

## Todas as entidades principais
<a name="principal-anonymous"></a>

É possível usar um curinga (\$1) para especificar todas as entidades principais no elemento `Principal` de uma política baseada em recursos ou em chaves de condições compatíveis com entidades principais. [Políticas baseadas em recursos](access_policies.md#policies_resource-based) *concedem* permissões e [chaves de condições](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) são usadas para limitar as condições de uma instrução de política.

**Importante**  
É muito recomendável que você não use um caractere curinga (\$1) no elemento `Principal` de uma política baseada em recursos com um efeito `Allow`, a menos que pretenda conceder acesso público ou anônimo. Caso contrário, especifique entidades principais, serviços ou contas da AWS no elemento `Principal` e depois restrinja ainda mais o acesso no elemento `Condition`. Isso é especialmente verdadeiro para políticas de confiança do perfil do IAM, porque permitem que outras entidades principais se tornem uma entidade principal em sua conta.

Para políticas baseadas em recursos, usar um caractere curinga (\$1) com um efeito `Allow` concede acesso a todos os usuários, incluindo usuários anônimos (acesso público). Para usuários do IAM e entidades principais de função dentro da sua conta, nenhuma outra permissão é necessária. Para entidades principais em outras contas, elas também devem ter permissões baseadas em identidade em suas contas que lhes permitam acessar seu recurso. Isso é chamado de [acesso entre contas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).

Para usuários anônimos, os seguintes elementos são equivalentes:

```
"Principal": "*"
```

```
"Principal" : { "AWS" : "*" }
```

Não é possível usar um curinga para fazer a correspondência de parte de um nome de entidade principal ou ARN.

O exemplo a seguir mostra uma política baseada em recurso que pode ser usada em vez de [Elementos da política JSON da AWS: NotPrincipal](reference_policies_elements_notprincipal.md) para negar explicitamente todas as entidades principais *exceto* as especificadas no elemento `Condition`. Essa política deve ser [adicionada a um bucket do Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/add-bucket-policy.html).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UsePrincipalArnInsteadOfNotPrincipalWithDeny",
      "Effect": "Deny",
      "Action": "s3:*",
      "Principal": "*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:user/user-name"
        }
      }
    }
  ]
}
```

------

## Mais informações
<a name="Principal_more-info"></a>

Para saber mais, consulte:
+ [Exemplos de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) no *Guia do usuário do Amazon Simple Storage Service*
+ [Exemplos de políticas do Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/UsingIAMwithSNS.html#ExamplePolicies_SNS) no *Guia do desenvolvedor do Amazon Simple Notification Service*
+ [Exemplos de políticas do Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) no *Guia do desenvolvedor do Amazon Simple Queue Service*
+ [Políticas de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) no *Guia do desenvolvedor do AWS Key Management Service*
+ [Identificadores de conta](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) no *Referência geral da AWS*
+ [Federação OIDC](id_roles_providers_oidc.md)

# Elementos da política JSON da AWS: NotPrincipal
<a name="reference_policies_elements_notprincipal"></a>

O elemento `NotPrincipal` usa `"Effect":"Deny"` para negar acesso a todas as entidades principais, ***exceto*** a entidade principal especificada no elemento `NotPrincipal`. Uma entidade principal pode ser um usuário do IAM, uma entidade principal de usuário federado do AWS STS, um perfil do IAM, uma sessão de perfil assumido, uma Conta da AWS, um serviço da AWS ou outro tipo de entidade principal. Para obter mais informações, sobre entidades principais, consulte [Elementos da política JSON da AWS: Principal](reference_policies_elements_principal.md).

`NotPrincipal` deve ser usado com `"Effect":"Deny"`. O uso de `"Effect":"Allow"` não é compatível. 

**Importante**  
Não recomendamos o uso de `NotPrincipal` para novas políticas baseadas em recursos como parte de sua estratégia de segurança e autorização. Quando você usa `NotPrincipal`, pode ser difícil solucionar os problemas causados por vários tipos de política. Em vez disso, recomendamos usar a chave de contexto `aws:PrincipalArn` com operadores de condição de ARN.

## Principais pontos
<a name="notprincipal-key-points"></a>
+ O elemento `NotPrincipal` é aceito em políticas baseadas em recursos para alguns serviços da AWS, incluindo endpoints da VPC. As políticas baseadas em recursos são políticas que você incorpora diretamente em um recurso. Não é possível usar o elemento `NotPrincipal` em uma política baseada em identidade do IAM ou em uma política de perfil do IAM de confiança.
+ Não use declarações de política baseadas em recursos que incluam um elemento de política `NotPrincipal` com um efeito `Deny` para usuários ou perfis do IAM que tenham uma política de limite de permissões anexada. O elemento `NotPrincipal` com um efeito `Deny` sempre negará qualquer entidade principal do IAM que tenha uma política de limite de permissões anexada, independentemente dos valores especificados no elemento `NotPrincipal`. Isso faz com que alguns usuários ou perfis do IAM que, de outra forma, teriam acesso ao recurso, percam o acesso. Recomendamos alterar suas declarações de política baseadas em recursos para usar o operador de condição [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) com a chave de contexto [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn) para limitar o acesso, em vez do elemento `NotPrincipal`. Para obter mais informações sobre esses limites de permissões, consulte [Limites de permissões para entidades do IAM](access_policies_boundaries.md).
+ Ao usar `NotPrincipal`, você também deve especificar o ARN da entidade principal não negada. Caso contrário, a política pode negar o acesso à conta por completo contendo o principal. Dependendo do serviço que você incluir em sua política, a AWS pode validar primeiro a conta e, em seguida, o usuário. Se um usuário de função assumida (alguém que esteja usando uma função) está sendo avaliado, AWS pode validar primeiro a conta, em seguida, a função e, por fim, o usuário de função assumida. O usuário de função assumida é identificado pelo nome de sessão da função, especificado quando ele assumiu a função. Portanto, é recomendável incluir explicitamente o ARN para uma conta de usuário, ou incluir o ARN para a função e o ARN para a conta que contém essa função.
+ O elemento `NotPrincipal` não é compatível com políticas de controle de serviços (SCP) e políticas de controle de recursos (RCP).

## Alternativas ao elemento `NotPrincipal`
<a name="notprincipal-alternatives"></a>

Ao gerenciar o controle de acesso em AWS, pode haver cenários em que talvez seja necessário negar explicitamente o acesso de todas as entidades principais a um recurso, exceto uma ou mais entidades principais que você especificar. A AWS recomenda o uso de uma instrução Deny com chaves de contexto de condição global para um controle mais preciso e uma solução de problemas mais fácil. Os exemplos a seguir mostram abordagens alternativas usando operadores de condição, como `StringNotEquals` ou `ArnNotEquals`, para negar acesso a todas as entidades principais, exceto aquelas especificadas no elemento Condition.

## Exemplo de cenário usando um perfil do IAM
<a name="notprincipal-alternative-role"></a>

É possível usar uma política baseada em recursos com uma instrução Deny para impedir que todos os perfis do IAM, exceto aqueles especificados no elemento Condition, acessem ou manipulem seus recursos. Essa abordagem segue o princípio de segurança da AWS em que uma negação explícita sempre tem precedência sobre qualquer declaração de permissão e ajuda a manter o princípio de privilégio mínimo em sua infraestrutura da AWS.

Em vez de usar `NotPrincipal`, recomendamos usar uma instrução Deny com chaves de contexto de condição globais e o operador de condição como [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) para permitir explicitamente que um perfil do IAM acesse seus recursos. O exemplo a seguir usa [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) para permitir explicitamente que o perfil `read-only-role` acesse buckets do Amazon S3 na pasta `Bucket_Account_Audit`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyCrossAuditAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::Bucket_Account_Audit",
        "arn:aws:s3:::Bucket_Account_Audit/*"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:role/read-only-role"
        }
      }
    }
  ]
}
```

------

## Exemplo de cenário usando uma entidade principal de serviço
<a name="notprincipal-alternative-service-principal"></a>

É possível usar uma instrução Deny para impedir que todas as entidades principais de serviço, exceto aquelas especificados no elemento `Condition`, acessem ou manipulem seus recursos. Essa abordagem é particularmente útil quando você precisa implementar controles de acesso refinados ou estabelecer limites de segurança entre diferentes serviços e aplicações em seu ambiente da AWS.

Em vez de usar `NotPrincipal`, recomendamos usar uma instrução Deny com chaves de contexto de condição globais e o operador de condição [`StringNotEquals`](reference_policies_elements_condition_operators.md#Conditions_String) para permitir explicitamente que uma entidade principal de serviço acesse seus recursos. O exemplo a seguir usa `aws:PrincipalServiceName` para permitir explicitamente que a entidade principal de serviço AWS CodeBuild acesse buckets do Amazon S3 na pasta `BUCKETNAME`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyNotCodeBuildAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::BUCKETNAME",
        "arn:aws:s3:::BUCKETNAME/*"
      ],
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:PrincipalServiceName": "codebuild.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Elementos de política JSON do IAM: Action
<a name="reference_policies_elements_action"></a>

O elemento `Action` descreve a ação ou ações específicas que serão permitidas ou negadas. As instruções devem incluir um elemento `Action` ou `NotAction`. Cada serviço da AWS tem seu próprio conjunto de ações que descrevem as tarefas que você pode executar com aquele serviço. Por exemplo, a lista de ações do Amazon S3 está disponível em [Especificação de permissões em uma política](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html) no *Guia do usuário do Amazon Simple Storage Service*, a lista de ações do Amazon EC2 está disponível em [Referência de API do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html) e a lista de ações do AWS Identity and Access Management está disponível em [Referência de API do IAM](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html). Para encontrar a lista de ações para outros serviços, consulte a [documentação](https://aws.amazon.com/documentation) de referência de APIs do serviço.

A AWS também fornece informações de referência sobre o serviço no formato JSON para agilizar a automação dos fluxos de trabalho de gerenciamento de políticas. Com as informações de referência do serviço, você pode acessar, em arquivos legíveis por máquina, as ações, recursos e chaves de condições disponíveis nos Serviços da AWS. Para obter mais informações, consulte [Simplified AWS service (Serviço da AWS) information for programmatic access](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html) na Service Authorization Reference.

Você especifica um valor usando um namespace de serviço, como um prefixo de ação (`iam`, `ec2` `sqs`, `sns`, `s3` etc.) seguido pelo nome da ação para permitir ou negar. O nome deve corresponder a uma ação compatível com o serviço. O prefixo e o nome da ação não diferenciam entre letras maiúsculas e minúsculas. Por exemplo, `iam:ListAccessKeys` é o mesmo que `IAM:listaccesskeys`. Os exemplos a seguir mostram elementos `Action` para diferentes serviços.

**Ação do Amazon SQS**

```
"Action": "sqs:SendMessage"
```

**Ação do Amazon EC**

```
"Action": "ec2:StartInstances"
```

**Ação do IAM**

```
"Action": "iam:ChangePassword"
```

**Ação do Amazon S**

```
"Action": "s3:GetObject"
```

Você pode especificar vários valores para o elemento `Action`.

```
"Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "ec2:StartInstances", "iam:ChangePassword", "s3:GetObject" ]
```

Você pode usar curingas de correspondência de vários caracteres (`*`) e curingas de correspondência de caractere único (`?`) para conceder acesso a todas as ações que o produto específico da AWS oferece. Por exemplo, o seguinte elemento `Action` se aplica a todas as ações do S3.

```
"Action": "s3:*"
```

Você também pode usar curingas (`*` ou `?`) como parte do nome da ação. Por exemplo, o elemento `Action` a seguir se aplica a todas as ações do IAM que incluem a string `AccessKey`, incluindo `CreateAccessKey`, `DeleteAccessKey`, `ListAccessKeys` e `UpdateAccessKey`.

```
"Action": "iam:*AccessKey*"
```

Alguns serviços permitem que você limite as ações que estão disponíveis. Por exemplo, o Amazon SQS permite que você disponibilize apenas um subconjunto de todas as ações possíveis do Amazon SQS. Neste caso, o curinga `*` não permite o controle completo da fila; ele permite apenas o subconjunto de ações que você compartilhou. Para obter mais informações, consulte [Noções básicas sobre permissões ](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes) no *Guia do desenvolvedor do Amazon Simple Queue Service*.

# Elementos de política JSON do IAM: NotAction
<a name="reference_policies_elements_notaction"></a>

`NotAction` é um elemento de política avançado que explicitamente corresponde a tudo *exceto* a lista especificada de ações. O uso de `NotAction` pode resultar em uma política mais curta ao listar apenas algumas ações que não devem corresponder, em vez de incluir uma longa lista de ações para correspondência. As ações especificadas em `NotAction` não são afetadas por `Allow` ou `Deny` em uma instrução de política. Isso, por sua vez, significa que todas as ações ou serviços aplicáveis que não são listados são permitidos se você usar o efeito `Allow`. Além disso, essas ações ou serviços não listados são negados se você usar o efeito `Deny`. Ao usar `NotAction` com o elemento `Resource`, você fornece escopo para a política. Isso é como a AWS determina quais ações ou serviços são aplicáveis. Para obter mais informações, consulte o seguinte exemplo de política. 

**NotAction com permitir** 

Você pode usar o elemento `NotAction` em uma instrução com `"Effect": "Allow"` para fornecer acesso a todas as ações em um serviço da AWS, exceto para as ações especificadas em `NotAction`. Você pode usá-lo com o elemento `Resource` para fornecer escopo para a política, limitando as ações permitidas para as ações que podem ser realizadas no recurso especificado.

O exemplo a seguir permite que os usuários acessem todas as ações do Amazon S3 que podem ser executadas em qualquer recurso do S3, *exceto* a exclusão de um bucket. Essa política também não permite ações em outros serviços, pois outras ações de serviço não são aplicáveis aos recursos do S3.

```
"Effect": "Allow",
"NotAction": "s3:DeleteBucket",
"Resource": "arn:aws:s3:::*",
```

Às vezes, você pode querer permitir o acesso a um grande número de ações. O uso do elemento `NotAction` efetivamente reverte a instrução, resultando em uma lista de ações mais curta. Por exemplo, como há muitos produtos da AWS, você pode criar uma política que permita ao usuário fazer tudo, exceto acessar ações do IAM.

O exemplo a seguir permite aos usuários acessar todas as ações em todos os produtos da AWS, exceto o IAM.

```
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
```

Tenha cuidado ao usar o elemento `NotAction` e `"Effect": "Allow"` na mesma instrução ou em outra instrução dentro de uma política. `NotAction` corresponde a todos os serviços e ações que não são explicitamente listados ou aplicáveis para o recurso especificado e pode resultar em concessão de mais permissões aos usuários do que o desejado.

**NotAction com Deny**

Você pode usar o elemento `NotAction` em uma instrução com `"Effect": "Deny"` para negar acesso a todos os recursos listados, exceto para as ações especificadas no elemento `NotAction`. Essa combinação não permite os itens listados, mas explicitamente nega as ações não listadas em vez disso. Você ainda deve habilitar as ações que você deseja permitir.

O exemplo condicional a seguir nega acesso a ações que não são do IAM se o usuário não estiver conectado usando a MFA. Se o usuário estiver conectado com MFA, o teste de `"Condition"` falhará e a instrução `"Deny"` final não terá efeito. Observe, no entanto, que isso não concederia ao usuário acesso a qualquer ação, e apenas negaria explicitamente todas as outras ações, exceto as ações do IAM.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyAllUsersNotUsingMFA",
        "Effect": "Deny",
        "NotAction": "iam:*",
        "Resource": "*",
        "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}}
    }]
}
```

------

Para obter um exemplo de política que nega o acesso a ações fora de regiões específicas, exceto ações de serviços específicos, consulte [AWS: nega acesso à AWS com base na região solicitada](reference_policies_examples_aws_deny-requested-region.md).

# Elementos de política JSON do IAM: Resource
<a name="reference_policies_elements_resource"></a>

O elemento `Resource` em uma declaração de política do IAM define o objeto ou objetos aos quais a declaração se aplica. As instruções devem incluir um elemento `Resource` ou `NotResource`.

Você especifica um recurso usando um nome do recurso da Amazon (ARN). O formato do ARN depende do AWS service (Serviço da AWS) e do recurso específico ao qual você está se referindo. Embora o formato do ARN varie, você sempre usará um ARN para identificar um recurso. Para obter mais informações sobre o formato de ARNs, consulte [ARNs do IAM](reference_identifiers.md#identifiers-arns). Para obter informações sobre como especificar um recurso, consulte a documentação do serviço para o qual deseja escrever uma instrução.

**nota**  
Alguns Serviços da AWS não permitem que você especifique ações para recursos individuais. Nesses casos, todas as ações listadas no elemento `Action` ou `NotAction` se aplicam a todos os recursos desse serviço. Quando for esse o caso, você usará o caractere curinga (`*`) no elemento `Resource`.

O exemplo a seguir se refere a uma fila específica do Amazon SQS.

```
"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"
```

O exemplo a seguir faz referência ao usuário do IAM chamado `Bob` em uma Conta da AWS.

**nota**  
Em um elemento `Resource`, o nome de usuário do IAM diferencia letras maiúsculas de minúsculas.

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"
```

## Uso de caracteres curinga em ARNs de recursos
<a name="reference_policies_elements_resource_wildcards"></a>

Você pode usar caracteres curinga (`*` e `?`) dentro dos segmentos individuais de um ARN (as partes separadas por dois pontos) para representar:
+ Qualquer combinação de caracteres (`*`)
+ Qualquer caractere único (`?`)

Você pode usar vários caracteres `*` ou `?` em cada segmento. Se o curinga `*` for o último caractere de um segmento de ARN de um recurso, ele poderá expandir a busca de correspondência para além dos limites de dois-pontos. Recomendamos que você use curingas (`*` e `?`) dentro dos segmentos de ARN separados por dois pontos.

**nota**  
Você não pode usar um caractere curinga no segmento do serviço que identifica o produto da AWS. Para obter mais informações sobre ARN, consulte [Identifique recursos da AWS com nomes do recurso da Amazon (ARNs)](reference-arns.md)

O exemplo a seguir se refere a todos os usuários do IAM cujo caminho é `/accounting`. 

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"
```

O exemplo a seguir se refere a todos os itens dentro de um bucket do Amazon S3 específico.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
```

O caractere asterisco (`*`) pode ser expandido para substituir tudo dentro de um segmento, incluindo caracteres como uma barra (`/`) que pode parecer um delimitador dentro de um determinado namespace de serviço. Por exemplo, considere o ARN do Amazon S3 a seguir, pois a mesma lógica de expansão de curinga se aplica a todos os serviços.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"
```

Os caracteres curinga no ARN se aplicam a todos os objetos a seguir no bucket, não apenas ao primeiro objeto listado.

```
amzn-s3-demo-bucket/1/test/object.jpg
amzn-s3-demo-bucket/1/2/test/object.jpg
amzn-s3-demo-bucket/1/2/test/3/object.jpg 
amzn-s3-demo-bucket/1/2/3/test/4/object.jpg
amzn-s3-demo-bucket/1///test///object.jpg
amzn-s3-demo-bucket/1/test/.jpg
amzn-s3-demo-bucket//test/object.jpg
amzn-s3-demo-bucket/1/test/
```

Considere os dois últimos objetos na lista anterior. Um nome de objeto do Amazon S3 pode começar ou terminar com o caractere de barra (`/`) delimitador convencional. Embora `/` funcione como um delimitador, não há significado específico quando esse caractere é usado em um ARN de recurso. Ele é tratado da mesma forma que qualquer outro caractere válido. O ARN não corresponderá aos seguintes objetos:

```
amzn-s3-demo-bucket/1-test/object.jpg
amzn-s3-demo-bucket/test/object.jpg
amzn-s3-demo-bucket/1/2/test.jpg
```

## Especificação de vários recursos
<a name="reference_policies_elements_resource_multiple-resources"></a>

Você pode especificar vários recursos no elemento `Resource` usando uma matriz de ARNs. O exemplo a seguir se refere a duas tabelas do DynamoDB.

```
"Resource": [
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table",
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table"
]
```

## Uso de variáveis de política em ARNs de recursos
<a name="reference_policies_elements_resource_policy-variables"></a>

No elemento `Resource`, você pode usar [variáveis de política](reference_policies_variables.md) JSON na parte do ARN que identifica o recurso específico, ou seja, na parte final do ARN. Por exemplo, você pode usar a chave `{aws:username}` como parte de um ARN de recurso para indicar que o nome do usuário atual deve ser incluído como parte do nome do recurso. O exemplo a seguir mostra como você pode usar a chave `{aws:username}` em um elemento `Resource`. A política permite o acesso a uma tabela do Amazon DynamoDB que corresponde ao nome do usuário atual.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/${aws:username}"
    }
}
```

------

Para obter mais informações sobre variáveis de política JSON, consulte [Elementos de política do IAM: variáveis e etiquetas](reference_policies_variables.md).

# Elementos de política JSON do IAM: NotResource
<a name="reference_policies_elements_notresource"></a>

`NotResource` é um elemento de política avançado que corresponde explicitamente a cada recurso, exceto aqueles especificados. O uso de `NotResource` pode resultar em uma política mais curta ao listar somente alguns recursos que não devem corresponder, em vez de incluir uma longa lista de recursos para correspondência. Isso é especialmente útil para políticas aplicáveis em um único serviço da AWS. 

Por exemplo, imagine que você tenha um grupo chamado `HRPayroll`. Os membros de `HRPayroll` não devem ter permissão para acessar os recursos do Amazon S3, exceto a pasta `Payroll` no bucket `HRBucket`. A seguinte política nega explicitamente o acesso a todos os recursos do Amazon S3, exceto os recursos listados. Observe, no entanto, que essa política não concede ao usuário acesso a qualquer recurso.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}
```

------

Normalmente, para negar explicitamente o acesso a um recurso, você deve escrever uma política que utilize `"Effect":"Deny"` e que inclua um elemento `Resource` listando cada pasta individualmente. Entretanto, nesse caso, cada vez que você adiciona uma pasta ao `HRBucket`, ou adiciona um recurso ao Amazon S3 que não deve ser acessado, você deve adicionar o nome desses itens à lista no elemento `Resource`. Se você usar um elemento `NotResource` em vez disso, os usuários terão o acesso a novas pastas automaticamente negado, a menos que você adicione os nomes das pastas no elemento `NotResource`. 

Ao usar `NotResource`, você deve ter em mente que os recursos especificados neste elemento são os *únicos* recursos que não são limitados. Isso, por sua vez, limita todos os recursos que seriam aplicáveis à ação. No exemplo acima, a política afeta apenas as ações do Amazon S3 e, portanto, apenas os recursos do Amazon S3. Se o elemento `Action` também incluísse ações do Amazon EC2, a política negaria acesso a nenhum recurso do EC2 não especificados no elemento `NotResource`. Para saber quais ações em um serviço permitem especificar o ARN de um recurso, consulte [Ações, recursos e chaves de condição de serviços da AWS](reference_policies_actions-resources-contextkeys.html).

## NotResource com outros elementos
<a name="notresource-element-combinations"></a>

**Nunca** use os elementos `"Effect": "Allow"`, `"Action": "*"` e `"NotResource": "arn:aws:s3:::HRBucket"` juntos. Essa instrução é muito perigosa porque permite todas as ações na AWS em todos os recursos, exceto no bucket `HRBucket` do S3. Isso permitiria até mesmo que o usuário adicionasse uma política para si mesmo que permitisse o acesso ao `HRBucket`. Não faça isso. 

Tenha cuidado ao usar o elemento `NotResource` e `"Effect": "Allow"` na mesma instrução ou em outra instrução em uma política. O `NotResource` permite todos os serviços e recursos que não são explicitamente listados e pode resultar na concessão de mais permissões aos usuários do que o desejado. O uso do elemento `NotResource` e `"Effect": "Deny"` na mesma instrução nega os serviços e recursos que não são explicitamente listados.

# Elementos de política JSON do IAM: Condition
<a name="reference_policies_elements_condition"></a>

O elemento `Condition` (ou *bloco* `Condition`) permite que você especifique as condições sob as quais uma política está em vigor. O elemento `Condition` é opcional. No elemento `Condition`, crie expressões em que você usa [operadores de condição](reference_policies_elements_condition_operators.md) (equal, less than, entre outros) para fazer a correspondência de chaves e valores de contexto na política com os valores e chaves no contexto da solicitação. Para saber mais sobre o contexto da solicitação, consulte [Componentes de uma solicitação](intro-structure.md#intro-structure-request).

```
"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
```

A chave de contexto especificada em uma política de condição pode ser uma [chave de contexto de condição global](reference_policies_condition-keys.md) ou uma chave de contexto específica do serviço. As chaves de contexto de condição globais têm o prefixo `aws:`. As chaves de contexto específicas de serviços têm o prefixo do serviço. Por exemplo, o Amazon EC2 permite que você escreva uma condição usando a chave de contexto `ec2:InstanceType`, que é exclusiva para esse serviço. Para visualizar as chaves de contexto do IAM específicas do serviço com o prefixo `iam:`, consulte [Chaves de contexto de condição do IAM e do AWS STS](reference_policies_iam-condition-keys.md).

Os *nomes* de chave de contexto não diferenciam maiúsculas de minúsculas. Por exemplo, incluir a chave de contexto `aws:SourceIP` é equivalente a testar o elemento `AWS:SourceIp`. A diferenciação de maiúsculas e minúsculas nos *valores* da chave de contexto depende do [operador de condição](reference_policies_elements_condition_operators.md) que você usa. Por exemplo, a condição a seguir inclui o operador `StringEquals` para garantir que apenas solicitações feitas por `john` sejam aceitas. Os usuários chamados `John` não têm permissão de acesso.

```
"Condition" : { "StringEquals" : { "aws:username" : "john" }}
```

A seguinte condição usa o operador [`StringEqualsIgnoreCase`](reference_policies_elements_condition_operators.md#Conditions_String) para corresponder usuários chamados `john` ou `John`.

```
"Condition" : { "StringEqualsIgnoreCase" : { "aws:username" : "john" }}
```

Algumas chaves de contexto são compatíveis com pares de chave-valor que permitem especificar parte do nome da chave. Os exemplos incluem a chave de contexto [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md#condition-keys-requesttag), a [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context) do AWS KMS e a chave de contexto [`ResourceTag/tag-key`](reference_policies_condition-keys.md#condition-keys-resourcetag) compatível com múltiplos serviços.
+ Se você usar a chave de contexto `ResourceTag/tag-key` para um serviço, como o [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#amazon-ec2-keys), será necessário especificar um nome de chave para `tag-key`. 
+ **Os nomes de chave não diferenciam maiúsculas de minúsculas.** Isso significa que, se você especificar `"aws:ResourceTag/TagKey1": "Value1"` no elemento de condição da política, a condição corresponderá a uma chave de tag de recurso chamada `TagKey1` ou `tagkey1`, mas não ambas.
+ Os serviços da AWS compatíveis com esses atributos podem permitir que você crie vários nomes de chave que diferem apenas por maiúsculas e minúsculas. Por exemplo, é possível etiquetar uma instância do Amazon EC2 com `ec2=test1` e `EC2=test2`. Quando você usa uma condição, como `"aws:ResourceTag/EC2": "test1"`, para permitir o acesso a esse recurso, o nome da chave corresponde a ambas as tags, mas apenas um valor é correspondente. Isso pode resultar em falhas de condição inesperadas.

**Importante**  
Como prática recomendada, certifique-se de que os membros de sua conta sigam uma convenção de nomenclatura consistente ao nomear atributos de par de chave-valor. Os exemplos incluem tags ou contextos de criptografia do AWS KMS. Você pode aplicar isso usando a chave de contexto [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) para a marcação, ou a [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys) para o contexto de criptografia do AWS KMS.
+ Para obter uma lista de todos os operadores de condição e uma descrição de como eles funcionam, consulte [Operadores de condição](reference_policies_elements_condition_operators.md).
+ A menos que especificado de outra forma, todas as chaves de contexto podem ter múltiplos valores. Para obter uma descrição de como lidar com chaves de contexto com múltiplos valores, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+ Para obter uma lista de todas as chaves de contexto disponíveis globalmente, consulte [AWSChaves de contexto de condições globais da](reference_policies_condition-keys.md).
+ Para as chaves de contexto de condição definidas por cada serviço, consulte [Ações, recursos e chaves de condição dos serviços da AWS](reference_policies_actions-resources-contextkeys.html).

## O contexto da solicitação
<a name="AccessPolicyLanguage_RequestContext"></a>

Quando um [principal](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) faz uma [solicitação](intro-structure.md#intro-structure-request) à AWS, a AWS reúne as informações da solicitação em um contexto de solicitação. O contexto da solicitação inclui informações sobre a entidade principal, os recursos, as ações e outras propriedades ambientais. A avaliação da política compara as propriedades da política com as propriedades enviadas na solicitação para avaliar e autorizar ações que você pode realizar na AWS.

É possível usar o elemento `Condition` de uma política JSON para testar chaves de contexto específicas em relação ao contexto da solicitação. Por exemplo, é possível criar uma política que use a chave de contexto [aws:CurrentTime](reference_policies_condition-keys.md#condition-keys-currenttime) para [permitir que um usuário execute ações somente durante um intervalo de datas](reference_policies_examples_aws-dates.md).

O exemplo a seguir mostra uma representação do contexto da solicitação quando Martha Rivera envia uma solicitação para desativar o seu dispositivo de MFA.

```
Principal: AROA123456789EXAMPLE
Action: iam:DeactivateMFADevice
Resource: arn:aws:iam::user/martha
Context:
  – aws:UserId=AROA123456789EXAMPLE:martha
  – aws:PrincipalAccount=1123456789012
  – aws:PrincipalOrgId=o-example
  – aws:PrincipalARN=arn:aws:iam::1123456789012:assumed-role/TestAR
  – aws:MultiFactorAuthPresent=true
  – aws:MultiFactorAuthAge=2800
  – aws:CurrentTime=...
  – aws:EpochTime=...
  – aws:SourceIp=...
```

O contexto da solicitação é comparado a uma política que permite que os usuários removam seu próprio dispositivo de autenticação multifator (MFA), mas somente se fizeram login usando MFA na última hora (3.600 segundos).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "AllowRemoveMfaOnlyIfRecentMfa",
        "Effect": "Allow",
        "Action": [
            "iam:DeactivateMFADevice"
        ],
        "Resource": "arn:aws:iam::*:user/${aws:username}",
        "Condition": {
            "NumericLessThanEquals": {"aws:MultiFactorAuthAge": "3600"}
        }
    }
}
```

------

Neste exemplo, a política corresponde ao contexto da solicitação: a ação é a mesma, o recurso corresponde ao caractere curinga “\$1” e o valor para `aws:MultiFactorAuthAge` é 2800, que é menor que 3600, portanto, a política permite essa solicitação de autorização.

A AWS avalia cada chave de contexto na política e retorna um valor *verdadeiro* ou *falso*. Uma chave de contexto que não está na solicitação é considerada uma não correspondência.

O contexto da solicitação pode retornar os seguintes valores:
+ **True** (verdadeiro): se o solicitante tiver feito login usando MFA na última hora ou menos, a condição retornará *true*.
+ **False** (falso): se o solicitante tiver feito login usando MFA há mais de uma hora, a condição retorna *false*.
  + **Not present** (não presente): se o solicitante tiver feito uma solicitação usando suas chaves de acesso do usuário do IAM na AWS CLI ou na API da AWS, a chave não estará presente. Nesse caso, a chave não estará presente e não será correspondente.

**nota**  
Em alguns casos, quando o valor da chave de condição não está presente, a condição ainda pode retornar verdadeira. Por exemplo, se você adicionar o qualificador `ForAllValues`, a solicitação retornará verdadeira se a chave de contexto não estiver na solicitação. Para evitar que chaves de contexto ausentes ou chaves de contexto com valores vazios sejam avaliadas como verdadeiras, você pode incluir o [operador de condição Null](reference_policies_elements_condition_operators.md#Conditions_Null) em sua política com um valor `false` para verificar se a chave de contexto existe e se seu valor não for nulo.

## O bloco de condição
<a name="AccessPolicyLanguage_ConditionBlock"></a>

O exemplo a seguir mostra o formato básico de um elemento `Condition`:

```
"Condition": {"StringLike": {"s3:prefix": ["jane/*"]}}
```

Um valor da solicitação é representado por uma chave de contexto, neste caso, `s3:prefix`. O valor da chave de contexto é comparado a um valor especificado como um valor literal, como `jane/*`. O tipo de comparação a fazer é especificado pelo [operador de condição](reference_policies_elements_condition_operators.md) (aqui `StringLike`). Você pode criar condições que comparam strings, datas, números etc., usando comparações boolianas típicas, comoigual a, maior que e menor que. Ao usar [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String) ou [operadores de ARN](reference_policies_elements_condition_operators.md#Conditions_ARN), você também pode usar uma [variável de política](reference_policies_variables.md) no valor da chave de contexto. O exemplo a seguir inclui a variável `aws:username`. 

```
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
```

Em algumas circunstâncias, as chaves de contexto podem conter múltiplos valores. Por exemplo, uma solicitação ao Amazon DynamoDB pode solicitar o retorno ou a atualização de vários atributos de uma tabela. Uma política de acesso às tabelas do DynamoDB pode incluir a chave de contexto `dynamodb:Attributes`, que contém todos os atributos listados na solicitação. Você pode testar os múltiplos atributos na solicitação em relação a uma lista de atributos permitidos em uma política usando operadores de conjunto no elemento `Condition`. Para obter mais informações, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

Quando a política é avaliada durante uma solicitação, a AWS substitui a chave pelo valor correspondente da solicitação. (Neste exemplo, a AWS usaria a data e a hora da solicitação.) A condição é avaliada para retornar verdadeiro ou falso, o que, então, é considerado ao avaliar se a política como um todo permite ou nega a solicitação. 

### Vários valores em uma condição
<a name="Condition-multiple-conditions"></a>

Um elemento `Condition` pode conter múltiplos operadores de condição, e cada operador de condição pode conter múltiplos pares de chave-valor de contexto. A figura a seguir ilustra isso. 

![\[Dois diagramas de blocos de operador de condição. O primeiro bloco inclui dois espaços reservados para chaves de contexto, cada um com múltiplos valores. O segundo bloco de condição inclui uma chave de contexto com múltiplos valores.\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block.diagram.png)


Para obter mais informações, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

# Elementos de política JSON do IAM: operadores de condição
<a name="reference_policies_elements_condition_operators"></a>

<a name="topiclist"></a>

Use operadores de condição no elemento `Condition` para corresponder a chave de condição e o valor na política aos valores no contexto da solicitação. Para obter mais informações sobre o elemento `Condition`, consulte [Elementos de política JSON do IAM: Condition](reference_policies_elements_condition.md).

O operador de condição que você pode usar em uma política depende da chave de condição escolhida. É possível escolher uma chave de condição global ou uma chave de condição específica do serviço. Para saber qual operador de condição pode ser usado para uma chave de condição global, consulte [AWSChaves de contexto de condições globais da](reference_policies_condition-keys.md). Para saber qual operador de condição você pode usar para uma chave de condição específica de serviço, consulte [Ações, recursos e chaves de condição para produtos da AWS](reference_policies_actions-resources-contextkeys.html) e escolha o serviço que deseja visualizar.

**Importante**  
Se a chave especificada em uma condição de política não estiver presente no contexto de solicitação, os valores não corresponderão e a condição será *falsa*. Se a condição da política exigir que a chave *não* seja correspondida, como `StringNotLike` ou `ArnNotLike`, e a chave certa não estiver presente, a condição será *verdadeira*. Esta lógica se aplica a todos os operadores de condição, exceto [...IfExists](#Conditions_IfExists) e [Null check](#Conditions_Null). Esses operadores testam se a chave está presente (existe) no contexto da solicitação.

Os operadores de condição podem ser agrupados nas seguintes categorias:
+ [String](#Conditions_String)
+ [Numérico](#Conditions_Numeric)
+ [Data e hora](#Conditions_Date)
+ [Booliano](#Conditions_Boolean)
+ [Binário](#Conditions_BinaryEquals)
+ [Endereço IP](#Conditions_IPAddress)
+ [Nome de recurso da Amazon (ARN)](#Conditions_ARN) (disponível apenas para alguns serviços.)
+ [... IfExists](#Conditions_IfExists) (verifica se o valor da chave existe como parte de outra verificação)
+ [Verificação de Null](#Conditions_Null) (verifica se o valor da chave existe como uma verificação independente)

## Operadores de condição de strings
<a name="Conditions_String"></a>

Operadores de condição de string permitem que você construa elementos `Condition` que restringem o acesso com base na comparação de uma chave a um valor de string.
+  **Variáveis de política**: [compatíveis](reference_policies_variables.md)
+ **Curingas**: [compatíveis](#Conditions_String-wildcard)


****  

| Operador de condição | Descrição | 
| --- | --- | 
|   `StringEquals`   |  Correspondência exata, distinção entre letras maiúsculas e minúsculas  | 
|   `StringNotEquals`   |  Correspondência negativa  | 
|   `StringEqualsIgnoreCase`   |  Correspondência exata, sem distinção entre letras maiúsculas e minúsculas  | 
|   `StringNotEqualsIgnoreCase`   |  Correspondência negativa, sem distinção entre letras maiúsculas e minúsculas  | 
|   `StringLike`   | Correspondência com distinção entre letras maiúsculas e minúsculas. Os valores podem incluir uma correspondência com vários caracteres curinga (\$1) e uma correspondência com um único caractere curinga (?) em qualquer ponto da string. Você deve especificar curingas para obter correspondências parciais de strings.   Se uma chave contiver vários valores, `StringLike` poderá ser qualificado com os operadores de conjunto `ForAllValues:StringLike` e `ForAnyValue:StringLike`. Para obter mais informações, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).   | 
|   `StringNotLike`   |  Correspondência negativa com distinção entre letras maiúsculas e minúsculas. Os valores podem incluir uma correspondência com vários caracteres curinga (\$1) ou uma correspondência com um único caractere curinga (?) em qualquer ponto da string.  | 

**Example operador de condição string**  
Por exemplo, a declaração a seguir contém um elemento `Condition` que usa a chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) para especificar que a entidade principal que está fazendo a solicitação deve ser marcada com a categoria de trabalho `iamuser-admin`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalTag/job-category": "iamuser-admin"
            }
        }
    }
}
```
Se a chave especificada em uma condição de política não estiver presente no contexto de solicitação, os valores não corresponderão. Nesse exemplo, a chave `aws:PrincipalTag/job-category` estará presente no contexto da solicitação se a entidade de segurança estiver usando um usuário do IAM com etiquetas anexadas. Ela também será incluída para um principal usando uma função do IAM com tags anexadas ou tags de sessão. Se um usuário sem a tag tentar visualizar ou editar uma chave de acesso, a condição retornará `false` e a solicitação será implicitamente negada por essa declaração.  
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – iamuser-admin</pre>  |  correspondência | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – dev-ops</pre>  | Nenhuma correspondência | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  |  Nenhuma `aws:PrincipalTag/job-category` no contexto da solicitação.  | Nenhuma correspondência | 

**Example usar uma variável de política com um operador de condição string**  
O exemplo a seguir usa o operador de condição `StringLike` para realizar correspondência de string com uma [variável de política](reference_policies_variables.md) para criar uma política que permite a um usuário do IAM usar o console do Amazon S3 para gerenciar seu próprio “diretório base” em um bucket do Amazon S3. A política permite as ações especificadas em um bucket do S3, desde que o `s3:prefix` corresponda a qualquer um dos padrões especificados.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "",
            "home/",
            "home/${aws:username}/"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```
A tabela a seguir mostra como a AWS avalia essa política para diferentes usuários com base no valor [aws:username](reference_policies_condition-keys.md#condition-keys-username) no contexto da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  | <pre>aws:username:<br />  – martha_rivera</pre>  | <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/martha_rivera/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  <pre>aws:username:<br />  – nikki_wolf</pre>  |  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/nikki_wolf/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  Nenhum `aws:username` no contexto da solicitação.  | Nenhuma correspondência | 
Para obter um exemplo de uma política que mostra como usar o elemento `Condition` para restringir o acesso a recursos com base em um ID de aplicação e um ID de usuário para a federação de OIDC, consulte [Amazon S3: permite que usuários do Amazon Cognito acessem objetos em seus buckets](reference_policies_examples_s3_cognito-bucket.md). 

### Operadores de condição string com vários valores
<a name="conditions_string_multivalued"></a>

Se uma chave da solicitação contiver vários valores, os operadores string poderão ser qualificados com os operadores de conjunto `ForAllValues` e `ForAnyValue`. Para obter mais informações sobre a lógica de avaliação de várias chaves ou valores de contexto, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operador de condição | Descrição | 
| --- | --- | 
|  `ForAllValues:StringEquals` `ForAllValues:StringEqualsIgnoreCase`  |  Todos os valores da chave de condição da solicitação devem corresponder a pelo menos um valor da política.  | 
|  `ForAnyValue:StringEquals` `ForAnyValue:StringEqualsIgnoreCase`  |  Pelo menos um valor de chave de condição da solicitação deve corresponder a um valor da política.  | 
|  `ForAllValues:StringNotEquals` `ForAllValues:StringNotEqualsIgnoreCase`  |  Correspondência negada. Nenhum valor da chave de contexto da solicitação pode corresponder a algum valor de chave de contexto da política.  | 
|  `ForAnyValue:StringNotEquals` `ForAnyValue:StringNotEqualsIgnoreCase`  |  Correspondência negada. Pelo menos um valor de chave de contexto da solicitação NÃO deve corresponder a nenhum valor da chave de contexto da política.  | 
|  `ForAllValues:StringLike`  |  Todos os valores da chave de condição da solicitação devem corresponder a pelo menos um valor da política.  | 
|  `ForAnyValue:StringLike`  |  Pelo menos um valor de chave de condição da solicitação deve corresponder a um valor da política.  | 
|  `ForAllValues:StringNotLike`  |  Correspondência negada. Nenhum valor da chave de contexto da solicitação pode corresponder a algum valor de chave de contexto da política.  | 
|  `ForAnyValue:StringNotLike`  |  Correspondência negada. Pelo menos um valor de chave de contexto da solicitação NÃO deve corresponder a nenhum valor da chave de contexto da política.  | 

**Example usando `ForAnyValue` com um operador de condição string**  
Este exemplo mostra como você pode criar uma política baseada em identidade que permita usar a ação `CreateTags` do Amazon EC2 para anexar tags a uma instância. Quando você usa `StringEqualsIgnoreCase`, somente pode anexar uma tag se ela contiver a chave `environment` com os valores `preprod` ou `storage`. Quando você acrescenta `IgnoreCase` ao operador, permite que qualquer capitalização de valor de tag existente, como `preprod`, `Preprod` e `PreProd`, seja resolvida como verdadeira.  
Quando você adiciona o modificador `ForAnyValue` com a chave de condição [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys), pelo menos um valor de chave de tag da solicitação deve corresponder ao valor `environment`. A comparação `ForAnyValue` diferencia maiúsculas de minúsculas, o que impede que os usuários usem maiúsculas e minúsculas incorretamente na chave da tag, por exemplo, usar `Environment` em vez de `environment`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2:*:*:instance/*",
    "Condition": {
      "StringEqualsIgnoreCase": {
        "aws:RequestTag/environment": [
          "preprod",
          "storage"
        ]
      },
      "ForAnyValue:StringEquals": {
        "aws:TagKeys": "environment"
      }
    }
  }
}
```
 A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.   


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />aws:RequestTag/environment:<br />  – preprod</pre>  | correspondência  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – costcenter<br />aws:RequestTag/environment:<br />  – PreProd</pre>  | correspondência  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – Environment<br />aws:RequestTag/Environment:<br />  – preprod</pre>  | Nenhuma correspondência  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – costcenter<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Nenhuma correspondência  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  Nenhum `aws:TagKeys` no contexto da solicitação. <pre>aws:RequestTag/environment:<br />  – storage</pre>  | Nenhuma correspondência  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre> Nenhum `aws:RequestTag/environment` no contexto da solicitação.  | Nenhuma correspondência  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  Nenhum `aws:TagKeys` no contexto da solicitação. Nenhum `aws:RequestTag/environment` no contexto da solicitação.  | Nenhuma correspondência  | 

### Correspondência de curinga
<a name="Conditions_String-wildcard"></a>

Os operadores de condição de string realizam uma correspondência sem padrões que não impõe um formato predefinido. Os operadores de condição ARN e Date são um subconjunto de operadores de string que impõem uma estrutura no valor da chave de condição.

Recomendamos usar operadores de condição que correspondam aos valores com os quais você está comparando as chaves. Por exemplo, você deve usar [Operadores de condição de strings](#Conditions_String) ao comparar chaves com valores de string. Da mesma forma, você deve usar [Operadores de condição de nome do recurso da Amazon (ARN)](#Conditions_ARN) ao comparar chaves com valores de ARN.

**Example**  
Este exemplo mostra como é possível criar uma barreira em torno dos recursos de sua organização. A condição dessa política nega acesso às ações do Amazon S3, a menos que o recurso sendo acessado esteja em um conjunto específico de unidades organizacionais (UOs) em AWS Organizations. Um caminho do AWS Organizations é uma representação textual da estrutura da entidade da organização.  
A condição exige que `aws:ResourceOrgPaths` contenha algum dos caminhos de UO listados. Como `aws:ResourceOrgPaths` é uma condição com vários valores, a política usa o operador `ForAllValues:StringNotLike` para comparar os valores de `aws:ResourceOrgPaths` com a lista de UOs da política.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:ResourceOrgPaths": [
            "o-acorg/r-acroot/ou-acroot-mediaou/",
            "o-acorg/r-acroot/ou-acroot-sportsou/*"
          ] 
        }
      }
    }
  ]
}
```
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-sportsou/costcenter/</pre>  | correspondência | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-mediaou/costcenter/</pre>  | Nenhuma correspondência | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  |  Nenhum `aws:ResourceOrgPaths:` na solicitação.  | No match (Nenhuma correspondência) | 

## Operadores de condição numéricos
<a name="Conditions_Numeric"></a>

Operadores de condição numéricos permitem que você construa elementos `Condition` que restringem o acesso com base na comparação de uma chave a um número inteiro ou valor decimal.
+  **Variáveis de política**: não compatíveis
+ **Curingas**: não compatíveis


****  

| Operador de condição | Descrição | 
| --- | --- | 
|   `NumericEquals`   |  Matching  | 
|   `NumericNotEquals`   |  Correspondência negativa  | 
|   `NumericLessThan`   |  Correspondência "menor que"  | 
|   `NumericLessThanEquals`   |  Correspondência "menor ou igual a"  | 
|   `NumericGreaterThan`   |  Correspondência "maior que"  | 
|   `NumericGreaterThanEquals`   |  Correspondência "maior ou igual a"  | 

Por exemplo, a seguinte instrução contém um elemento `Condition` que usa o operador de condição `NumericLessThanEquals` com a chave `s3:max-keys` para especificar que o solicitante pode listar *até* 10 objetos no `amzn-s3-demo-bucket` por vez.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {"NumericLessThanEquals": {"s3:max-keys": "10"}}
  }
}
```

------

Se a chave especificada em uma condição de política não estiver presente no contexto de solicitação, os valores não corresponderão. Neste exemplo, a chave `s3:max-keys` está sempre presente na solicitação ao realizar a operação `ListBucket`. Se essa política permitisse todas as operações do Amazon S3, somente as operações que incluíssem a chave de contexto `max-keys` com um valor inferior ou igual a 10 seriam permitidas. 

## Operadores de condição de data
<a name="Conditions_Date"></a>

Operadores de condição de data permitem que você construa elementos `Condition` que restringem o acesso com base na comparação de uma chave a um valor de data/hora. Você pode usar esses operadores de condição com a chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) ou a chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime). Você deve especificar os valores de data e hora com uma das [implementações W3C dos formatos de hora ISO 8601](http://www.w3.org/TR/NOTE-datetime) ou em data e hora epoch (UNIX). 
+  **Variáveis de política**: não compatíveis
+ **Curingas**: não compatíveis


****  

| Operador de condição | Descrição | 
| --- | --- | 
|   `DateEquals`   |  Correspondência de uma data específica  | 
|   `DateNotEquals`   |  Correspondência negativa  | 
|   `DateLessThan`   |  Correspondência antes de uma data e hora específicas  | 
|   `DateLessThanEquals`   |  Correspondência antes ou em uma data e hora específicas  | 
|   `DateGreaterThan`   |  Correspondência após uma data e hora específicas  | 
|   `DateGreaterThanEquals`   |  Correspondência após ou em uma data e hora específicas  | 

Por exemplo, a instrução a seguir contém um elemento `Condition` que usa o operador de condição `DateGreaterThan` com a chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime). Esta condição especifica que as credenciais de segurança temporárias usadas para fazer a solicitação foram emitidas em 2020. Esta política pode ser atualizada de forma programática todos os dias para garantir que os membros da conta usem credenciais novas.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "DateGreaterThan": {
                "aws:TokenIssueTime": "2020-01-01T00:00:01Z"
            }
        }
    }
}
```

------

Se a chave especificada em uma condição de política não estiver presente no contexto de solicitação, os valores não corresponderão. A chave `aws:TokenIssueTime` está presente no contexto da solicitação somente quando o principal usar as credenciais temporárias para realizar a solicitação. A chave não está presente em solicitações da AWS CLI, da API da AWS ou do AWS SDK que são feitas usando chaves de acesso. Neste exemplo, se um usuário do IAM tentar visualizar ou editar uma chave de acesso, a solicitação será negada.

## Operadores de condição booliana
<a name="Conditions_Boolean"></a>

Condições boolianas permitem que você crie elementos `Condition` que restrinjam o acesso com base na comparação de uma chave com `true` ou `false`.

Se uma chave contiver vários valores, os operadores boolianos podem ser qualificados com os operadores de conjunto `ForAllValues` e `ForAnyValue`. Para obter mais informações sobre a lógica de avaliação de várias chaves ou valores de contexto, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+  **Variáveis de política**: [compatíveis](reference_policies_variables.md)
+ **Curingas**: não compatíveis


****  

| Operador de condição | Descrição | 
| --- | --- | 
|   `Bool`   |  Correspondência booliana  | 
|   `ForAllValues:Bool`   |  Use com o tipo de dados de matriz booliana. Todos os valores boolianos nos valores de chave de contexto devem corresponder aos valores boolianos da política. Para evitar que operadores `ForAllValues` avaliem chaves de contexto ausentes ou com valores vazios como Permitidas, você pode incluir o [operador de condição Null](#Conditions_Null).  | 
|   `ForAnyValue:Bool`   |  Use com o tipo de dados de matriz booliana. Pelo menos um valor booliano nos valores de chave de contexto deve corresponder aos valores booleanos da política.  | 

**Example operador de condição booliano**  
A política baseada em identidades a seguir usará o operador de condição `Bool` com a chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) para negar a replicação de objetos e tags de objetos no bucket de destino e seu conteúdo se a solicitação não for por SSL.  
Esta política não permite qualquer ação. Use essa política em combinação com outras políticas que permitam ações específicas.   
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "BooleanExample",
      "Action": "s3:ReplicateObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – false</pre>  | correspondência | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – true</pre>  | Nenhuma correspondência | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  |  Nenhum `aws:SecureTransport` no contexto da solicitação.  | Nenhuma correspondência | 

## Operadores de condição binários
<a name="Conditions_BinaryEquals"></a>

O operador de condição `BinaryEquals` permite que você crie elementos `Condition` que testam valores de chave no formato binário. Ele compara o valor da chave especificada byte por byte à uma representação [base-64](https://en.wikipedia.org/wiki/Base64) codificada do valor binário na política. Se a chave especificada em uma condição de política não estiver presente no contexto de solicitação, os valores não corresponderão.
+  **Variáveis de política**: não compatíveis
+ **Curingas**: não compatíveis

```
"Condition" : {
  "BinaryEquals": {
    "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="
  }
}
```


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – QmluYXJ5VmFsdWVJbkJhc2U2NA==</pre>  | correspondência | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – ASIAIOSFODNN7EXAMPLE</pre>  | Nenhuma correspondência | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  |  Nenhum `key` no contexto da solicitação.  | Nenhuma correspondência | 

## Operadores de condição de endereço IP
<a name="Conditions_IPAddress"></a>

Operadores de condição de endereço IP permitem que você construa elementos `Condition` que restringem o acesso com base na comparação de uma chave a um endereço IPv4 ou IPv6 ou a intervalo de endereços IP. Você pode usá-los com a chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip). O valor deve ser no formato CIDR padrão (por exemplo, 203.0.113.0/24 ou 2001: DB8:1234:5678::/64). Se você especificar um endereço IP, sem o prefixo de roteamento associado, o IAM usará o valor do prefixo padrão `/32`.

Alguns serviços da AWS oferecem suporte a IPv6, usando :: para representar um intervalo de 0s. Para saber se um serviço oferece suporte a IPv6, consulte a documentação do serviço.
+  **Variáveis de política**: não compatíveis
+ **Curingas**: não compatíveis


****  

| Operador de condição | Descrição | 
| --- | --- | 
|   `IpAddress`   |  O endereço IP ou intervalo especificado  | 
|   `NotIpAddress`   |  Todos os endereços IP, exceto o endereço IP ou intervalo especificado  | 

**Example Operador de condição endereço IP**  
A instrução a seguir usa o operador de condição `IpAddress` com a chave `aws:SourceIp` para especificar que a solicitação deve ser originada no intervalo de IP 203.0.113.0 a 203.0.113.255.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "203.0.113.0/24"
            }
        }
    }
}
```
A chave de condição `aws:SourceIp` resulta no endereço IP onde a solicitação foi gerada. Se as solicitações for proveniente de uma instância do Amazon EC2, o `aws:SourceIp` será avaliado para o endereço IP público da instância.   
Se a chave especificada em uma condição de política não estiver presente no contexto de solicitação, os valores não corresponderão. A chave `aws:SourceIp` está sempre presente no contexto da solicitação, exceto quando o solicitante usar um VPC endpoint para fazer a solicitação. Nesse caso, a condição retornará `false` e a solicitação será negada implicitamente por essa declaração.  
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 203.0.113.1</pre>  | correspondência | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 198.51.100.1</pre>  | Nenhuma correspondência | 
O exemplo a seguir mostra como combinar endereços IPv4 e IPv6 para cobrir todos os endereços IP válidos da sua organização. Recomendamos atualizar seus intervalos de endereço IPv6, além dos intervalos IPv4 que você já possui, nas políticas de sua organização para garantir que as políticas continuarão a funcionar à medida que você fizer a transição para o IPv6.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "someservice:*",
    "Resource": "*",
    "Condition": {
      "IpAddress": {
        "aws:SourceIp": [
          "203.0.113.0/24",
          "2001:DB8:1234:5678::/64"
        ]
      }
    }
  }
}
```
A chave de condição `aws:SourceIp` só funcionará em uma política JSON se você estiver chamando a API testada diretamente como um usuário. Se você usar um serviço para chamar o serviço de destino em seu nome, o serviço de destino vê o endereço IP do serviço de chamada, em vez do endereço IP do usuário-fonte. Isso pode acontecer, por exemplo, se você usar o AWS CloudFormation para chamar o Amazon EC2 para criar instâncias para você. Atualmente, não há como passar o endereço IP de origem através de um serviço de chamada ao serviço de destino para avaliação em uma política JSON. Para esses tipos de chamadas de serviço de API, não use a chave de condição `aws:SourceIp`.

## Operadores de condição de nome do recurso da Amazon (ARN)
<a name="Conditions_ARN"></a>

Operadores de condição do nome de recurso da Amazon (ARN) permitem que você construa elementos `Condition` que restringem o acesso com base na comparação de uma chave a um ARN. O ARN é considerado uma string.
+  **Variáveis de política**: [compatíveis](reference_policies_variables.md)
+ **Curingas**: [compatíveis](reference_policies_elements_resource.md#reference_policies_elements_resource_wildcards)


****  

| Operador de condição | Descrição | 
| --- | --- | 
|   `ArnEquals`, `ArnLike`  |  Correspondência do ARN com distinção entre letras maiúsculas e minúsculas. Cada um dos seis componentes do ARN delimitados por dois pontos é verificado separadamente e cada um pode incluir de múltiplos caracteres curingas (\$1) ou um único caractere curinga (?). Os operadores de condição `ArnEquals` e `ArnLike` têm comportamento semelhante.  | 
|   `ArnNotEquals`, `ArnNotLike`  |  Correspondência negativa para ARN. Os operadores de condição `ArnNotEquals` e `ArnNotLike` têm comportamento semelhante.  | 

**Example Operador de condição ARN**  
O exemplo de política baseada em recurso a seguir mostra uma política anexada a uma fila do Amazon SQS para a qual você deseja enviar mensagens do SNS. Ela fornece ao Amazon SNS permissão para enviar mensagens para a fila (ou as filas) de sua escolha, mas apenas se o serviço estiver enviando as mensagens em nome de um determinado tópico (ou tópicos) do Amazon SNS. Você especifica a fila no campo `Resource` e o tópico do Amazon SNS como o valor para a chave `SourceArn`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": {
            "Service": "sns.amazonaws.com"
        },
        "Action": "SQS:SendMessage",
        "Resource": "arn:aws:sqs:us-east-1:123456789012:QUEUE-ID",
        "Condition": {
            "ArnEquals": {
                "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:TOPIC-ID"
            }
        }
    }
}
```
A chave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) estará presente no contexto da solicitação somente se um recurso acionar um serviço para chamar outro serviço em nome do proprietário do recurso. Se um usuário do IAM tentar realizar essa operação diretamente, a condição retornará `false` e a solicitação será negada implicitamente por esta instrução.  
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:123456789012:TOPIC-ID</pre>  | correspondência | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:777788889999:TOPIC-ID</pre>  | Nenhuma correspondência | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  |  Nenhum `aws:SourceArn` no contexto da solicitação.  | Nenhuma correspondência | 

### Operadores de condição ARN com vários valores
<a name="conditions_arn_multivalued"></a>

Se uma chave da solicitação contiver vários valores, os operadores ARN podem ser qualificados com os operadores de conjunto `ForAllValues` e `ForAnyValue`. Para obter mais informações sobre a lógica de avaliação de várias chaves ou valores de contexto, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operador de condição | Descrição | 
| --- | --- | 
|  `ForAllValues:ArnEquals` `ForAllValues:ArnLike`  |  Todos os ARNs no contexto da solicitação devem corresponder a pelo menos um padrão de ARN da política.  | 
|  `ForAnyValue:ArnEquals` `ForAnyValue:ArnLike`  |  Pelo menos um ARN no contexto da solicitação deve corresponder a um padrão de ARN da política.  | 
|  `ForAllValues:ArnNotEquals` `ForAllValues:ArnNotLike`  |  Correspondência negada. Nenhum ARN no contexto da solicitação pode corresponder a algum padrão de ARN de string da política.  | 
|  `ForAnyValue:ArnNotEquals` `ForAnyValue:ArnNotLike`  |  Correspondência negada. Pelo menos um ARN no contexto da solicitação NÃO deve corresponder a nenhum padrão de ARN da política.  | 

**Example usando `ForAllValues` com um operador de condição ARN**  
O exemplo a seguir usa `ForAllValues:ArnLike` para criar ou atualizar uma origem de entrega lógica para os logs do Amazon CloudWatch Logs. O bloco de condição inclui a chave de condição [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys) para filtrar o log que gera os ARNs passados na solicitação. Usando esse operador de condição, todos os ARNs da solicitação devem corresponder a pelo menos um ARN da política.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "logs:PutDeliverySource",
            "Resource": "arn:aws:logs:us-east-1:123456789012:delivery-source:*",
            "Condition": {
                "ForAllValues:ArnLike": {
                    "logs:LogGeneratingResourceArns": [
                        "arn:aws:cloudfront::123456789012:distribution/*",
                        "arn:aws:cloudfront::123456789012:distribution/support*"
                    ]
                }
            }
        }
    ]
}
```
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter</pre>  | correspondência | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/support2025</pre>  | correspondência | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/admin</pre>  | Nenhuma correspondência | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:777788889999:distribution/costcenter</pre>  | Nenhuma correspondência | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  |  Nenhum `logs:LogGeneratingResourceArns` no contexto da solicitação.  | correspondência  | 
O qualificador `ForAllValues` retornará true se não houver chaves de contexto da solicitação ou se o valor da chave de contexto for resolvido para um conjunto de dados nulo, como uma string vazia. Para evitar que chaves de contexto ausentes ou chaves de contexto com valores vazios sejam avaliadas como verdadeiras, você pode incluir o [operador de condição Null](#Conditions_Null) em sua política com um valor `false` para verificar se a chave de contexto existe e se seu valor não for nulo.

## Operadores de condição ...IfExists
<a name="Conditions_IfExists"></a>

Você pode adicionar `IfExists` ao final de qualquer nome de operador de condição, exceto a condição `Null`, por exemplo, `StringLikeIfExists`. Isso é feito para dizer "Se a chave de condição estiver presente no contexto da solicitação, processar a chave conforme especificado na política. Se a chave não estiver presente, avalie o elemento da condição como verdadeiro." Outros elementos de condição na instrução ainda podem resultar em um nonmatch, mas não em uma chave ausente quando marcada com `...IfExists`. Se você estiver usando um elemento `"Effect": "Deny"` com um operador de condição negada como `StringNotEqualsIfExists`, a solicitação ainda será negada mesmo se a chave de condição estiver ausente.

**Exemplo usando `IfExists`**

Muitas chaves de condição descrevem informações sobre determinado tipo de recurso e existem apenas ao acessar aquele tipo de recurso. Essas chaves de condição não estão presentes em outros tipos de recursos. Isso não causa problemas quando a declaração de política se aplica a apenas um tipo de recurso. No entanto, há casos em que uma única instrução pode se aplicar a vários tipos de recursos, tal como quando a declaração de política se refere a ações de múltiplos serviços ou quando dada ação de um serviço acessa diversos tipos de recursos dentro do mesmo serviço. Em tais casos, a inclusão de uma chave de condição que se aplica a apenas um dos recursos na declaração de política pode fazer com que o elemento `Condition` na declaração de política falhe de forma que o `"Effect"` da instrução não se aplica.

Por exemplo, considere o exemplo de política:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "THISPOLICYDOESNOTWORK",
    "Effect": "Allow",
    "Action": "ec2:RunInstances",
    "Resource": "*",
    "Condition": {"StringLike": {"ec2:InstanceType": [
      "t1.*",
      "t2.*",
      "m3.*"
    ]}}
  }
}
```

------

O *objetivo* da política anterior é permitir que o usuário execute qualquer instância do tipo `t1`, `t2` ou `m3`. No entanto, iniciar uma instância na prática requer acesso a muitos recursos, além da própria instância; por exemplo, imagens, pares de chaves, grupos de segurança, entre outros. A instrução completa é avaliada em relação a cada recurso necessário para executar a instância. Esses recursos adicionais não têm a `ec2:InstanceType` chave de condição, de modo que a verificação `StringLike` falha e o usuário não é concedido a capacidade de executar *qualquer* tipo de instância. 

Para resolver isso, use o operador de condição `StringLikeIfExists`. Dessa forma, o teste só acontece se a chave de condição existir. Você pode ler a política a seguir como: “Se o recurso que está sendo verificado tiver uma chave de condição ‘`ec2:InstanceType`‘, permita a ação apenas se o valor de chave começar com `t1.`, `t2.` ou `m3.`. Se o recurso que está sendo verificado não tiver essa chave de condição, não se preocupe com isso." O asterisco (\$1) nos valores da chave de condição, quando usado com o operador de condição `StringLikeIfExists`, é interpretado como um curinga para obter correspondências parciais de strings. A instrução `DescribeActions` inclui as ações necessárias para visualizar a instância no console.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RunInstance",
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
        "StringLikeIfExists": {
          "ec2:InstanceType": [
            "t1.*",
            "t2.*",
            "m3.*"
          ]
        }
      }
    },
    {
      "Sid": "DescribeActions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeVpcs",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – t1.micro</pre>  | correspondência | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – m2.micro</pre>  | Nenhuma correspondência | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  |  Nenhum `ec2:InstanceType` no contexto da solicitação.  | correspondência | 

## Operador de condição para verificar a existência de chaves de condição
<a name="Conditions_Null"></a>

Use um operador de condição `Null` para verificar se uma chave de condição não está presente no momento da autorização. Na instrução de política, use `true` (a chave não existe, é nulo) ou `false` (a chave existe e seu valor não é nulo).

Você não pode usar uma [variável de política](reference_policies_variables.md) com o operador de condição `Null`.

Por exemplo, é possível usar esse operador de condição para determinar se um usuário está usando credenciais temporárias ou suas próprias credenciais para fazer uma solicitação. Se o usuário estiver usando credenciais temporárias, a chave `aws:TokenIssueTime` existe e tem um valor. O exemplo a seguir mostra uma condição que afirma que o usuário deve usar credenciais temporárias (a chave não pode estar ausente) para que o usuário use a API do Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"ec2:*",
      "Effect":"Allow",
      "Resource":"*",
      "Condition":{"Null":{"aws:TokenIssueTime":"false"}}
  }
}
```

------

# Condições com múltiplas chaves ou valores de contexto
<a name="reference_policies_condition-logic-multiple-context-keys-or-values"></a>

Você pode usar o elemento `Condition` de uma política para testar múltiplas chaves de contexto ou múltiplos valores para uma única chave de contexto em uma solicitação. Quando você faz uma solicitação para a AWS, de forma programada ou pelo Console de gerenciamento da AWS, ela inclui informações sobre o seu principal, operação, tags e muito mais. Use chaves de contexto para testar os valores das correspondentes na solicitação, com as chaves de contexto especificadas na condição da política. Para obter mais sobre informações e saber mais sobre os dados incluídos em uma solicitação, consulte [O contexto da solicitação](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext).

**Topics**
+ [Lógica de avaliação para múltiplas chaves de contexto ou valores](#reference_policies_multiple-conditions-eval)
+ [Lógica de avaliação para os operadores de conjuntos de condições com correspondência negada](#reference_policies_multiple-conditions-negated-matching-eval)

## Lógica de avaliação para múltiplas chaves de contexto ou valores
<a name="reference_policies_multiple-conditions-eval"></a>

Um elemento `Condition` pode conter múltiplos operadores de condição, e cada operador de condição pode conter múltiplos pares de chave-valor de contexto. A maioria das chaves de contexto oferece suporte ao uso de múltiplos valores, a menos que especificado de outra forma.
+ Se a instrução de política tiver múltiplos [operadores de condição](reference_policies_elements_condition_operators.md), os operadores de condição serão avaliados usando uma lógica `AND`.
+ Se sua instrução de política tiver múltiplas chaves de contexto anexadas a um único operador de condição, as chaves de contexto serão avaliadas usando um `AND` lógico.
+ Se um único operador de condição incluir múltiplos valores para uma chave de contexto, esses valores serão avaliados usando um `OR` lógico.
+ Se um único operador de condição com correspondência negada incluir múltiplos valores para uma chave de contexto, esses valores serão avaliados usando um `NOR` lógico. 

Todas as chaves de contexto de um bloco de elementos de condição devem ser resolvidas como verdadeiro para invocar o efeito `Allow` ou `Deny` desejado. A figura a seguir ilustra a lógica de avaliação de uma condição com múltiplos operadores de condição e pares de chave-valor de contexto.

![\[Bloco condicional demonstrando como AND e OR são aplicados a múltiplos valores e chaves de contexto\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_2.diagram.png)


Por exemplo, a política de bucket do S3 a seguir ilustra como a figura anterior é representada em uma política. O bloco de condições inclui os operadores condicionais `StringEquals` e `ArnLike` e as chaves de contexto `aws:PrincipalTag` e `aws:PrincipalArn`. Para invocar o efeito `Allow` ou `Deny` desejado, todas as chaves de contexto de um bloco de condições devem ser resolvidas como verdadeiro. O usuário que faz a solicitação deve ter ambas as chaves de tag da entidade principal, *departamento* e *função*, que incluem um dos valores de chave de tag especificados na política. Além disso, o ARN da entidade principal do usuário que faz a solicitação deve corresponder a um dos valores `aws:PrincipalArn` especificados na política a serem avaliados como verdadeiro.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn: <br />  arn:aws:iam::222222222222:user/Mary</pre>  |  **correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nenhuma correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nenhuma correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  |  Nenhum `aws:PrincipalTag/role` no contexto da solicitação. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nenhuma correspondência**  | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | Nenhum `aws:PrincipalTag` no contexto da solicitação. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nenhuma correspondência**  | 

## Lógica de avaliação para os operadores de conjuntos de condições com correspondência negada
<a name="reference_policies_multiple-conditions-negated-matching-eval"></a>

Alguns [operadores de condição,](reference_policies_elements_condition_operators.md) como `StringNotEquals` ou `ArnNotLike`, usam a correspondência negada para comparar os pares de chave-valor de contexto em sua política com os pares de chave-valor de contexto em uma solicitação. Quando múltiplos valores são especificados para uma chave de contexto única em uma política com operadores de condição de correspondência negados, as permissões efetivas funcionam como um `NOR` lógico. Na correspondência negada, um `NOR` ou `NOT OR` lógico retornará verdadeiro somente se todos os valores forem avaliados como falsos.

A figura a seguir ilustra a lógica de avaliação de uma condição com múltiplos operadores de condição e pares de chave-valor de contexto. A figura contém um operador de condição de correspondência negado para a chave de contexto 3.

![\[Bloco de condição mostrando como AND e OR são aplicados a múltiplas chaves e valores de contexto quando se utiliza um operador de condição de correspondência negado\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_Negated_NOR_2.diagram.png)


Por exemplo, a política de bucket do S3 a seguir ilustra como a figura anterior é representada em uma política. O bloco de condições inclui os operadores condicionais `StringEquals` e `ArnNotLike` e as chaves de contexto `aws:PrincipalTag` e `aws:PrincipalArn`. Para invocar o efeito `Allow` ou `Deny` desejado, todas as chaves de contexto de um bloco de condições devem ser resolvidas como verdadeiro. O usuário que faz a solicitação deve ter ambas as chaves de tag da entidade principal, *departamento* e *função*, que incluem um dos valores de chave de tag especificados na política. Como o operador de condição `ArnNotLike` usa correspondência negada, o ARN da entidade principal do usuário que faz a solicitação não deve corresponder a nenhum dos valores `aws:PrincipalArn` especificados na política a serem avaliados como verdadeiros.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnNotLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki<br /></pre>  |  **correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nenhuma correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nenhuma correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | >Nenhum `aws:PrincipalTag/role` no contexto da solicitação. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nenhuma correspondência** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | Nenhum `aws:PrincipalTag` no contexto da solicitação. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nenhuma correspondência**  | 

# Chaves de contexto de valor único vs. de múltiplos valores
<a name="reference_policies_condition-single-vs-multi-valued-context-keys"></a>

A diferença entre as chaves de contexto de valor único e as de múltiplos valores depende do número de valores do [contexto da solicitação](intro-structure.md#intro-structure-request), e não do número de valores na condição da política.
+ Chaves de contexto de condição de *valor único* têm no máximo um valor no contexto de autorização. Por exemplo, quando você marca recursos na AWS, cada tag de recurso é armazenada como um par de chave-valor. Como uma chave de tag de recurso só pode ter um único valor de tag, [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) é uma chave de contexto de valor único. Não use um operador de conjunto de condição com uma chave de condição de valor único.
+ As chaves de contexto de condição de *múltiplos valores * podem ter múltiplos valores no contexto da solicitação. Por exemplo, ao marcar recursos na AWS, você pode incluir vários pares de chave-valor de tag em uma única solicitação. Portanto, [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) é uma chave de contexto de valores múltiplos. As chaves de contexto de múltiplos valores exigem um operador de conjunto de condições.

Por exemplo, uma solicitação pode ser originada em até um endpoint da VPC. Logo, [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce) é uma chave de contexto de valor único. Como um serviço pode ter mais de um nome de entidade principal de serviço pertencente ao serviço, [aws:PrincipalServiceNamesList](reference_policies_condition-keys.md#condition-keys-principalservicenameslist) é uma chave de contexto de múltiplos valores.

**Importante**  
A diferença entre as chaves de contexto de valor único e as de múltiplos valores depende do número de valores do contexto da solicitação, não do número de valores na condição da política.

## Principais pontos
<a name="reference_policies_condition-key-points"></a>
+ As classificações *Valor único* e *Valores múltiplos* constam na descrição de cada chave de contexto de condição como *Tipo de valor* no tópico [AWSChaves de contexto de condições globais da](reference_policies_condition-keys.md).
+ As chaves de contexto de vários valores presentes na [referência de autorização de serviço](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) são representadas por um prefixo `ArrayOf` seguido pelo tipo da categoria do operador de condição, como `ArrayOfString` ou `ArrayOfARN`, o que indica que a solicitação pode conter vários valores para uma chave de contexto de condição.
+ É possível usar qualquer chave de contexto de valor único disponível como variável de política, mas não é possível fazer isso com uma chave de contexto de múltiplos valores. Para obter mais informações sobre variáveis de política, consulte [Elementos de política do IAM: variáveis e etiquetas](reference_policies_variables.md).
+ Ao usar chaves de contexto que incluem pares de chave-valor, é importante observar que, embora possa haver vários valores de tag-chave, cada `tag-key` pode ter apenas um valor.
  + As chaves de contexto [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag), [aws:RequestTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-requesttag) e [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) são classificadas como de valor único.
  + A chave [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) define quais chaves de etiquetas são permitidas em uma solicitação, mas não inclui os valores dessas chaves de etiquetas. Como é possível incluir vários pares de chave-valor de etiquetas em uma solicitação, `aws:TagKeys` é uma chave de contexto de vários valores.
+ As chaves de contexto de múltiplos valores exigem um operador de conjunto de condições. Não use operadores de conjuntos de condição `ForAllValues` ou `ForAnyValue` com chaves de condição de valor único. O uso de operadores de conjunto de condições com chaves de contexto de valor único pode levar a políticas excessivamente permissivas.

## Operadores de conjunto para chaves de contexto de vários valores
<a name="reference_policies_condition-multi-valued-context-keys"></a>

Para comparar sua chave de contexto de condição com uma chave de [contexto de solicitação](intro-structure.md#intro-structure-request) com múltiplos valores de chave, você deve usar os operadores de conjunto `ForAllValues` ou `ForAnyValue`. Esses operadores de conjuntos são usados para comparar dois conjuntos de valores, como o conjunto de etiquetas em uma solicitação e o conjunto de etiquetas em uma condição de política.

Os qualificadores `ForAllValues` e `ForAnyValue` adicionam a funcionalidade de operação de conjunto ao operador da condição, permitindo que você teste chaves de contexto da solicitação em relação a múltiplos valores de chave de contexto em uma condição de política. Além disso, se você incluir uma chave de contexto de string de múltiplos valores na política com um curinga ou uma variável, também deverá usar o [operador de condição](reference_policies_elements_condition_operators.md#Conditions_String) `StringLike`. Os diferentes valores de chaves de condição devem ser colocados entre colchetes, como em uma [matriz](reference_policies_grammar.md#policies-grammar-json), por exemplo `"Key2":["Value2A", "Value2B"]`.

### ForAllValues
<a name="reference_policies_condition-forallvalues"></a>

O qualificador `ForAllValues` realiza testes para verificar se o valor de cada elemento no contexto da solicitação corresponde ao operador de condição que o segue. A condição retornará `true` se todos os valores das chaves de contexto presentes na solicitação corresponderem aos valores para as chaves de contexto definidos na política. Além disso, a condição retornará `true` se não houver chaves de contexto presentes na solicitação.

**Importante**  
Tenha cuidado ao usar `ForAllValues` em políticas com efeito `Allow`, pois isso pode resultar em permissões excessivas se a ausência de chaves de contexto no contexto da solicitação não for prevista. Sempre inclua o operador de condição [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) com um valor `false` em sua política para verificar se a chave de contexto existe e se seu valor não é nulo. Para ver um exemplo, consulte [Controlar o acesso com base em chaves de tag](access_tags.md#access_tags_control-tag-keys).

#### Exemplo do operador de conjunto ForAllValues
<a name="reference_policies_condition-forallvalues-example"></a>

No exemplo apresentado a seguir, o operador ForAllValues é usado com aws:TagKeys para permitir que os usuários excluam etiquetas específicas atribuídas a uma instância do EC2. Esta política permite a exclusão apenas das etiquetas `environment` e `cost-center` por parte dos usuários. Essas etiquetas podem ser excluídas separada ou simultaneamente. As chaves de etiquetas presentes na solicitação devem corresponder exatamente às chaves especificadas na política.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                },
                "Null": {
                    "aws:TagKeys": "false"
                }
            }
        }
    ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **correspondência**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **correspondência**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **correspondência**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Nenhuma correspondência**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  |  Nenhum `aws:TagKeys` no contexto da solicitação.  |  **Nenhuma correspondência**  | 

Vale destacar que, no exemplo anterior, o resultado é “Nenhuma correspondência” devido à verificação da condição “Null”, que bloqueia a correspondência quando a chave de contexto não está presente. Essa é uma prática recomendada para evitar políticas excessivamente permissivas.

### ForAnyValue
<a name="reference_policies_condition-foranyvalue"></a>

O qualificador `ForAnyValue` realiza testes para verificar se ao menos um dos valores presentes no conjunto de chaves de contexto da solicitação corresponde a algum dos valores de chaves de contexto definidos na condição da política. A condição retornará `true` se algum valor de chave de contexto presente na solicitação corresponder a um valor para as chaves de contexto definido na política. Se não houver correspondência entre as chaves de contexto ou se a chave não existir, a condição retornará `false`.

**Importante**  
Ao usar `ForAnyValue` com o efeito `Deny`, se a chave de contexto não estiver presente na solicitação, a política será avaliada como **Nenhuma correspondência**. Para garantir um comportamento consistente, adicione uma verificação explícita da condição [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) em sua política para confirmar se a chave de contexto existe. Para obter detalhes, consulte [Operador de condição para verificar a existência de chaves de condição](reference_policies_elements_condition_operators.md#Conditions_Null).

#### Exemplo do operador de conjunto ForAnyValue
<a name="reference_policies_condition-foranyvalue-example"></a>

No exemplo apresentado a seguir, o operador ForAnyValue é usado com aws:TagKeys para permitir que os usuários excluam etiquetas específicas atribuídas a uma instância do EC2. Esta política permite a exclusão de etiquetas, por parte dos usuários, se as chaves de etiquetas especificadas na solicitação incluírem `environment` ou `cost-center`. A solicitação pode conter chaves de etiquetas adicionais, mas deve incluir, no mínimo, uma das chaves especificadas para que a condição seja satisfeita.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                }
            }
        }
    ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **correspondência**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **correspondência**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **correspondência**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **correspondência**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – dept</pre>  |  **Nenhuma correspondência**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  |  Nenhum `aws:TagKeys` no contexto da solicitação.  |  **Nenhuma correspondência**  | 

# Exemplos de políticas de condições
<a name="reference_policies_condition_examples"></a>

Nas políticas do IAM, é possível especificar múltiplos valores para chaves de contexto de valor único e de múltiplos valores para comparação com o contexto da solicitação. O conjunto de exemplos de políticas a seguir demonstra condições de política com múltiplos valores e chaves de contexto.

**nota**  
Se você quiser enviar uma política para ser incluída neste guia de referência, use o botão **Feedback** na parte inferior desta página. Para obter exemplos de políticas baseadas em identidade do IAM, consulte [Exemplos de políticas baseadas em identidade do IAM](access_policies_examples.md).

## Exemplos de políticas de condição: chaves de contexto de valor único
<a name="reference_policies_condition_example_library_single-valued"></a>
+ Vários blocos de condição com chaves de contexto de valor único. ([Visualizar este exemplo](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-1).)
+ Um bloco de condição com múltiplos valores e chaves de contexto de valor único. ([Visualizar este exemplo](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-2).)

## Exemplos de políticas de condição: chaves de contexto de múltiplos valores
<a name="reference_policies_condition_example_library_multi-valued"></a>
+ Política de negação com operador de conjunto de condições `ForAllValues`. ([Visualizar este exemplo](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-1).)
+ Política de negação com operador de conjunto de condições `ForAnyValue`. ([Visualizar este exemplo](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-2).)

# Exemplos de chave de contexto de múltiplos valores
<a name="reference_policies_condition_examples-multi-valued-context-keys"></a>

O conjunto de exemplos de políticas a seguir demonstra como criar condições de política com chaves de contexto de múltiplos valores.

## Exemplo: política de negação com operador de conjunto de condições ForAllValues
<a name="reference_policies_condition_examples-multi-valued-context-keys-1"></a>

Os exemplos a seguir mostram como usar uma política baseada em identidade para negar o uso de ações de marcação do IAM quando prefixos de chave de marcação específicos são incluídos na solicitação. Os valores para [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) inclua um curinga (\$1) para correspondência parcial de string. A política inclui o operador de conjunto `ForAllValues` com chave de contexto `aws:TagKeys` porque a chave de contexto da solicitação pode conter múltiplos valores. Para a chave de contexto `aws:TagKeys` ser correspondente, cada valor na solicitação de contexto deve corresponder a pelo menos um valor na política.

O operador de conjunto `ForAllValues` também retornará verdadeiro se não houver chaves de contexto na solicitação.

Você pode evitar que chaves de contexto ausentes ou chaves de contexto com valores vazios sejam avaliadas como verdadeiro, ao incluir o operador de condição `Null` em sua política com um valor `false` para verificar se a chave de contexto da solicitação existe e se seu valor não é nulo. Para obter mais informações, consulte [Operador de condição para verificar a existência de chaves de condição](reference_policies_elements_condition_operators.md#Conditions_Null).

**Importante**  
Esta política não permite qualquer ação. Use essa política em combinação com outras políticas que permitam ações específicas.

**Example Negar um único valor de condição de política para uma chave de contexto de vários valores**  
No exemplo a seguir, a política nega solicitações onde os valores para `aws:TagKeys` na solicitação não incluam o prefixo **key1**. O contexto da solicitação pode ter vários valores, mas devido ao operador do conjunto de condição `ForAllValues`, todos os valores da chave de tag no contexto da solicitação devem começar com o prefixo **key1**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": "key1*"
        }
      }
    }
  ]
}
```
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação. Para uma Declaração de negação, a Correspondência é Negada e Nenhuma correspondência é Não negada, portanto, isso pode ser permitido por outra declaração.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Nenhuma correspondência** Pode ser permitido por outra declaração. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Nenhuma correspondência** Pode ser permitido por outra declaração. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key2:audit</pre>  | **correspondência** | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | Nenhum `aws:TagKeys` no contexto da solicitação.  | **correspondência** | 

**Example Negar vários valores de condição de política para uma chave de contexto de vários valores**  
No exemplo a seguir, a política nega solicitações onde os valores para `aws:TagKeys` na solicitação não incluam o prefixo **key1** ou **key2**. O contexto da solicitação pode ter vários valores, mas devido ao operador do conjunto de condição `ForAllValues`, todos os valores da chave de tag no contexto da solicitação devem começar com o prefixo **key1** ou **key2**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": [
            "key1*",
            "key2*"
          ]
        }
      }
    }
  ]
}
```
A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação. Para uma Declaração de negação, a Correspondência é Negada e Nenhuma correspondência é Não negada, portanto, isso pode ser permitido por outra declaração.  


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Nenhuma correspondência** Pode ser permitido por outra declaração. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Nenhuma correspondência** Pode ser permitido por outra declaração. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key2:audit</pre>  | **Nenhuma correspondência** Pode ser permitido por outra declaração. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key3:legal</pre>  | **correspondência**  | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | Nenhum `aws:TagKeys` no contexto da solicitação.  | **correspondência** | 

## Exemplo: política de negação com operador de conjunto de condições ForAnyValue
<a name="reference_policies_condition_examples-multi-valued-context-keys-2"></a>

O exemplo de política baseada em identidade a seguir negará a criação de snapshots de volumes de instâncias do EC2 se algum snapshot estiver marcado com uma das chaves de etiqueta especificadas na política, `environment` ou `webserver`. A política inclui o operador de conjunto `ForAnyValue` com chave de contexto `aws:TagKeys` porque a chave de contexto da solicitação pode conter múltiplos valores. Se sua solicitação de marcação incluir qualquer chave-valor de etiqueta especificado na política, a chave de contexto `aws:TagKeys` retornará como verdadeiro, invocando o efeito da política de negação.

**Importante**  
Esta política não permite qualquer ação. Use essa política em combinação com outras políticas que permitam ações específicas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:CreateSnapshots"
      ],
      "Resource": "arn:aws:ec2:us-west-2::snapshot/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": "webserver"
        }
      }
    }
  ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação. Para uma Declaração de negação, a Correspondência é Negada e Nenhuma correspondência é Não negada, portanto, isso pode ser permitido por outra declaração.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – webserver</pre>  | **correspondência** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – webserver<br />  – test</pre>  |  **correspondência** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – test</pre>  | **Nenhuma correspondência** Pode ser permitido por outra declaração. | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | Nenhum `aws:TagKeys` no contexto da solicitação.  | **Nenhuma correspondência** Pode ser permitido por outra declaração.  | 

# Exemplos de políticas de chave de contexto de valor único
<a name="reference_policies_condition_examples-single-valued-context-keys"></a>

O conjunto de exemplos de políticas a seguir demonstra como criar condições de política com chaves de contexto de valor único.

## Exemplo: múltiplos blocos de condição com chaves de contexto de valor único
<a name="reference_policies_condition_examples-single-valued-context-keys-1"></a>

Quando um bloco de condição tem várias condições, cada uma com uma única chave de contexto, todas as chaves de contexto devem ser resolvidas como verdadeiras para o efeito desejado `Allow` ou `Deny` a ser invocado. Quando você usa operadores de condição de correspondência negados, inverte-se a lógica de avaliação do valor da condição.

O exemplo a seguir permite que os usuários criem volumes do EC2 e apliquem qualquer etiqueta aos volumes durante a criação do volume. O contexto da solicitação deve incluir um valor para a chave de contexto `aws:RequestTag/project`, e o valor da chave de contexto `aws:ResourceTag/environment` pode ser qualquer coisa, exceto produção.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
      "Condition": {
        "StringLike": {
          "aws:RequestTag/project": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/environment": "production"
        }
      }
    }
  ]
}
```

------

O contexto da solicitação deve incluir o par etiqueta-valor do projeto e não pode ser criado para que um recurso de produção invoque o efeito `Allow`. O volume do EC2 a seguir foi criado com êxito porque o nome do projeto é `Feature3` com uma etiqueta de recurso `QA`.

```
aws ec2 create-volume \
    --availability-zone us-east-1a \
    --volume-type gp2 \
    --size 80 \
    --tag-specifications 'ResourceType=volume,Tags=[{Key=project,Value=Feature3},{Key=environment,Value=QA}]'
```

## Exemplo: um bloco de condição com múltiplos valores e chaves de contexto de valor único
<a name="reference_policies_condition_examples-single-valued-context-keys-2"></a>

Quando um bloco de condição contém múltiplas chaves de contexto e cada chave de contexto tem múltiplos valores, cada chave de contexto deve ser resolvida como verdadeiro para pelo menos um valor de chave para o efeito desejado `Allow` ou `Deny` a ser invocado. Quando você usa operadores de condição de correspondência negados, inverte-se a lógica de avaliação do valor da chave de contexto.

Com o exemplo a seguir, os usuários podem iniciar e executar tarefas nos clusters do Amazon Elastic Container Service.
+ O contexto da solicitação deve incluir `production` **OR** `prod-backup` para a chave de contexto `aws:RequestTag/environment` **AND**.
+ A chave de contexto `ecs:cluster` garante que as tarefas sejam executadas em qualquer um dos clusters ARN `default1` **OR** `default2` do ECS.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:RunTask",
        "ecs:StartTask"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": [
            "production",
            "prod-backup"
          ]
        },
        "ArnEquals": {
          "ecs:cluster": [
            "arn:aws:ecs:us-east-1:111122223333:cluster/default1",
            "arn:aws:ecs:us-east-1:111122223333:cluster/default2"
          ]
        }
      }
    }
  ]
}
```

------

A tabela a seguir mostra como a AWS avalia essa política com base nos valores de chave de condição da solicitação.


| Condição da política | Contexto da solicitação | Resultado | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default1</pre>  | correspondência | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:prod-backup<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | correspondência | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: webserver:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Nenhuma correspondência | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  |  Nenhum `aws:RequestTag` no contexto da solicitação. <pre>ecs:cluster<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Nenhuma correspondência | 

# Elementos de política do IAM: variáveis e etiquetas
<a name="reference_policies_variables"></a>

Use variáveis de política do AWS Identity and Access Management (IAM) como espaços reservados quando você não souber o valor exato de um recurso ou uma chave de condição ao escrever a política.

**nota**  
Se a AWS não puder resolver uma variável, isso poderá invalidar toda a instrução. Por exemplo, se você usar a variável `aws:TokenIssueTime`, a variável será resolvida como um valor somente quando o solicitante tiver sido autenticado com credenciais temporárias (uma função do IAM). Para evitar que as variáveis provoquem instruções inválidas, use o operador de condição [...IfExists.](reference_policies_elements_condition_operators.md#Conditions_IfExists)

**Topics**
+ [Introdução](#policy-vars-intro)
+ [Usar variáveis em políticas](#policy-vars-using-variables)
+ [Tags como variáveis de política](#policy-vars-tags)
+ [Onde você pode usar variáveis de política](#policy-vars-wheretouse)
+ [Variáveis de política sem valor](#policy-vars-no-value)
+ [Solicitar informações que você pode usar para variáveis de política](#policy-vars-infotouse)
+ [Especificação de valores padrão](#policy-vars-default-values)
+ [Para obter mais informações](#policy-vars-formoreinfo)

## Introdução
<a name="policy-vars-intro"></a>

Nas políticas do IAM, muitas ações permitem que você forneça um nome para os recursos específicos cujo acesso deseja controlar. For exemplo, a política a seguir permite que o usuário liste, leia e grave objetos no bucket do S3 `amzn-s3-demo-bucket` para projetos de `marketing`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["marketing/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/marketing/*"]
    }
  ]
}
```

------

Em alguns casos, talvez você saiba o nome exato do recurso ao elaborar a política. Talvez você queira generalizar a política para que ele funcione para muitos usuários sem a necessidade de fazer uma cópia exclusiva da política para cada usuário. Em vez de criar uma política específica para cada usuário, recomendamos criar uma única política de grupo que funcione para qualquer usuário desse grupo. 

## Usar variáveis em políticas
<a name="policy-vars-using-variables"></a>

É possível definir valores dinâmicos dentro das políticas usando *variáveis de política* que definem espaços reservados em uma política.

As variáveis são marcadas usando um prefixo **`$`** seguido por um par de chaves (**`{ }`**) que incluem o nome da variável do valor da solicitação.

Quando a política for avaliada, suas variáveis serão substituídas por valores provenientes das chaves de contexto condicionais passadas na solicitação. As variáveis podem ser usadas em [políticas baseadas em identidade, políticas de recursos, políticas de controle de serviços, políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) e [políticas de endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html). As políticas baseadas em identidade usadas como limites de permissões também são compatíveis com variáveis de política. 

As chaves de contexto de condição globais podem ser usadas como variáveis em solicitações entre serviços da AWS. As chaves de condição específicas do serviço também podem ser usadas como variáveis ao interagir com recursos da AWS, mas só estão disponíveis quando as solicitações são baseadas em recursos compatíveis com elas. Para obter uma lista das chaves de contexto disponíveis para cada serviço e recurso da AWS, consulte a [https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html). Em certas circunstâncias, não é possível preencher chaves de contexto de condição globais com um valor. Para saber mais, consulte [Chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

**Importante**  
Os nomes das chaves não diferenciam maiúsculas de minúsculas. Por exemplo, `aws:CurrentTime` equivale a `AWS:currenttime`.
É possível usar qualquer chave de condição de valor único disponível como uma variável. Você não pode usar uma chave de condição de valores múltiplos como uma variável.

O exemplo a seguir mostra uma política para um perfil ou usuário do IAM que substitui um nome do recurso específico por uma variável de política. Você pode reutilizar essa política aproveitando a chave de condição `aws:PrincipalTag`. Quando esta política é avaliada, `${aws:PrincipalTag/team}` permitirá ações somente se o nome do bucket terminar com o nome da equipe da tag `team` da entidade principal.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["${aws:PrincipalTag/team}/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/team}/*"]
    }
  ]
}
```

------

A variável é marcada usando um `$` prefixo seguido por um par de chaves (`{ }`). Dentro dos caracteres `${ }`, você pode incluir o nome do valor da solicitação que você deseja usar na política. Os valores que você pode usar serão abordados posteriormente nesta página.

Para obter uma lista desta chave de condição global, consulte [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag) na lista de chaves condição globais.

**nota**  
Para usar variáveis de política, você deve incluir o elemento `Version` em uma instrução, e a versão deve ser definida como uma versão que oferece suporte às variáveis de política. As variáveis foram apresentadas na versão `2012-10-17`. Versões anteriores da linguagem da política não são compatíveis com variáveis de política. Se você não incluir o elemento `Version` e defini-lo como uma data de versão apropriada, variáveis como `${aws:username}` serão tratadas como strings literais na política.   
Um elemento de política `Version` é diferente de uma versão de política. O elemento de política `Version` é usado em uma política e define a versão da linguagem da política. Uma versão da política, por outro lado, é criada quando você altera uma política gerenciada pelo cliente no IAM. A política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. Para saber mais sobre o elemento de política `Version`, consulte [Elementos de política JSON do IAM: Version](reference_policies_elements_version.md). Para saber mais sobre as versões de política, consulte [Versionamento de políticas do IAM](access_policies_managed-versioning.md).

Uma política que permite que uma entidade principal obtenha objetos do caminho /David de um bucket do S3 tem a seguinte aparência:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/David/*"
      ]
    }
  ]
}
```

------

Se essa política estiver anexada ao usuário `David`, esse usuário terá objetos do seu próprio bucket do S3, mas você teria que criar uma política específica para cada usuário que incluísse o nome do usuário. Você pode anexar cada política aos usuários individuais.

Ao usar uma variável de política, você pode criar políticas que podem ser reutilizadas. A política a seguir permite que um usuário obtenha objetos de um bucket do Amazon S3 se o valor da chave de tag `aws:PrincipalTag` corresponder ao valor da chave de tag `owner` passado na solicitação. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Sid": "AllowUnlessOwnedBySomeoneElse",
    "Effect": "Allow",
    "Action": ["s3:GetObject"],    
    "Resource": ["*"],
    "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/owner": "${aws:PrincipalTag/owner}"
        }
      }
    }
  ]
}
```

------

Ao usar uma variável de política para um usuário dessa forma, você não precisa ter uma política específica para cada usuário individual. No exemplo a seguir, a política é anexada a um perfil do IAM que é assumido pelos gerentes de produto usando credenciais de segurança temporárias. Quando um usuário faz uma solicitação para adicionar um objeto do Amazon S3, o IAM substituísse o valor da tag `dept` da solicitação atual para a variável `${aws:PrincipalTag}` e avalia a política. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOnlyDeptS3Prefix",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/dept}/*"
            ]
        }
    ]
}
```

------

## Tags como variáveis de política
<a name="policy-vars-tags"></a>

Em alguns serviços da AWS que você pode anexar os próprios atributos personalizados a recursos criados por esses serviços. Por exemplo, você pode aplicar etiquetas a buckets do Amazon S3 ou a usuários do IAM. Essas tags são pares de chave-valor. Você define o nome da chave de tag e o valor associado ao nome dessa chave. Por exemplo, convém criar uma tag com uma chave **department** e um valor **Human Resources**. Para obter mais informações sobre como etiquetar entidades do IAM, consulte [Tags para recursos do AWS Identity and Access Management](id_tags.md). Para obter informações sobre como marcar recursos criados por outros serviços da AWS, consulte a documentação desse serviço. Para obter informações sobre como usar o Tag Editor, consulte [Trabalhar com o Tag Editor](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html) no *Console de gerenciamento da AWS Guia do usuário*.

Você pode etiquetar recursos do IAM para simplificar a descoberta, a organização e o monitoramento de seus recursos do IAM. Você também pode etiquetar as identidades do IAM para controlar o acesso a recursos ou etiquetar a si mesmo. Para saber mais sobre como usar tags para controlar o acesso, consulte [Controle de acesso para usuários e funções do IAM usando etiquetas](access_iam-tags.md). 

## Onde você pode usar variáveis de política
<a name="policy-vars-wheretouse"></a>

 É possível usar variáveis de política no elemento `Resource` e em comparações de string no elemento `Condition`.

### Elemento de recursos
<a name="policy-vars-resourceelement"></a>

É possível usar uma variável de política no elemento `Resource`, mas somente na parte de recurso do ARN. Essa parte do ARN aparece após o quinto sinal de dois pontos (:). Não é possível usar uma variável para substituir partes do ARN antes do quinto sinal de dois pontos, como o serviço ou a conta. Para obter mais informações sobre o formato do ARN, consulte [ARNs do IAM](reference_identifiers.md#identifiers-arns).

Para substituir parte de um ARN com um valor de tag, coloque o prefixo e o nome da chave com `${ }`. Por exemplo, o elemento de Recurso  a seguir se refere apenas a um bucket com o mesmo nome do valor na tag do usuário de solicitação.

`"Resource": ["arn:aws::s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/department}"]`

Muitos recursos da AWS usam ARNs que contêm um nome criado pelo usuário. A política do IAM a seguir garante que somente os usuários pretendidos com valores de tag access-project, access-application e access-environment correspondentes possam modificar seus recursos. Além disso, usando [correspondências curingas \$1](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html), eles podem permitir sufixos de nomes de recursos personalizados. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessBasedOnArnMatching",
      "Effect": "Allow",
      "Action": [
        "sns:CreateTopic",
        "sns:DeleteTopic"],      
      "Resource": ["arn:aws:sns:*:*:${aws:PrincipalTag/access-project}-${aws:PrincipalTag/access-application}-${aws:PrincipalTag/access-environment}-*"
      ]
    }
  ]
}
```

------

### Elemento de condição
<a name="policy-vars-conditionelement"></a>

É possível usar uma variável de política para valores `Condition` em qualquer condição que envolva os operadores de string ou os operadores de ARN. Os operadores de string incluem `StringEquals`, `StringLike` e `StringNotLike`. Os operadores de ARN incluem `ArnEquals` e `ArnLike`. Não é possível usar uma variável de política com outros operadores, como os operadores `Numeric`, `Date`, `Boolean`, `Binary`, `IP Address` ou `Null`. Para obter mais informações sobre operadores de condição, consulte [Elementos de política JSON do IAM: operadores de condição](reference_policies_elements_condition_operators.md).

Ao fazer referência a uma tag em uma expressão do elemento `Condition`, use o prefixo relevante e o nome da chave de condição. Em seguida, use o valor que você deseja testar no valor da condição.

Por exemplo, o exemplo de política a seguir permite acesso total aos usuários, mas apenas se a tag `costCenter` estiver anexada ao usuário. A tag também deve ter um valor de `12345` ou `67890`. Se a tag não tiver valor, ou qualquer outro valor, a solicitação falhará.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:*user*"
       ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:ResourceTag/costCenter": [ "12345", "67890" ]
        }
      }
    }
  ]
}
```

------

## Variáveis de política sem valor
<a name="policy-vars-no-value"></a>

Quando as variáveis de política fazem referência a uma chave de contexto de condição que não tem valor ou não está presente em um contexto de autorização para uma solicitação, o valor é efetivamente nulo. Não há valor igual ou semelhante. As chaves de contexto de condição podem não estar presentes no contexto de autorização quando:
+ Você está usando chaves de contexto de condição específicas do serviço em solicitações a recursos que não oferecem suporte a essa chave de condição.
+ As etiquetas em entidades principais, sessões, recursos ou solicitações do IAM não estão presentes.
+ Outras circunstâncias, conforme listadas para cada chave de contexto de condição global em [AWSChaves de contexto de condições globais da](reference_policies_condition-keys.md).

Quando você usa uma variável sem valor no elemento de condição de uma política do IAM, [Elementos de política JSON do IAM: operadores de condição](reference_policies_elements_condition_operators.md) como `StringEquals` ou `StringLike` não tem correspondência, e a instrução de política não entra em vigor.

Operadores de condição invertida como `StringNotEquals` ou `StringNotLike` correspondem a um valor nulo, pois o valor da chave de condição que serve de base para o teste não é igual ou semelhante ao valor efetivamente nulo.

Neste exemplo, `aws:principaltag/Team` deve ser igual a `s3:ExistingObjectTag/Team` para permitir o acesso. O acesso é explicitamente negado quando não `aws:principaltag/Team` está definido. Se uma variável sem valor no contexto de autorização for usada como parte do elemento `Resource` ou `NotResource` de uma política, o recurso que inclui uma variável de política sem valor não corresponderá a nenhum recurso.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
    "Effect": "Deny", 
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringNotEquals": {
        "s3:ExistingObjectTag/Team": "${aws:PrincipalTag/Team}"
       }
      }
    }
  ]
}
```

------

## Solicitar informações que você pode usar para variáveis de política
<a name="policy-vars-infotouse"></a>

 É possível usar o elemento `Condition` de uma política JSON para comparar chaves no [contexto da solicitação](reference_policies_evaluation-logic_policy-eval-reqcontext.md) com os valores de chave especificados na política. Quando você usa uma variável de política, a AWS substitui um valor da chave de contexto de solicitação no lugar da variável na política.

### Valores de chave de principal
<a name="principaltable"></a>

Os valores de `aws:username`, `aws:userid` e `aws:PrincipalType` dependem do tipo de principal que iniciou a solicitação. Por exemplo, a solicitação pode ser feita usando as credenciais de um usuário do IAM, um perfil do IAM ou o Usuário raiz da conta da AWS. A seguinte lista mostra valores para essas chaves de diferentes tipos de entidades principais. 


****  

| Entidade principal | `aws:username` | `aws:userid` | `aws:PrincipalType` | 
| --- | --- | --- | --- | 
| Usuário raiz da conta da AWS | (não está presente) | ID da Conta da AWS | Account | 
| IAM user (Usuário do IAM) | IAM-user-name | [ID exclusivo](reference_identifiers.md#identifiers-unique-ids) | User | 
| Entidade principal de usuário federado do AWS STS | (não está presente) | conta:caller-specified-name | FederatedUser | 
| Entidade principal federada OIDC Para obter informações sobre as chaves de política que estão disponíveis ao usar federação de identidades da web, consulte [Chaves disponíveis para federação OIDC da AWS](reference_policies_iam-condition-keys.md#condition-keys-wif).  | (não está presente) |   *role-id*:*caller-specified-role-name*  em que `role-id` é o [id exclusivo da função](reference_identifiers.md#identifiers-unique-ids) e caller-specified-role-name é especificado pelo [parâmetro RoleSessionName](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html#API_AssumeRoleWithWebIdentity_RequestParameters) passado para a solicitação AssumeRoleWithWebIdentity.  | AssumedRole | 
| Entidade principal federada SAML Para obter informações sobre as chaves de política que estão disponíveis ao usar a federação SAML, consulte [Identificar exclusivamente os usuários na federação baseada em SAML](id_roles_providers_saml.md#CreatingSAML-userid).  | (não está presente) |  *role-id*:*caller-specified-role-name* em que `role-id` corrresponde ao [id exclusivo da função](reference_identifiers.md#identifiers-unique-ids) e o nome da função especificado pelo autor da chamada é especificado pelo elemento de atributo com o [atributo Name](id_roles_providers_create_saml_assertions.md) definido como https://aws.amazon.com/SAML/attributes/RoleSessionName.  | AssumedRole | 
| Função assumida | (não está presente) |  *role-id*:*caller-specified-role-name* em que `role-id` é o [id exclusivo da função](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) e caller-specified-role-name é especificado pelo [parâmetro RoleSessionName](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters) passado para a solicitação AssumeRole.  | AssumedRole | 
| Função atribuída a uma instância do Amazon EC2 | (não está presente) |  *role-id*:*ec2-instance-id* em que `role-id` é o [id exclusivo da função](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) e o ec2-instance-id é o [identificador exclusivo da instância do EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html).  | AssumedRole | 
| Autor da chamada anônimo (somente Amazon SQS, Amazon SNS e Amazon S3) | (não está presente) | anonymous | Anonymous | 

Para os itens nesta tabela, observe o seguinte:
+ *not present (não está presente)* significa que o valor não está nas informações da solicitação atual, e que qualquer tentativa de correspondê-lo falhará e fará com que a instrução seja invalidada. 
+ *role-id* é um identificador exclusivo atribuído a cada função na criação. É possível exibir o ID da função com o comando da AWS CLI: `aws iam get-role --role-name rolename`
+ *caller-specified-name* e *caller-specified-role-name* são nomes que são passados pelo processo de chamada (como um aplicativo ou serviço) ao fazer uma chamada para obter credenciais temporárias.
+ *ec2-instance-id* é um valor atribuído à instância quando ela é iniciada e aparece na página **Instances** (Instâncias) do console do Amazon EC2. Também é possível exibir o ID da instância executando o comando da AWS CLI: `aws ec2 describe-instances`

### Informações disponíveis em solicitações para entidades principais federadas
<a name="policy-vars-infoWIF"></a>

Entidades principais federadas são usuários que são autenticados usando um sistema diferente do IAM. Por exemplo, uma empresa pode ter uma aplicação para uso interno que faz chamadas para a AWS. Pode ser impraticável fornecer uma identidade do IAM para cada usuário corporativo que use o aplicativo. Em vez disso, a empresa pode usar um aplicativo proxy (camada intermediária) que tem uma única identidade do IAM ou a empresa pode usar um provedor de identidade (IdP) SAML. O aplicativo proxy ou IdP SAML autentica usuários individuais usando a rede corporativa. Um aplicativo proxy pode usar sua identidade do IAM para obter credenciais de segurança temporárias para usuários individuais. Um IdP SAML pode, efetivamente, trocar informações de identidade por credenciais de segurança temporárias da AWS. As credenciais de segurança temporárias podem ser usadas para acessar os recursos da AWS. 

Da mesma forma, você pode criar uma aplicação para um dispositivo móvel no qual ela precise acessar os recursos da AWS. Nesse caso, você pode usar a *federação OIDC*, em que a aplicação autentica o usuário usando um provedor de identidades conhecido, como Login with Amazon, Amazon Cognito, Facebook ou Google. A aplicação pode então usar as informações de autenticação do usuário desses provedores para obter credenciais de segurança temporárias para acessar recursos da AWS. 

A maneira recomendada de usar a federação OIDC é aproveitando as vantagens oferecidas pelo Amazon Cognito e os SDKs móveis da AWS. Para saber mais, consulte:
+ [Guia do usuário do Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) 
+ [Cenários comuns para credenciais temporárias](id_credentials_temp.md#sts-introduction)

### Caracteres especiais
<a name="policy-vars-specialchars"></a>

Há algumas variáveis de políticas predefinidas especiais com valores fixos que permitem representar caracteres que, de outra forma, têm um significado especial. Se esses caracteres especiais fizerem parte da string, você estiver tentando estabelecer uma correspondência e os inseriu literalmente, eles seriam mal-interpretados. Por exemplo, inserir um asterisco \$1 na string seria interpretado como curinga, fazendo correspondência com qualquer caractere, em vez de como um \$1 literal. Nesses casos, você pode usar as seguintes variáveis de política predefinidas:
+ **\$1\$1\$1\$1** - use quando precisar um asterisco (\$1).
+ **\$1\$1?\$1** - use quando precisar de um ponto de interrogação (?).
+ **\$1\$1\$1\$1** - use quando precisar de um caractere de cifrão (\$1).

Essas variáveis de política predefinidas podem ser usadas em qualquer string onde é possível usar variáveis de política normais.

## Especificação de valores padrão
<a name="policy-vars-default-values"></a>

Para adicionar um valor padrão a uma variável, coloque o valor padrão entre aspas simples (`' '`) e separe o texto da variável e o valor padrão com uma vírgula e espaço (`, `).

Por exemplo, se uma entidade principal estiver marcada com um `team=yellow`, é possível acessar o bucket do Amazon S3 da `ExampleCorp's` nomeado como `amzn-s3-demo-bucket-yellow`. Uma política com esse recurso permite que os membros da equipe acessem o bucket da própria equipe, mas não os de outras equipes. Para usuários sem etiquetas de equipe, ele define um valor padrão de `company-wide` para o nome do bucket. Esses usuários podem acessar somente o bucket `amzn-s3-demo-bucket-company-wide`, onde podem visualizar informações gerais, como instruções para ingressar em uma equipe.

```
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket-${aws:PrincipalTag/team, 'company-wide'}"
```

## Para obter mais informações
<a name="policy-vars-formoreinfo"></a>

Para obter mais informações sobre políticas, consulte o seguinte: 
+  [Políticas e permissões no AWS Identity and Access Management](access_policies.md) 
+  [Exemplos de políticas baseadas em identidade do IAM](access_policies_examples.md) 
+  [Referência de elemento de política JSON do IAM](reference_policies_elements.md) 
+  [Lógica da avaliação de política](reference_policies_evaluation-logic.md) 
+  [Federação OIDC](id_roles_providers_oidc.md)

# Elementos de política JSON do IAM: tipos de dados compatíveis
<a name="reference_policies_elements_datatypes"></a>

Esta seção lista os tipos de dados compatíveis quando você especifica valores em políticas JSON. A linguagem da política não é compatível com todos os tipos para cada elemento de política; para obter informações sobre cada elemento, consulte as seções anteriores.
+ Strings
+ Números (Inteiros e floats)
+ Booleano
+ Null
+ Listas
+ Mapas
+ Estruturas (que são apenas mapas aninhados)

A tabela a seguir mapeia cada tipo de dado à serialização. Observe que todas as políticas devem estar em UTF-8. Para obter informações sobre os tipos de dados JSON, consulte [RFC 4627](https://datatracker.ietf.org/doc/html/rfc4627).


****  

| Tipo | JSON | 
| --- | --- | 
|  String  |  String  | 
|  Inteiro  |  Número  | 
|  Float  |  Número  | 
|  Booleano  |  verdadeiro falso  | 
|  Null  |  nulo  | 
|  Data  |  String aderindo ao [perfil W3C da ISO 8601](http://www.w3.org/TR/NOTE-datetime)  | 
|  IpAddress  |  String aderindo a [RFC 4632](https://datatracker.ietf.org/doc/html/rfc4632)  | 
|  Lista  |  Array  | 
|  Objeto  |  Objeto  | 

# Lógica da avaliação de política
<a name="reference_policies_evaluation-logic"></a>

Quando uma entidade principal tenta usar o Console de gerenciamento da AWS, a API da AWS ou a AWS CLI, ela envia uma *solicitação* para a AWS. Quando um serviço da AWS recebe a solicitação, a AWS realiza várias etapas para determinar se deve permitir ou negar a solicitação.

1. **Autenticação**: a AWS primeiro autentica a entidade principal que faz a solicitação, se necessário. Essa etapa não é necessária para alguns serviços, como o Amazon S3, que permite algumas solicitações de usuários anônimos.

1. **[Processamento do contexto da solicitação](reference_policies_evaluation-logic_policy-eval-reqcontext.md)** – AWS a processa as informações coletadas na solicitação para determinar quais políticas se aplicam à solicitação.

1. **[Como a lógica do código de imposição da AWS avalia as solicitações para permitir ou negar acesso](reference_policies_evaluation-logic_policy-eval-denyallow.md)**: a AWS avalia todos os tipos de política, e a ordem das políticas afeta a forma como são avaliadas. A AWS então processa as políticas em relação ao contexto da solicitação para determinar se a solicitação é permitida ou negada.

## Avaliação das políticas baseadas em identidade com políticas baseadas em recurso
<a name="policy-eval-basics-id-rdp"></a>

As políticas baseadas em identidade e as baseadas em recurso concedem permissões para as identidades ou recursos aos quais elas estão conectadas. Quando uma entidade do IAM (usuário ou função) solicita acesso a um recurso na mesma conta, a AWS avalia todas as permissões concedidas pelas políticas baseadas em identidade e as políticas baseadas em recurso. As permissões resultantes são a união das permissões dos dois tipos. Se uma ação for permitida por uma política baseada em identidade, uma política baseada em recurso ou ambas, o AWS permitirá a ação. Uma negação explícita em qualquer uma dessas políticas substitui a permissão.

![\[Avaliação das políticas baseadas em identidade e políticas baseadas em recurso\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/permissions_policies_effective.png)


## Avaliação das políticas baseadas em identidade com limites de permissões
<a name="policy-eval-basics-id-bound"></a>

Quando o AWS avalia as políticas baseadas em identidade e limites de permissões para um usuário, as permissões resultantes são a interseção das duas categorias. Isso significa que, quando você adiciona um limite de permissões a um usuário com políticas baseadas em identidade existentes, você pode reduzir as ações que o usuário pode executar. Como alternativa, quando você remove o limite de permissões de um usuário, você pode aumentar as ações que ele pode executar. Uma negação explícita em qualquer uma dessas políticas substitui a permissão. Para visualizar informações sobre como outros tipos de política são avaliadas com limites de permissões, consulte [Avaliar permissões efetivas com limites](access_policies_boundaries.md#access_policies_boundaries-eval-logic).

![\[Avaliação das políticas baseadas em identidade com limites de permissões\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/permissions_boundary.png)


## Avaliação das políticas baseadas em identidade com SCPs ou RCPs do AWS Organizations
<a name="policy-eval-basics-id-scp"></a>

Quando um usuário pertence a uma conta que é membro de uma organização e acessa um recurso que não tenha uma política baseada em recursos configurada, as permissões resultantes são a interseção das políticas do usuário, políticas de controle de serviços (SCPs) e política de controle de recursos (RCP). Isso significa que uma ação deve ser permitida pelos três tipos de política. Uma negação explícita na política baseada em identidade, uma SCP ou uma RCP se sobrepõem à permissão.

![\[Avaliação de políticas baseadas em identidade e SCPs ou RCPs\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/permissions_scp-idp.png)


É possível saber [se sua conta é membro de uma organização](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account) no AWS Organizations. Os membros da organização podem ser afetados por uma SCP ou RCP. Para visualizar esses dados usando o comando da AWS CLI ou operação de API da AWS, você deve ter permissões para a ação `organizations:DescribeOrganization` da sua entidade do AWS Organizations. Você deve ter permissões adicionais para executar a operação no console do AWS Organizations. Para saber se uma SCP ou RCP está negando acesso a uma solicitação específica ou alterar as permissões efetivas, entre em contato com seu administrador do AWS Organizations.

# Processamento do contexto da solicitação
<a name="reference_policies_evaluation-logic_policy-eval-reqcontext"></a>

*Quando a AWS avalia e autoriza uma solicitação, ela reúne as informações da solicitação em um contexto da solicitação*. O contexto da solicitação contém todas as informações que podem ser usadas na avaliação de políticas.
+ **Entidade principal**: o usuário, perfil ou entidade principal de usuário federado que enviou a solicitação. As informações sobre a entidade principal incluem as políticas que estão associadas à entidade principal. 
+ **Ações**: uma ou mais ações que a entidade principal deseja realizar.
+ **Recursos**: um ou mais objetos de recurso da AWS em que ações ou operações são realizadas.
+ **Dados do recurso** – Dados relacionados ao recurso que está sendo solicitado. Isso pode incluir informações como um nome da tabela do DynamoDB ou uma tag em uma instância do Amazon EC2.
+ **Dados do ambiente** – Informações sobre o endereço IP, o agente de usuário, o status do SSL habilitado ou a hora do dia.

Essas informações são comparadas com as políticas aplicáveis para determinar se a solicitação deve ser permitida ou negada. Você pode organizar essas informações de propriedade usando o modelo **Entidade principal**, **Ação**, **Recurso** e **Condição** (PARC) para entender melhor como as políticas da AWS são avaliadas.

## Entender o modelo PARC
<a name="reqcontext_parc-model"></a>

O modelo PARC representa o contexto da solicitação com base nos quatro elementos em JSON do texto da política:
+ [Principal](reference_policies_elements_principal.md): a entidade que está fazendo a solicitação. Uma entidade principal do IAM representa um usuário humano ou uma workload programática que pode ser autenticada e depois autorizada a executar ações nas Contas da AWS.
+ [Action](reference_policies_elements_action.md): a operação sendo realizada. Frequentemente, a ação será mapeada para uma ação da API.
+ [Resource](reference_policies_elements_resource.md): o recurso da AWS em que a ação está sendo realizada.
+ [Condition](reference_policies_elements_condition.md): restrições adicionais que devem ser atendidas para que a solicitação seja permitida.

O seguinte exemplo mostra como o modelo PARC poderia representar o contexto de uma solicitação:

```
Principal: AIDA123456789EXAMPLE
Action: s3:CreateBucket
Resource: arn:aws:s3:::amzn-s3-demo-bucket1
Context:
- aws:UserId=AIDA123456789EXAMPLE:BobsSession
- aws:PrincipalAccount=123456789012
- aws:PrincipalOrgId=o-example
- aws:PrincipalARN=arn:aws:iam::AIDA123456789EXAMPLE:role/HR
- aws:MultiFactorAuthPresent=true
- aws:CurrentTime=...
- aws:EpochTime=...
- aws:SourceIp=...
- aws:PrincipalTag/dept=123
- aws:PrincipalTag/project=blue
- aws:RequestTag/dept=123
```

## Importância do contexto da solicitação
<a name="reqcontext_importance"></a>

Entender o contexto da solicitação e como ele interage com a avaliação de políticas é essencial para:
+ Solucionar problemas de acesso em geral 
+ Criar políticas eficazes e seguras
+ Entender todo o escopo das permissões concedidas por uma política
+ Prever o resultado das avaliações de políticas em diferentes cenários

Se visualizar o contexto da solicitação usando o modelo PARC, você poderá entender com mais facilidade como a AWS toma decisões de autorização e criar políticas mais eficazmente.

## Como a AWS usa o contexto da solicitação
<a name="reqcontext_usage"></a>

Ao avaliar políticas, a AWS compara as informações do contexto da solicitação com as informações especificadas em todas as políticas aplicáveis. Isso inclui as políticas baseadas em identidades, as políticas baseadas em recursos, os limites de permissões do IAM, as SCPs das organizações, as RCPs das organizações e as políticas de sessão.

Para cada tipo de política, a AWS usa o contexto da solicitação para verificar:
+ Se a política se aplica à solicitação com base na entidade principal.
+ Se a ação solicitada é permitida no recurso especificado.
+ Se alguma das condições especificadas na política é atendida pelo contexto da solicitação.

A forma como o AWS avalia as políticas depende dos tipos de políticas que se aplicam ao contexto da solicitação. Esses tipos de políticas estão disponíveis para uso em uma única Conta da AWS. Para obter mais informações sobre esses tipos de política, consulte [Políticas e permissões no AWS Identity and Access Management](access_policies.md). Para saber como a AWS avalia políticas para acesso entre contas, consulte [Lógica de avaliação de política entre contas](reference_policies_evaluation-logic-cross-account.md).
+ **Políticas de controle de recursos (RCPs) do AWS Organizations**: as RCPs do AWS Organizations especificam o número máximo de permissões disponíveis para recursos nas contas da sua organização ou unidade organizacional (UO). As RCPs se aplicam aos recursos nas contas de membros e afetam as permissões efetivas das entidades principais, incluindo o Usuário raiz da conta da AWS, independentemente de as entidades principais pertencerem à organização. As RCPs não se aplicam a recursos na conta de gerenciamento da organização e a chamadas feitas por perfis vinculados ao serviço. Se existir uma RCP, as permissões concedidas pelas políticas baseadas em identidades e baseadas em recursos às entidades principais nas contas de membros terão efeito apenas se a RCP permitir a ação.
+ **Políticas de controle de serviço (SCPs) do AWS Organizations**: as SCPs do AWS Organizations especificam as permissões máximas disponíveis para entidades principais nas contas em uma organização ou unidade organizacional (UO). As SCPs se aplicam a entidades principais em contas-membro, incluindo cada Usuário raiz da conta da AWS. Se uma SCP estiver presente, as permissões concedidas por políticas baseadas em identidade e baseadas em recurso a entidades principais nas suas contas-membro somente estarão efetivas se a SCP permitir a ação. As únicas exceções são as entidades principais na conta de gerenciamento da organização e os perfis vinculados ao serviço.
+ **Políticas baseadas em recursos**: as políticas baseadas em recursos concedem permissões para as entidades principais especificadas na política. As permissões definem o que a entidade principal pode fazer com o recurso ao qual a política está anexada.
+ **Limites de permissões**: os limites de permissões são um atributo que define as permissões máximas que uma política baseada em identidades pode conceder a uma entidade do IAM (usuário ou perfil). Quando você definir um limite de permissões para uma entidade, a entidade poderá executar apenas as ações que sejam permitidas tanto pelas políticas baseadas em identidade quanto pelo seu limites de permissões. Em alguns casos, uma negação implícita em um limite de permissões pode limitar as permissões concedidas por uma política baseada em recursos. Para obter mais informações, consulte [Como a lógica do código de imposição da AWS avalia as solicitações para permitir ou negar acesso](reference_policies_evaluation-logic_policy-eval-denyallow.md).
+ **Políticas baseadas em identidade**: as políticas baseadas em identidade são anexadas a uma identidade do IAM (usuário, grupo de usuários ou função) e concedem permissões a entidades do IAM (usuários e funções). Se somente políticas baseadas em identidade se aplicarem a uma solicitação, o AWS verificará todas essas políticas para pelo menos um `Allow`.
+ **Políticas de sessão**: políticas de sessão são políticas que você passa como parâmetros ao criar de forma programática uma sessão temporária para um perfil ou sessão de usuário federado. Para criar uma sessão de função de forma programática, use uma das operações da API `AssumeRole*`. Quando você faz isso e passa políticas de sessão, as permissões de sessão resultantes são a interseção da política baseada em identidade do IAM e as políticas de sessão. Para criar uma sessão de usuário federado, use as chaves de acesso do usuário do IAM para chamar de forma programática a operação da API `GetFederationToken`. Para obter mais informações, consulte [Políticas de sessão](access_policies.md#policies_session).

Lembre-se de que uma negação explícita em qualquer uma dessas políticas substitui a permissão.

**nota**  
As **políticas declarativas do AWS Organizations** permitem que você declare e aplique centralmente a configuração desejada para um determinado AWS service (Serviço da AWS) em grande escala em uma organização. Como as políticas declarativas são aplicadas diretamente no nível do serviço, elas não afetam diretamente as solicitações de avaliação de políticas e não são incluídas no contexto da solicitação. Para obter mais informações, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) no Guia do Usuário do AWS Organizations.

## Exemplo de avaliação de políticas usando o modelo PARC
<a name="reqcontext_example"></a>

Para ilustrar como o contexto da solicitação interage com a avaliação da políticas, vamos considerar um exemplo de política:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/dept": "123"
        }
      }
    }
  ]
}
```

------

Nesse exemplo, a política permitiria a ação `CreateBucket` apenas quando o contexto da solicitação incluísse um valor `aws:PrincipalTag/dept` de "123" e o recurso correspondesse ao nome de bucket `amzn-s3-demo-bucket1`. A tabela a seguir mostra como a AWS usa o contexto da solicitação para avaliar essa política e tomar decisões de autorização.


| Política | Contexto da solicitação | Resultado da avaliação | 
| --- | --- | --- | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **correspondência** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:DeleteBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Nenhuma correspondência** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=321</pre>  | **Nenhuma correspondência** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:</pre> Nenhum `aws:PrincipalTag` na solicitação.  | **Nenhuma correspondência** | 

# Como a lógica do código de imposição da AWS avalia as solicitações para permitir ou negar acesso
<a name="reference_policies_evaluation-logic_policy-eval-denyallow"></a>

O código de imposição da AWS decide se a solicitação enviada a AWS deve ser permitida ou negada. A AWS avalia todas as políticas que são aplicáveis ao contexto da solicitação. A seguir há um resumo sobre a lógica de avaliação de políticas da AWS.
+ Por padrão, todas as solicitações são implicitamente negadas, com exceção do Usuário raiz da conta da AWS, que tem acesso total.
+ As solicitações devem ser explicitamente permitidas por uma política ou conjunto de políticas seguindo a lógica de avaliação abaixo para serem permitidas.
+ Uma negação explícita se sobrepõe a uma permissão explícita.

A avaliação da política pode diferir dependendo se a solicitação está dentro de uma única conta ou é uma solicitação entre contas. Para obter detalhes de como uma decisão de avaliação de política é tomada para um perfil ou usuário do IAM em uma única conta, consulte [Avaliação de políticas para solicitações em uma única conta](reference_policies_evaluation-logic_policy-eval-basics.md). Para obter detalhes de como uma decisão de avaliação de política é tomada para solicitações entre contas, consulte [Lógica de avaliação de política entre contas](reference_policies_evaluation-logic-cross-account.md).
+ **Avaliação de negação**: por padrão, todas as solicitações são negadas. Isso é chamado de [negação implícita](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). O código de imposição do AWS avalia todas as políticas na conta que se aplicam à solicitação. Isso inclui SCPs e RCPs do AWS Organizations, políticas baseadas em recurso, políticas baseadas em identidade, limites de permissões do IAM e políticas de sessão. Em todas essas políticas, o código de imposição procura por uma declaração `Deny` aplicável à solicitação. Esse processo é chamado de [negação explícita](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Se o código de imposição encontrar uma única negação explícita aplicável, ele retornará uma decisão final de **Negar**. Se não houver uma negação explícita, a avaliação do código de imposição continuará.
+ **RCPs do AWS Organizations**: o código de imposição avalia as políticas de controle de recursos (RCPs) do AWS Organizations que se aplicam à solicitação. As RCPs se aplicam aos recursos da conta à qual as RCPs estão vinculadas. Se o código de imposição não encontrar nenhuma instrução `Allow` aplicável nas RCPs, ele retornará uma decisão final de **Negar**. Observe que uma política gerenciada pela AWS chamada `RCPFullAWSAccess` é criada e anexada automaticamente a cada entidade em sua organização, incluindo a raiz, cada OU e Conta da AWS quando as RCPs estão habilitadas. A `RCPFullAWSAccess` não pode ser separada, então sempre haverá uma instrução `Allow`. Se não houver uma RCP ou se a RCP permitir a ação solicitada, a avaliação do código de imposição continuará.
+ **SCPs do AWS Organizations**: o código de imposição avalia as políticas de controle de serviços (SCPs) do AWS Organizations que se aplicam à solicitação. As SCP aplicam-se às entidades principais da conta em que as SCP estão associadas. Se o código de imposição não encontrar nenhuma instrução `Allow` aplicável nas SCPs, ele retornará uma decisão final de **Negar**. Se não houver uma SCP ou se a SCP permitir a ação solicitada, a avaliação do código de imposição continuará.
+ **Políticas baseadas em recursos**: na mesma conta, as políticas baseadas em recursos afetam a avaliação de política de maneira diferente, dependendo do tipo de entidade principal que está acessando o recurso e a entidade principal que é permitida na política baseada em recursos. Dependendo do tipo de entidade principal, um `Allow` em uma política baseada em recursos pode resultar em uma decisão final de `Allow`, mesmo se houver uma negação implícita em uma política baseada em identidade, limite de permissões ou política de sessão.

  Para a maioria dos recursos, você só precisa de um `Allow` explícito para a entidade principal em uma política baseada em identidade ou em recurso para conceder acesso. [Políticas de confiança de perfil do IAM](access_policies-cross-account-resource-access.md#access_policies-cross-account-delegating-resource-based-policies) e [políticas de chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) são exceções a essa lógica, porque devem permitir explicitamente o acesso para [entidades principais](reference_policies_elements_principal.md). As políticas baseadas em recursos para serviços diferentes do IAM e do AWS KMS também podem exigir uma declaração `Allow` explícita na mesma conta para conceder o acesso. Para obter mais informações, consulte a documentação do serviço específico com o qual está trabalhando.

  Para solicitações de avaliação de política em uma única conta, a lógica de política baseada em recurso difere de outros tipos de política se a entidade principal especificada for um usuário do IAM, um perfil do IAM ou uma entidade principal de sessão. As entidades principais de sessão incluem [sessões de perfil do IAM](reference_policies_elements_principal.md#principal-role-session) ou [entidades principais de usuário federado do AWS STS](reference_policies_elements_principal.md#sts-session-principals). Se uma política baseada em recursos conceder permissão diretamente ao usuário do IAM ou à entidade principal de sessão que está fazendo a solicitação, uma negação implícita em uma política baseada em identidade, um limite de permissões ou uma política de sessão não afetará a decisão final.
  + **Função do IAM**: as políticas baseadas em recursos que concedem permissões a um ARN de função do IAM são limitadas por uma negação implícita em um limite de permissões ou política de sessão. É possível especificar o ARN do perfil no elemento da entidade principal ou a chave de condição `aws:PrincipalArn`. Em ambos os casos, a entidade principal que faz a solicitação é a **sessão de perfil do IAM**.

    Limites de permissões ou políticas de sessão não limitam as permissões concedidas usando a chave de condição `aws:PrincipalArn` com um curinga (\$1) no elemento de entidade principal, a menos que as políticas baseadas em identidade contenham uma negação explícita. Para obter mais informações, consulte [Entidades de segurança de função do IAM](reference_policies_elements_principal.md#principal-roles).

    **Exemplo de ARN de função**

    ```
    arn:aws:iam::111122223333:role/examplerole
    ```
  + **Sessão de função do IAM**: na mesma conta, as políticas baseadas em recursos que concedem permissões a um ARN de sessão de função do IAM concedem permissões diretamente para a sessão de função assumida. As permissões concedidas diretamente a uma sessão não são limitadas por uma negação implícita em uma política baseada em identidade, um limite de permissões ou uma política de sessão. Quando você assume uma função e faz uma solicitação, a entidade principal que faz a solicitação é o ARN da sessão de função do IAM e não o ARN da função em si. Para obter mais informações, consulte [Entidades principais da sessão de função](reference_policies_elements_principal.md#principal-role-session).

    **Exemplo de ARN de sessão de função**

    ```
    arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    ```
  + **Usuário do IAM**: na mesma conta, as políticas baseadas em recursos que concedem permissões a um ARN de usuário do IAM (que não é uma sessão de usuário federado) não são limitadas por uma negação implícita em uma política baseada em identidade ou limite de permissões.

    **Exemplo de ARN de usuário do IAM**

    ```
    arn:aws:iam::111122223333:user/exampleuser
    ```
  + **Entidade principal de usuário federado do AWS STS**: uma sessão de usuário federado é uma sessão criada por meio de um chamado a [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken). Quando um usuário federado faz uma solicitação, a entidade principal que faz a solicitação é o ARN do usuário federado e não o ARN do usuário do IAM que federou. Na mesma conta, as políticas baseadas em recursos que concedem permissões a um ARN de usuário federado concedem permissões diretamente para a sessão. As permissões concedidas diretamente a uma sessão não são limitadas por uma negação implícita em uma política baseada em identidade, um limite de permissões ou uma política de sessão.

    No entanto, se uma política baseada em recursos conceder permissão ao ARN do usuário do IAM que se federou, as solicitações feitas pelo usuário federado durante a sessão serão limitadas por uma negação implícita em um limite de permissão ou política de sessão.

    **Exemplo de ARN de sessão de usuário federado**

    ```
    arn:aws:sts::111122223333:federated-user/exampleuser
    ```
+ **Políticas baseadas em identidade**: o código de imposição verifica as políticas baseadas em identidade para a entidade principal. Para um usuário do IAM, isso inclui políticas de usuário e políticas de grupos aos quais o usuário pertence. Se não houver políticas baseadas em identidade ou instruções em políticas baseadas em identidade que permitam a ação solicitada, a solicitação será implicitamente negada e o código de imposição retornará uma decisão final de **Negar**. Se uma instrução em qualquer política aplicável baseada em identidade permitir a ação solicitada, a avaliação do código prosseguirá.
+ **Limites de permissões do IAM**: o código de aplicação verifica se a entidade do IAM que é usada pela entidade principal tem um limite de permissões. Se a política que é usada para definir o limite de permissões não permitir a ação solicitada, a solicitação será implicitamente negada. O código de imposição retorna uma decisão final de **Deny** (Negação). Se não houver um limite de permissões ou se o limite de permissões permitir a ação solicitada, a avaliação do código prosseguirá.
+ **Políticas de sessão**: o código de imposição confere se a entidade principal é uma entidade principal de sessão. As entidades principais de sessão incluem uma sessão de perfil do IAM ou uma sessão de usuário federado do AWS STS. Se a entidade principal não for uma entidade principal de sessão, o código de imposição retornará uma decisão final de **Allow** (Permitir).

  Para entidades principais de sessão, o código de imposição confere se uma política de sessão foi transmitida na solicitação. É possível passar uma política de sessão enquanto usa a API AWS CLI ou AWS para obter credenciais temporárias para um perfil ou uma entidade principal de usuário federado do AWS STS. Se você não aprovou uma política de sessão, uma política de sessão padrão será criada, e o código de imposição retornará uma decisão final de **Permitir**.
  + Se houver uma política de sessão presente e ela não permitir a ação solicitada, a solicitação será implicitamente negada. O código de imposição retorna uma decisão final de **Deny** (Negação).
  + O código de imposição confere se a entidade principal é uma sessão de perfil. Se a entidade principal for uma sessão de perfil, a solicitação será **Permitida**. Caso contrário, a solicitação é implicitamente negada e o código de imposição retorna uma decisão final de **Negar**.
  + Se houver uma política de sessão presente e ela permitir a ação solicitada, o código de imposição retorna uma decisão final de **Allow** (Permitir).

# Avaliação de políticas para solicitações em uma única conta
<a name="reference_policies_evaluation-logic_policy-eval-basics"></a>

## Avaliação de política para um perfil do IAM
<a name="policy-eval-basics-single-account-role"></a>

O fluxograma a seguir fornece detalhes sobre como uma decisão de avaliação de política é tomada para um perfil do IAM em uma única conta.

![\[Fluxograma de avaliação para um perfil do IAM em uma única conta\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/PolicyEvaluationSingleAccountRole.png)


## Avaliação de política para um usuário do IAM
<a name="policy-eval-basics-single-account-user"></a>

O fluxograma a seguir fornece detalhes de como uma decisão de avaliação de política é tomada para um usuário do IAM em uma única conta.

![\[Fluxograma de avaliação para um usuário do IAM em uma única conta\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/PolicyevaluationSingleAccountUser.png)


## Exemplo de avaliação das políticas baseadas em identidade e políticas baseadas em recurso
<a name="reference_policies_evaluation-logic_policies_evaluation_example"></a>

Os tipos de políticas mais comuns são políticas baseadas em identidade e políticas baseadas em recurso. Quando o acesso a um recurso é solicitado, a AWS avalia todas as permissões concedidas pelas políticas para **pelo menos uma permissão** na mesma conta. Uma negação explícita em qualquer uma das políticas substitui a permissão.

**Importante**  
Se a política baseada em identidade ou a política baseada em recursos na mesma conta permitir a solicitação, mas a outra política não, a solicitação ainda será permitida.

Suponha que Carlos tem o nome de usuário `carlossalazar` e tente salvar um arquivo no bucket `amzn-s3-demo-bucket-carlossalazar-logs` do Amazon S3. 

Suponha também que a política a seguir esteja anexada ao usuário do IAM `carlossalazar`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::*log*"
        }
    ]
}
```

------

A instrução `AllowS3ListRead` nessa política permite que Carlos visualize uma lista de todos os buckets da conta. A instrução `AllowS3Self` permite a Carlos acesso total ao bucket com o mesmo nome que seu nome de usuário. A instrução `DenyS3Logs` nega a Carlos acesso a qualquer bucket do S3 com `log` em seu nome. 

Além disso, a seguinte política baseada em recurso (chamada de política de bucket) está anexada ao bucket `amzn-s3-demo-bucket-carlossalazar`. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/carlossalazar"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        }
    ]
}
```

------

Essa política especifica que apenas o usuário `carlossalazar` pode acessar o bucket `amzn-s3-demo-bucket-carlossalazar`.

Quando Carlos faz sua solicitação para salvar um arquivo no bucket `amzn-s3-demo-bucket-carlossalazar-logs`, a AWS determina quais políticas são aplicáveis à solicitação. Nesse caso, somente a política baseada em identidade e a política baseada em recurso são aplicáveis. Essas são duas políticas de permissões. Como nenhum limite de permissões se aplica, a lógica de avaliação é reduzida à lógica a seguir.

![\[Fluxograma de avaliação\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/EffectivePermissionsShort.png)


A AWS primeiro verifica se há uma instrução `Deny` aplicável ao contexto da solicitação. Ele encontra uma, pois a política baseada em identidade nega explicitamente a Carlos o acesso a qualquer bucket do S3 usado para log. O acesso é negado a Carlos. 

Suponha que ele perceba seu erro e tente salvar o arquivo no bucket `amzn-s3-demo-bucket-carlossalazar`. A AWS verifica se há uma instrução `Deny` e não encontra uma. Em seguida, ela verifica a políticas de permissões. Tanto a política baseada em identidade quanto a política baseada em recursos permitem a solicitação. Portanto, a AWS permite a solicitação. Se qualquer uma delas tivesse negado explicitamente a instrução, a solicitação teria sido negada. Se um dos tipos de política permitir a solicitação e o outro não, a solicitação ainda será permitida.

# Lógica de avaliação de política entre contas
<a name="reference_policies_evaluation-logic-cross-account"></a>

É possível permitir que um principal em uma conta acesse os recursos em uma segunda conta. Isso é chamado de acesso entre contas. Quando você permite o acesso entre contas, a conta na qual o principal existe é chamada de conta *confiável*. A conta na qual o recurso existe é a conta *de confiança*. 

Para permitir o acesso entre contas, anexe uma política baseada em recursos ao recurso que deseja compartilhar. É necessário anexar uma política baseada em identidade para a identidade que atua como entidade principal na solicitação. A política baseada em recursos na conta de confiança deve especificar o principal da conta confiável que terá acesso ao recurso. É possível especificar toda a conta ou seus usuários do IAM, entidades principais de usuários federados do AWS STS, perfis do IAM ou sessões de perfil assumido. Você também pode especificar um serviço da AWS como principal. Para obter mais informações, consulte [Como especificar uma entidade principal](reference_policies_elements_principal.md#Principal_specifying). 

A política baseada em identidade do principal deve permitir o acesso solicitado ao recurso no serviço de confiança. É possível fazer isso especificando o ARN do recurso.

No IAM, você pode anexar uma política baseada em recurso a uma função do IAM para permitir que entidades de segurança em outras contas assumam essa função. A política baseada em recursos da função é chamada de política de confiança da função. Depois de assumir essa função, os principais permitidos podem usar as credenciais temporárias resultantes para acessar vários recursos na conta. Esse acesso é definido na política de permissões baseadas na identidade da função. Para saber como a ação de permitir o acesso entre contas usando as funções difere da ação de permitir o acesso entre contas usando outras políticas baseadas em recursos, consulte [Acesso a recursos entre contas no IAM](access_policies-cross-account-resource-access.md). 

**Importante**  
Outros serviços podem afetar a lógica de avaliação da política. Por exemplo, o AWS Organizations oferece suporte a [políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) e [políticas de controle de recursos](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) que podem ser aplicadas a entidades principais e a recursos em uma ou mais contas. O AWS Resource Access Manager oferece suporte a [fragmentos de políticas](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html) que controlam quais ações as entidades principais têm permissão para executar nos recursos compartilhados com elas.

## Determinar se uma solicitação entre contas é permitida
<a name="policy-eval-cross-account"></a>

Para solicitações entre contas, o solicitante na `AccountA` confiável deve ter uma política baseada em identidade. Essa política deve permitir fazer uma solicitação para o recurso na de confiança `AccountB`. Além disso, a política baseada em recursos na `AccountB` deve permitir que o solicitante na `AccountA` acesse o recurso.

Ao fazer uma solicitação entre contas, a AWS executa duas avaliações. A AWS avalia a solicitação na conta de confiança e na conta confiável. Para obter mais informações sobre como uma solicitação é avaliada dentro de uma única conta, consulte [Como a lógica do código de imposição da AWS avalia as solicitações para permitir ou negar acesso](reference_policies_evaluation-logic_policy-eval-denyallow.md). A solicitação é permitida somente se ambas as avaliações retornarem uma decisão de `Allow`.

![\[Avaliação entre contas\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/policy_cross-account-eval-simple.png)


1. Quando um principal em uma conta fazer uma solicitação para acessar um recurso em outra conta, esta é uma solicitação entre contas.

1. O principal solicitante existe na conta confiável (`AccountA`). Quando a AWS avalia essa conta, ela verifica a política baseada em identidade e as políticas que podem limitar uma política baseada em identidade. Para obter mais informações, consulte [Avaliação das políticas baseadas em identidade com limites de permissões](reference_policies_evaluation-logic.md#policy-eval-basics-id-bound).

1. O recurso solicitado existe na conta de confiança (`AccountB`). Quando a AWS avalia esta conta, ela verifica a política baseada em recursos que está em anexo ao recurso solicitado e todas as políticas que podem limitar uma política baseada em recursos. Para obter mais informações, consulte [Avaliação das políticas baseadas em identidade com políticas baseadas em recurso](reference_policies_evaluation-logic.md#policy-eval-basics-id-rdp).

1. AWSA permite a solicitação somente se ambas avaliações de política de conta permitirem a solicitação.

O fluxograma a seguir fornece uma ilustração mais detalhada de como uma decisão de avaliação de política é tomada para uma solicitação entre contas. Mais uma vez, a AWS permitirá a solicitação somente se ambas avaliações de política de conta permitirem a solicitação.

![\[Avaliação detalhada de políticas entre contas\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/PolicyEvaluationCrossAccount.png)


## Exemplo de avaliação de política entre contas
<a name="policies_evaluation_example-cross-account"></a>

O exemplo a seguir demonstra um cenário no qual um perfil em uma conta recebe permissões por meio de uma política baseada em recursos em uma segunda conta.

Suponha que Carlos seja um desenvolvedor com um perfil do IAM de nome `Demo` na conta 111111111111. Ele quer salvar um arquivo no bucket `amzn-s3-demo-bucket-production-logs` do Amazon S3 na conta 222222222222. 

Suponha também que a política a seguir esteja anexada ao perfil do IAM `Demo`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "AllowS3ProductionObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::*log*",
                "arn:aws:s3:::*log*/*"
            ]
        }
    ]
}
```

------

A instrução `AllowS3ListRead` nesta política permite que o Carlos visualize uma lista de todos os buckets no Amazon S3. A declaração `AllowS3ProductionObjectActions` permite que Carlos tenha acesso total a objetos no bucket `amzn-s3-demo-bucket-production`.

Além disso, a política baseada em recurso a seguir (chamada de política de bucket) está anexada ao bucket `amzn-s3-demo-bucket-production` na conta 222222222222. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject*",
                "s3:PutObject*",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" },
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        }
    ]
}
```

------

Essa política permite que o perfil `Demo` acesse objetos no bucket `amzn-s3-demo-bucket-production`. O perfil poderá criar e editar, mas não excluir os objetos no bucket. O perfil não conseguirá gerenciar o bucket propriamente dito.

Quando Carlos faz sua solicitação para salvar um arquivo no bucket `amzn-s3-demo-bucket-production-logs`, a AWS determina quais políticas são aplicáveis à solicitação. Nesse caso, a política baseada em identidade anexada ao perfil `Demo` é a única política aplicável à conta `111111111111`. Na conta `222222222222`, não há uma política baseada em recursos anexada ao bucket `amzn-s3-demo-bucket-production-logs`. Quando a AWS avalia a conta `111111111111`, ela retorna uma decisão de `Deny`. Isto ocorre porque a declaração `DenyS3Logs` na política baseada em identidade explicitamente nega o acesso a quaisquer buckets de log. Para obter mais informações sobre como uma solicitação é avaliada dentro de uma única conta, consulte [Como a lógica do código de imposição da AWS avalia as solicitações para permitir ou negar acesso](reference_policies_evaluation-logic_policy-eval-denyallow.md).

Como a solicitação é explicitamente negada dentro de uma das contas, a decisão final é negar a solicitação.

![\[Solicitar a um bucket amzn-s3-demo-bucket-production-logs\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/policy_cross-account-eval-example.png)


Suponha que o Carlos perceba o erro e tente salvar o arquivo no bucket `Production`. A AWS primeiro verifica a conta `111111111111` para determinar se a solicitação é permitida. Somente a política baseada em identidade se aplica e permite a solicitação. A AWS verificará a conta `222222222222`. Somente a política baseada em recursos anexada ao bucket `Production` é aplicável, e permite a solicitação. Como ambas as contas permitem a solicitação, a decisão final é permitir a solicitação.

![\[Bucket de solicitação para produção\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/policy_cross-account-eval-example-correct.png)


# A diferença entre negações explícitas e implícitas
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

Uma solicitação resultará em uma negação explícita aplicável se uma política aplicável incluir uma instrução `Deny`. Se as políticas aplicáveis a uma solicitação incluírem uma instrução `Allow` e uma instrução `Deny`, a instrução `Deny` superará a instrução `Allow`. A solicitação será negada explicitamente.

Uma negação implícita ocorre quando não há uma instrução `Deny` aplicável, mas também nenhuma instrução `Allow` aplicável. Como o acesso da entidade principal do IAM é negado por padrão, ela deve ter permissão explícita para executar uma ação. Caso contrário, o acesso será implicitamente negado.

Ao projetar sua estratégia de autorização, você deve criar políticas com instruções `Allow` para permitir que suas entidades principais façam solicitações com êxito. No entanto, você pode escolher qualquer combinação de negações implícitas e explícitas. 

Por exemplo, é possível criar a seguinte política que inclui ações permitidas, ações negadas implicitamente e ações negadas explicitamente. A declaração `AllowGetList` **permite** acesso do tipo somente leitura a ações do IAM que comecem com os prefixos `Get` e `List`. Todas as outras ações no IAM, como `iam:CreatePolicy`, são **negadas implicitamente**. A declaração `DenyReports` **nega explicitamente** o acesso a relatórios do IAM, negando acesso a ações que incluem o sufixo `Report`, como `iam:GetOrganizationsAccessReport`. Se alguém adicionar outra política a essa entidade principal para conceder acesso a relatórios do IAM, como `iam:GenerateCredentialReport`, solicitações relacionadas a relatórios ainda serão negadas por causa dessa negação explícita.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------

# Gramática da linguagem das políticas de JSON do IAM
<a name="reference_policies_grammar"></a>

Esta página apresenta uma gramática formal para a linguagem usada para criar políticas de JSON no IAM. Apresentamos essa gramática para que você possa entender como construir e validar políticas.

Para obter exemplos de políticas, consulte os seguintes tópicos:
+ [Políticas e permissões no AWS Identity and Access Management](access_policies.md)
+ [Exemplos de políticas baseadas em identidade do IAM](access_policies_examples.md)
+ [Políticas de exemplo para trabalhar no console do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html) e [Políticas de exemplo para trabalhar com a AWS CLI, a CLI do Amazon EC2ou um AWS SDK](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html) no *Guia do usuário do Amazon EC2*. 
+  [Exemplos de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) e [Exemplos de política de usuário](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html) no *Guia do usuário do Amazon Simple Storage Service*. 

Para obter exemplos de políticas usadas em outros produtos da AWS, consulte a documentação desses produtos.

**Topics**
+ [A linguagem das políticas e JSON](#policies-grammar-json)
+ [Convenções usadas nesta gramática](#policies-grammar-conventions)
+ [Gramática](#policies-grammar-bnf)
+ [Notas sobre a gramática das políticas](#policies-grammar-notes)

## A linguagem das políticas e JSON
<a name="policies-grammar-json"></a>

As políticas são expressas em JSON. Quando você cria ou edita uma política JSON, o IAM pode executar a validação de políticas para ajudar você a criar uma política eficaz. O IAM identifica erros de sintaxe JSON, enquanto o IAM Access Analyzer fornece verificações de políticas adicionais com recomendações para ajudar você a refinar ainda mais suas políticas. Para saber mais sobre validação de política, consulte [Validação de política do IAM](access_policies_policy-validator.md). Para saber mais sobre as verificações de política do IAM Access Analyzer e as recomendações práticas, consulte [Validação de política do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

Neste documento, não fornecemos uma descrição completa dos elementos que constituem o JSON válido. No entanto, veja a seguir algumas regras básicas de JSON:
+ Espaço em branco entre entidades individuais é permitido.
+ Os valores são colocados entre aspas. Aspas são opcionais para valores numéricos e boolianos.
+ Muitos elementos (por exemplo, `action_string_list` e `resource_string_list`) podem levar uma matriz JSON como um valor. As matrizes podem levar um ou mais valores. Se mais de um valor for incluído, a matriz será inserida em colchetes (`[` e `]`) e delimitada por vírgula, como no exemplo a seguir: 

  `"Action" : ["ec2:Describe*","ec2:List*"]`
+ Os tipos de dados JSON básicos (Booliano, número e string) são definidos na [RFC 7159](https://datatracker.ietf.org/doc/html/rfc7159).

## Convenções usadas nesta gramática
<a name="policies-grammar-conventions"></a>

As seguintes convenções são usadas nesta gramática:
+ Os caracteres a seguir são tokens JSON e *são* incluídos nas políticas:

  `{ } [ ] " , :`
+ Os caracteres a seguir são caracteres especiais na gramática e *não* são incluídos nas políticas: 

  `= < > ( ) |`
+ Se um elemento permitir vários valores, ele será indicado com valores repetidos, um delimitador de vírgula e reticências (`...`). Exemplos:

  `[<action_string>, <action_string>, ...]`

  `<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }`

  Se vários valores forem permitidos, também será válido incluir apenas um valor. Para apenas um valor, a vírgula à direita deve ser omitida. Se o elemento levar uma matriz (marcada com [e]), mas apenas um valor for incluído, os colchetes serão opcionais. Exemplos:

  `"Action": [<action_string>]`

  `"Action": <action_string>`
+ Um ponto de interrogação (`?`) depois de um elemento indica que o elemento é opcional. Exemplo: 

  <`version_block?>`

  No entanto, consulte as notas após a listagem de gramática para obter mais detalhes sobre elementos opcionais. 
+ Uma linha vertical (`|`) entre os elementos indica alternativas. Na gramática, parênteses definem o escopo das alternativas. Exemplo:

  `("Principal" | "NotPrincipal")` 
+ Elementos que devem ser strings literais são inseridos entre aspas duplas (`"`). Exemplo:

  `<version_block> = "Version" : ("2008-10-17" | "2012-10-17" )`

Para notas adicionais, consulte [Notas sobre a gramática das políticas](#policies-grammar-notes) após a listagem de gramática.

## Gramática
<a name="policies-grammar-bnf"></a>

A lista a seguir descreve a gramática da linguagem das políticas. Para obter as convenções usadas na lista, consulte a seção anterior. Para obter informações adicionais, consulte as notas que se seguem.

**nota**  
Essa gramática descreve as políticas marcadas com uma versão de `2008-10-17 ` e `2012-10-17 `. Um elemento de política `Version` é diferente de uma versão de política. O elemento de política `Version` é usado em uma política e define a versão da linguagem da política. A versão da política, por outro lado, é criada quando você faz alterações em uma política gerenciada pelo cliente no IAM. A política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. Para saber mais sobre o elemento de política `Version`, consulte [Elementos de política JSON do IAM: Version](reference_policies_elements_version.md). Para saber mais sobre as versões de política, consulte [Versionamento de políticas do IAM](access_policies_managed-versioning.md).

```
policy  = {
     <version_block?>,
     <id_block?>,
     <statement_block>
}

<version_block> = "Version" : ("2008-10-17"		 	 	  | "2012-10-17"		 	 	 )

<id_block> = "Id" : <policy_id_string>

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = { 
    <sid_block?>,
    <principal_block?>,
    <effect_block>,
    <action_block>,
    <resource_block>,
    <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")  

<principal_block> = ("Principal" | "NotPrincipal") : ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = ("AWS" | "Federated" | "Service" | "CanonicalUser") :   
    [<principal_id_string>, <principal_id_string>, ...]

<action_block> = ("Action" | "NotAction") : 
    ("*" | <action_string> | [<action_string>, <action_string>, ...])

<resource_block> = ("Resource" | "NotResource") : 
    : ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])

<condition_block> = "Condition" : { <condition_map> }
<condition_map> = { 
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}  
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = (<condition_value_string> | <condition_value_string> | <condition_value_string>)
```

## Notas sobre a gramática das políticas
<a name="policies-grammar-notes"></a>
+ Uma única política pode conter um conjunto de instruções.
+ As políticas têm um tamanho máximo de 2048 caracteres e 10.240 caracteres, dependendo do elemento ao qual a política está anexada. Para obter mais informações, consulte [IAM e cotas do AWS STS](reference_iam-quotas.md). Os cálculos de tamanho da política não incluem caracteres de espaço em branco.
+ Elementos individuais não devem conter várias instâncias da mesma chave. Por exemplo, você não pode incluir o bloco `Effect` duas vezes na mesma instrução. 
+ Os blocos podem aparecer em qualquer ordem. Por exemplo, `version_block` pode seguir `id_block` em uma política. Da mesma forma, `effect_block`, `principal_block`, `action_block` podem aparecer em qualquer ordem dentro de uma instrução.
+ O `id_block` é opcional em políticas baseadas em recursos. *Não* deve ser incluído em políticas baseadas em identidades.
+ O elemento `principal_block` é necessário em políticas baseadas em recurso (por exemplo, em políticas de bucket do Amazon S3) e em políticas de confiança para funções do IAM. *Não* deve ser incluído em políticas baseadas em identidades.
+ O elemento `principal_map` nas políticas de bucket do Amazon S3 pode incluir o ID `CanonicalUser`. A maioria das políticas baseadas em recursos não oferece suporte a esse mapeamento. Para saber mais sobre como usar o ID canônico de usuário em uma política de bucket, consulte [Como especificar uma entidade principal em uma política](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) no *Guia do usuário do Amazon Simple Storage Service*.
+ Cada valor de string (`policy_id_string`, `sid_string`, `principal_id_string`, `action_string`, `resource_string`, `condition_type_string`, `condition_key_string` e a versão de string de `condition_value`) pode ter suas próprias restrições de tamanho mínimo e máximo, valores permitidos específicos ou o formato interno necessário.

### Notas sobre valores de string
<a name="policies-grammar-notes-strings"></a>

Esta seção fornece informações adicionais sobre valores de string que são usados em diferentes elementos em uma política.

**`action_string`**  
Consiste em um namespace de serviço, dois pontos e o nome de uma ação. Os nomes de ação podem incluir curingas. Exemplos:  

```
"Action":"ec2:StartInstances"

"Action":[
  "ec2:StartInstances",
  "ec2:StopInstances"
]

"Action":"cloudformation:*"

"Action":"*"

"Action":[
  "s3:Get*",
  "s3:List*"
]
```

**`policy_id_string`**  
Oferece uma maneira de incluir informações sobre a política como um todo. Alguns serviços, como o Amazon SQS e o Amazon SNS, usam o elemento `Id` de formas reservadas. A menos que isso seja proibido por um serviço individual, policy\$1id\$1string pode incluir espaços. Alguns serviços exigem que esse valor seja exclusivo em uma conta da AWS.   
O `id_block` é permitido em políticas baseadas em recursos, mas não em políticas baseadas em identidades.
Não há limite para o tamanho, embora essa string contribua para o comprimento geral da política, que é limitado.   

```
"Id":"Admin_Policy"

"Id":"cd3ad3d9-2776-4ef1-a904-4c229d1642ee"
```

**`sid_string`**  
Oferece uma maneira de incluir informações sobre uma instrução individual. Para políticas do IAM, caracteres alfanuméricos básicos (A-Z, a-z, 0-9) são os únicos caracteres permitidos no valor `Sid`. Outros serviços da AWS que oferecem suporte a políticas de recursos podem ter outros requisitos para o valor `Sid`. Por exemplo, alguns serviços exigem esse valor para serem exclusivos em uma Conta da AWS, e alguns serviços permitem caracteres adicionais, como espaços no valor `Sid`.  

```
"Sid":"1" 

"Sid": "ThisStatementProvidesPermissionsForConsoleAccess"
```

**`principal_id_string`**  
Fornece uma maneira de especificar uma entidade de segurança usando o [*nome do recurso da Amazon* (ARN)](reference_identifiers.md#identifiers-arns) da Conta da AWS do usuário do IAM, do perfil do IAM, do usuário federado ou do usuário de perfil assumido. Para uma Conta da AWS, você também pode usar a forma curta `AWS:accountnumber` em vez de todo o ARN. Para todas as opções, incluindo serviços da AWS, funções assumidas etc., consulte [Como especificar uma entidade principal](reference_policies_elements_principal.md#Principal_specifying).  
Você pode usar \$1 apenas para especificar "todos/anônimo". Não é possível usá-lo para especificar parte de um nome ou ARN.

**`resource_string`**  
Na maioria dos casos, consiste em um [nome de recurso da Amazon](reference_identifiers.md#identifiers-arns) (ARN). Você pode usar os curingas (\$1 e ?) na parte de recurso do ARN. Para obter mais informações sobre como usar o curinga em ARNs, consulte [Usar curingas em caminhos](reference-arns.md#arns-paths-wildcards).  
Quando você especifica um ARN incompleto (um com menos do que os seis campos padrão) em uma política baseada em identidade, a AWS preenche automaticamente o ARN adicionando caracteres curinga (\$1) a todos os campos ausentes. Por exemplo, especificar `arn:aws:sqs` é equivalente a `arn:aws:sqs:*:*:*`, o que concede acesso a todos os recursos do Amazon SQS em todas as regiões e contas.

```
"Resource":"arn:aws:iam::123456789012:user/Bob"

"Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
```

**`condition_type_string`**  
Identifica o tipo de condição que está sendo testado, como `StringEquals`, `StringLike`, `NumericLessThan`, `DateGreaterThanEquals`, `Bool`, `BinaryEquals`, `IpAddress`, `ArnEquals`, etc. Para obter uma lista completa de tipos de condição, consulte [Elementos de política JSON do IAM: operadores de condição](reference_policies_elements_condition_operators.md).   

```
"Condition": {
  "NumericLessThanEquals": {
    "s3:max-keys": "10"
  }
}

"Condition": {
  "Bool": {
    "aws:SecureTransport": "true"
  }
}

"Condition": {
  "StringEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}
```

**`condition_key_string`**  
Identifica a chave de condição cujo valor será testado para determinar se a condição foi atendida. A AWS define um conjunto de chaves de condição que estão disponíveis em todos os produtos da AWS, incluindo `aws:PrincipalType`, `aws:SecureTransport` e `aws:userid`.  
Para obter uma lista de chaves de condição da AWS, consulte [AWSChaves de contexto de condições globais da](reference_policies_condition-keys.md). Para chaves de condição que são específicas a um serviço, consulte a documentação do serviço, como o seguinte:  
+ [Como especificar condições em uma política](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html) no *Guia do usuário do Amazon Simple Storage Service*
+ [Políticas do IAM para o Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) no *Guia do usuário do Amazon EC2*.

```
"Condition":{
  "Bool": {
      "aws:SecureTransport": "true"
   }
}

"Condition": {
  "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}

"Condition": {
  "StringEquals": {
    "aws:ResourceTag/purpose": "test"
  }
}
```

**`condition_value_string`**  
Identifica o valor de condition\$1key\$1string que determina se a condição foi atendida. Para obter uma lista completa de valores válidos para um tipo de condição, consulte [Elementos de política JSON do IAM: operadores de condição](reference_policies_elements_condition_operators.md).  

```
"Condition":{
  "ForAnyValue:StringEquals": {
		"dynamodb:Attributes": [
			"ID",
			"PostDateTime"
  	      ]
  }
}
```

# AWSPolíticas gerenciadas pela para funções de trabalho
<a name="access_policies_job-functions"></a>

Recomendamos o uso de políticas que [concedam privilégios mínimos](best-practices.md#grant-least-privilege) ou conceder apenas as permissões necessárias para executar uma tarefa. A maneira mais segura de conceder privilégios mínimos é escrever uma política personalizada apenas com as permissões necessárias à sua equipe. Você deve criar um processo para permitir que sua equipe solicite mais permissões quando necessário. É necessário tempo e experiência para criar [políticas gerenciadas pelo cliente do IAM](access_policies_create-console.md) que fornecem à sua equipe apenas as permissões de que precisam.

Para começar a adicionar permissões a suas identidades do IAM (usuários, grupos de usuários e perfis), você pode usar [AWSPolíticas gerenciadas pela](access_policies_managed-vs-inline.md#aws-managed-policies). As políticas gerenciadas pela AWS abrangem casos de uso comuns e estão disponíveis na sua Conta da AWS. As políticas gerenciadas AWS pela não concedem permissões de privilégio mínimo. Você deve considerar o risco de segurança de conceder às suas entidades de segurança mais permissões do que elas precisam para realizar um trabalho.

Você pode anexar políticas gerenciadas pela AWS, incluindo funções de trabalho, a qualquer identidade do IAM. Para alternar para permissões de privilégio mínimo, você pode executar o AWS Identity and Access Management and Access Analyzer para monitorar as entidades de segurança com políticas gerenciadas pela AWS. Depois de saber quais permissões elas estão usando, você pode escrever uma política personalizada ou gerar uma política apenas com as permissões necessárias para sua equipe. Isso é menos seguro, mas oferece mais flexibilidade à medida que você aprende como sua equipe está usando a AWS.

AWSPolíticas gerenciadas pela para funções de trabalho são projetadas para se alinhar de perto com funções de trabalho comuns no setor de TI. Você pode usar essas políticas para conceder as permissões necessárias para executar as tarefas esperadas de alguém com determinada função de trabalho. Essas políticas consolidam permissões para vários serviços em uma única política com a qual seja mais fácil trabalhar do que ter permissões espalhadas através de muitas políticas.

**Use funções para combinar serviços**  
Algumas das políticas usam funções de serviço do IAM para ajudar você a aproveitar os recursos encontrados em outros produtos da AWS. Essas políticas concedem acesso a `iam:passrole`, o que permite que um usuário com a política passe uma função para um serviço da AWS. Essa função delega permissões do IAM para o produto da AWS executar ações em seu nome.

Você deve criar as funções de acordo com as suas necessidades. Por exemplo, a política de administrador de rede permite que um usuário com a política passe uma função chamada “flow-logs-vpc” para o serviço Amazon CloudWatch. O CloudWatch usa essa função para registrar em log e capturar o tráfego de IP para VPCs criadas pelo usuário.

Para seguir as melhores práticas de segurança, as políticas para funções de trabalho incluem filtros que limitam os nomes de funções válidas que podem ser transmitidas. Isso ajuda a evitar a concessão de permissões desnecessárias. Se seus usuários precisam das funções de serviço opcionais, você deve criar uma função que siga a convenção de nomenclatura especificada na política. Então, conceda permissões para a função. Ao concluir, o usuário pode configurar o serviço para usar a função, concedendo-lhe todas as permissões que a função oferece.

Nas seguintes seções, cada nome de política é um link para a página de detalhes da política no Console de gerenciamento da AWS. Lá, é possível consultar o documento de política e revisar as permissões que ela concede.

## Função de trabalho de administrador
<a name="jf_administrator"></a>

**Nome da política gerenciada pela AWS:** [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)

**Caso de uso:** Este usuário tem acesso total e pode delegar permissões para todos os serviços e recursos na AWS.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** Esta política concede todas as ações para todos os serviços da AWS e para todos os recursos na conta. Para obter mais informações sobre a política gerenciada, consulte [AdministratorAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html) no *Guia de referência de políticas gerenciadas pela AWS*.

**nota**  
Antes que um usuário ou uma função do IAM possa acessar o console do Gerenciamento de Faturamento e Custos da AWS com as permissões nesta política, você deve primeiro ativar o usuário e o acesso à função do IAM. Para fazer isso, siga as instruções em [Grant access to the billing console](getting-started-account-iam.md) para delegar acesso ao console de faturamento.

## Função de trabalho de faturamento
<a name="jf_accounts-payable"></a>

**Nome da política gerenciada pela AWS:** [Billing](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/Billing)

**Caso de uso:** Este usuário precisa visualizar informações de faturamento, configurar e autorizar pagamentos. O usuário pode monitorar os custos acumulados para cada serviço da AWS.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** Esta política concede permissões completas para gerenciar faturamento, custos, meios de pagamento, orçamentos e relatórios. Para obter outros exemplos de políticas de gerenciamento de custos, consulte [Exemplos de políticas do AWS Billing](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-example-policies.html) no *Guia do usuário do Gerenciamento de Faturamento e Custos da AWS*. Para obter mais informações sobre a política gerenciada, consulte [Billing](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/Billing.html) no *Guia de referência de políticas gerenciadas pela AWS*.

**nota**  
Antes que um usuário ou uma função do IAM possa acessar o console do Gerenciamento de Faturamento e Custos da AWS com as permissões nesta política, você deve primeiro ativar o usuário e o acesso à função do IAM. Para fazer isso, siga as instruções em [Grant access to the billing console](getting-started-account-iam.md) para delegar acesso ao console de faturamento.

## Função de trabalho de administrador de banco de dados
<a name="jf_database-administrator"></a>

**Nome da política gerenciada pela AWS:** [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)

**Caso de uso:** Este usuário define, configura e mantém bancos de dados na Nuvem AWS.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** Esta política concede permissões para criar, configurar e manter bancos de dados. Ela inclui acesso a serviços de banco de dados da AWS, como o Amazon DynamoDB, o Amazon Relational Database Service (RDS) e o Amazon Redshift. Visualize a política para obter a lista completa de serviços de banco de dados aos quais essa política oferece suporte. Para obter mais informações sobre a política gerenciada, consulte [DatabaseAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DatabaseAdministrator.html) no *Guia de referência de políticas gerenciadas pela AWS*.

Essa política de função de trabalho oferece suporte à capacidade de passar funções para serviços da AWS. A política permite a ação `iam:PassRole` somente para as funções listadas na tabela a seguir. Para obter mais informações, consulte [Criar funções e anexar políticas (console)](access_policies_job-functions_create-policies.md) mais adiante neste tópico.


| Caso de uso | Nome do perfil (\$1 é um curinga) | Tipo do perfil de serviço a selecionar | Selecione esta política gerenciada pela AWS | 
| --- | --- | --- | --- | 
| Permitir que o usuário monitore bancos de dados do RDS | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Função do Amazon RDS para monitoramento aprimorado | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Permitir que AWS Lambda monitore seu banco de dados e acesse bancos de dados externos | [rdbms-lambda-access](https://aws.amazon.com/blogs/big-data/from-sql-to-microservices-integrating-aws-lambda-with-relational-databases) | Amazon EC2 | [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess) | 
| Permitir que o Lambda carregue arquivos para o Amazon S3 e para clusters do Amazon Redshift com o DynamoDB | [lambda\$1exec\$1role](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | AWS Lambda | Criar uma nova política gerenciada conforme definido no [Blog de Big Data da AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | 
| Permitir que funções Lambda atuem como acionadores para suas tabelas do DynamoDB | [lambda-dynamodb-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaDynamoDBExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 
| Permitir que funções Lambda acessem o Amazon RDS em uma VPC | [lambda-vpc-execution-role](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | Criar uma função com uma política de confiança conforme definido no [Guia do desenvolvedor do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | [AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole) | 
| Permitir que o AWS Data Pipeline acesse seus recursos da AWS | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Criar uma função com uma política de confiança conforme definido no [Guia do desenvolvedor do AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | A documentação do AWS Data Pipeline lista as permissões necessárias para este caso de uso. Consulte [Perfis do IAM para o AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | 
| Permitir que suas aplicações em execução em instâncias do Amazon EC2 acessem seus recursos da AWS | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Criar uma função com uma política de confiança conforme definido no [Guia do desenvolvedor do AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Função de trabalho de cientista de dados
<a name="jf_data-scientist"></a>

**Nome da política gerenciada pela AWS:** [DataScientist](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DataScientist)

**Caso de uso:** Este usuário executa trabalhos e consultas do Hadoop. O usuário também acessa e analisa informações para data analytics e business intelligence.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política**: esta política concede permissões para criar, gerenciar e executar consultas em um cluster do Amazon EMR e executar data analytics com ferramentas como o Amazon QuickSight. A política inclui o acesso a serviços adicionais de cientistas de dados, como AWS Data Pipeline, Amazon EC2, Amazon Kinesis, Amazon Machine Learning e SageMaker. Visualize a política para obter a lista completa de serviços de cientistas de dados aos quais essa política oferece suporte. Para obter mais informações sobre a política gerenciada, consulte [DataScientist](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DataScientist.html) no *Guia de referência de políticas gerenciadas pela AWS*.

Essa política de função de trabalho oferece suporte à capacidade de passar funções para serviços da AWS. Uma instrução permite passar qualquer perfil para o SageMaker AI. Outra declaração permite a ação `iam:PassRole` somente para as funções listadas na tabela a seguir. Para obter mais informações, consulte [Criar funções e anexar políticas (console)](access_policies_job-functions_create-policies.md) mais adiante neste tópico.


| Caso de uso | Nome do perfil (\$1 é um curinga) | Tipo do perfil de serviço a selecionar | AWSPolítica gerenciada pela a selecionar | 
| --- | --- | --- | --- | 
| Permitir que instâncias do Amazon EC2 acessem serviços e recursos adequados para clusters | [EMR-EC2\$1DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR for EC2  | [AmazonElasticMapReduceforEC2Role](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role) | 
| Permitir acesso ao Amazon EMR para acessar o serviço e recursos do Amazon EC2 para clusters | [EMR\$1DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR | [AmazonEMRServicePolicy\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) | 
| Permitir que o Kinesis Managed Service for Apache Flink acesse fontes de dados de streaming | [kinesis-\$1](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | Criar uma função com uma política de confiança conforme definido no [Blog de Big Data da AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader). | Consulte o [Blog de Big Data da AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader), que descreve quatro opções possíveis, dependendo do caso de uso | 
| Permitir que o AWS Data Pipeline acesse seus recursos da AWS | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Criar uma função com uma política de confiança conforme definido no [Guia do desenvolvedor do AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | A documentação do AWS Data Pipeline lista as permissões necessárias para este caso de uso. Consulte [Perfis do IAM para o AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | 
| Permitir que suas aplicações em execução em instâncias do Amazon EC2 acessem seus recursos da AWS | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Criar uma função com uma política de confiança conforme definido no [Guia do desenvolvedor do AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Função de trabalho de usuário desenvolvedor avançado
<a name="jf_developer-power-user"></a>

**Nome da política gerenciada pela AWS:** [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/PowerUserAccess)

**Caso de uso:** Este usuário executa tarefas de desenvolvimento de aplicativos e pode criar e configurar recursos e serviços compatíveis com o desenvolvimento consciente de aplicativos da AWS.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política**: a primeira declaração desta política utiliza o elemento [`NotAction`](reference_policies_elements_notaction.md) para permitir todas as ações para todos os produtos da AWS e para todos os recursos, exceto para o AWS Identity and Access Management, o AWS Organizations e o AWS Gerenciamento de contas. A segunda instrução concede permissões do IAM para criar uma função vinculada ao serviço. Isso é necessário para alguns serviços que devem acessar recursos em outro serviço, como um bucket do Amazon S3. Ela também concede permissões do AWS Organizations para visualizar informações sobre a organização do usuário, incluindo o e-mail da conta gerencial e as limitações da organização. Embora esta política limite o IAM e o AWS Organizations, ela permite que o usuário execute todas as ações do Centro de Identidade do IAM, se este recurso estiver habilitado. Ele também concede permissões de gerenciamento de contas para visualizar quais regiões da AWS estão habilitadas ou desabilitadas para a conta.

## Função de trabalho de administrador de rede
<a name="jf_network-administrator"></a>

**Nome da política gerenciada pela AWS:** [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)

**Caso de uso:** Este usuário é responsável pela configuração e manutenção dos recursos de rede da AWS.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** esta política concede permissões para criar e manter recursos de rede no Auto Scaling, Amazon EC2, AWS Direct Connect, Route 53, Amazon CloudFront, Elastic Load Balancing, AWS Elastic Beanstalk, Amazon SNS, CloudWatch, CloudWatch Logs, Amazon S3, IAM, e Amazon Virtual Private Cloud. Para obter mais informações sobre a política gerenciada, consulte [NetworkAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/NetworkAdministrator.html) no *Guia de referência de políticas gerenciadas pela AWS*.

Este perfil de trabalho requer a capacidade de passar perfis para serviços da AWS. A política concede `iam:GetRole` e `iam:PassRole` apenas para as funções listadas na seguinte tabela. Para obter mais informações, consulte [Criar funções e anexar políticas (console)](access_policies_job-functions_create-policies.md) mais adiante neste tópico.


| Caso de uso | Nome do perfil (\$1 é um curinga) | Tipo do perfil de serviço a selecionar | AWSPolítica gerenciada pela a selecionar | 
| --- | --- | --- | --- | 
| Permite que o Amazon VPC crie e gerencie logs no CloudWatch Logs em nome do usuário para monitorar o tráfego de IP que entra e sai de sua VPC | [flow-logs-\$1](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Criar uma função com uma política de confiança conforme definido no [Guia do usuário do Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Este caso de uso não tem uma política gerenciada pela AWS existente, mas a documentação lista as permissões necessárias. Consulte [Guia do usuário do Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam). | 

## Acesso somente leitura.
<a name="awsmp_readonlyaccess"></a>

**Nome da política gerenciada pela AWS:** [ReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ReadOnlyAccess)

**Caso de uso:** este usuário requer acesso somente leitura a todos os recursos em uma Conta da AWS.

**Importante**  
Esse usuário também terá acesso para leitura de dados nos serviços de armazenamento, como buckets do Amazon S3 e tabelas do Amazon DynamoDB.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:**: esta política concede permissões para listar, obter, descrever e, de outra forma, visualizar recursos e seus atributos. Ela não inclui funções de mudança como criar ou excluir. Esta política inclui acesso somente leitura a produtos da AWS relacionados à segurança, como AWS Identity and Access Management e Gerenciamento de Faturamento e Custos da AWS. Visualize a política para obter a lista completa de serviços e ações a que esta política oferece suporte. Para obter mais informações sobre a política gerenciada, consulte [ReadOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ReadOnlyAccess.html) no *AWS Managed Policy Reference Guide*. Se você precisar de uma política similar que não conceda acesso para leitura de dados nos serviços de armazenamento, consulte [Função de trabalho de usuário somente para visualização](#jf_view-only-user).

## Acesso total às ações do serviço MCP
<a name="jf_mcp-service-actions"></a>

**Nome da política gerenciada pela AWS:** [AWSMcpServiceActionsFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSMcpServiceActionsFullAccess)

**Caso de uso:** este usuário requer acesso aos serviços da AWS usando servidores MCP da AWS. Esta política não concede acesso às ações executadas por um serviço MCP a outros serviços da AWS.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** esta política concede permissões para chamar qualquer ação do serviço MCP da AWS. Você pode usar quando não precisar especificar permissões por serviço MCP da AWS. Ele não concede permissões para ações executadas pelo serviço MCP a outros serviços da AWS. Essas permissões sempre devem ser concedidas separadamente de forma complementar às ações do serviço MCP. Para obter mais informações sobre a política gerenciada, consulte [AWSMcpServiceActionsFullAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSMcpServiceActionsFullAccess.html) no *Guia de referência de políticas gerenciadas pela AWS*.

## Função de trabalho do auditor de segurança
<a name="jf_security-auditor"></a>

**Nome da política gerenciada pela AWS:** [SecurityAudit](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/SecurityAudit)

**Caso de uso:** Este usuário monitora contas quanto à conformidade com os requisitos de segurança. Este usuário pode acessar registros e eventos para investigar potenciais violações de segurança ou possíveis atividades maliciosas.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** Esta política concede permissões para visualizar dados de configuração para muitos serviços da AWS e para revisar seus registros. Para obter mais informações sobre a política gerenciada, consulte [SecurityAudit](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SecurityAudit.html) no *Guia de referência de políticas gerenciadas pela AWS*.

## Função de trabalho de usuário do suporte
<a name="jf_support-user"></a>

**Nome da política gerenciada da AWS:** [AWSSupportAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSSupportAccess)

**Caso de uso:** Este usuário entra em contato com o Suporte da AWS cria casos de suporte e visualiza o status de casos existentes.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** esta política concede permissões para criar e atualizar casos de Suporte. Para obter mais informações sobre a política gerenciada, consulte [AWSSupportAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSSupportAccess.html) no *Guia de referência de políticas gerenciadas da AWS*.

## Função de trabalho de administrador de sistema
<a name="jf_system-administrator"></a>

**Nome da política gerenciada pela AWS:** [SystemAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/SystemAdministrator)

**Caso de uso:** Este usuário configura e mantém recursos para as operações de desenvolvimento.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:**: esta política concede permissões para criar e manter recursos em uma grande variedade de serviços da AWS, incluindo o AWS CloudTrail, Amazon CloudWatch, AWS CodeCommit, AWS CodeDeploy, AWS Config, AWS Directory Service, Amazon EC2, AWS Identity and Access Management, AWS Key Management Service, AWS Lambda, Amazon RDS, Route 53, Amazon S3, Amazon SES, Amazon SQS, AWS Trusted Advisor e Amazon VPC. Para obter mais informações sobre a política gerenciada, consulte [SystemAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SystemAdministrator.html) no *Guia de referência de políticas gerenciadas pela AWS*.

Este perfil de trabalho requer a capacidade de passar perfis para serviços da AWS. A política concede `iam:GetRole` e `iam:PassRole` apenas para as funções listadas na seguinte tabela. Para obter mais informações, consulte [Criar funções e anexar políticas (console)](access_policies_job-functions_create-policies.md) mais adiante neste tópico. Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).


| Caso de uso | Nome do perfil (\$1 é um curinga) | Tipo do perfil de serviço a selecionar | AWSPolítica gerenciada pela a selecionar | 
| --- | --- | --- | --- | 
| Permitir que aplicações em execução em instâncias do EC2 em um cluster do Amazon ECS acessem o Amazon ECS | [ecr-sysadmin-\$1](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) | Função do Amazon EC2 para o EC2 Container Service  | [AmazonEC2ContainerServiceforEC2Role](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role) | 
| Permitir que um usuário monitore bancos de dados | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Função do Amazon RDS para monitoramento aprimorado | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Permitir que aplicativos em execução em instâncias do EC2 acessem recursos da AWS. | [ec2-sysadmin-\$1](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) | Amazon EC2 | Amostra de política para perfil que concede acesso a um bucket do S3, conforme apresentado no [Guia do usuário do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html); personalizar conforme necessário | 
| Permitir que o Lambda leia fluxos do DynamoDB e grave no CloudWatch Logs | [lambda-sysadmin-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaDynamoDBExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 

## Função de trabalho de usuário somente para visualização
<a name="jf_view-only-user"></a>

**Nome da política gerenciada pela AWS:** [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess)

**Caso de uso:** este usuário pode visualizar uma lista de recursos e metadados básicos da AWS na conta nos serviços. O usuário não pode ler o conteúdo do recurso ou metadados além da cota e informações da lista para os recursos.

**Atualizações da política**: a AWS mantém e atualiza esta política. Para obter um histórico de alterações para esta política, visualize a política no console do IAM e escolha a guia **Policy versions** (Versões da política). Para obter mais informações sobre atualizações de políticas de funções de trabalho, consulte [Atualizações nas políticas gerenciadas pela AWS para funções de trabalho](#security-iam-awsmanpol-jobfunction-updates).

**Descrição da política:** esta política concede a `List*`, `Describe*`, `Get*`, `View*` e `Lookup*` acesso a recursos para serviços da AWS. Para ver quais ações essa política inclui para cada serviço, consulte [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess). Para obter mais informações sobre a política gerenciada, consulte [ViewOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ViewOnlyAccess.html) no *Guia de referência de políticas gerenciadas pela AWS*.

## Atualizações nas políticas gerenciadas pela AWS para funções de trabalho
<a name="security-iam-awsmanpol-jobfunction-updates"></a>

Todas essas políticas são mantidas pela AWS e atualizadas para incluir suporte a novos serviços e novos recursos à medida que são adicionados pela AWS. Essas políticas não podem ser modificadas pelos clientes. Você pode fazer uma cópia da política e, em seguida, modificar a cópia, mas essa cópia não é atualizada automaticamente à medida que a AWS introduz novos serviços e operações de API.

Para uma política de função de trabalho, você pode visualizar o histórico de versões e a hora e a data de cada atualização no console do IAM. Para fazer isso, use os links desta página para visualizar os detalhes da política. Em seguida, escolha a guia **Policy versions** (Versões da política) para visualizar as versões. Esta página mostra as últimas 25 versões de uma política. Para visualizar todas as versões de uma política, chame o comando [get-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy-version.html) da AWS CLI ou a operação [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html) da API.

**nota**  
Você pode ter até cinco versões de uma política gerenciada pelo cliente, mas a AWS mantém o histórico de versões completo das políticas gerenciadas pela AWS.

# Criar funções e anexar políticas (console)
<a name="access_policies_job-functions_create-policies"></a>

Várias das políticas previamente listadas concedem a capacidade de configurar serviços da AWS com funções que permitem que esses serviços executem operações em seu nome. As políticas de função de trabalho especificam nomes de função exatos que você deve usar ou, no mínimo, incluem um prefixo que especifica a primeira parte do nome que pode ser usado. Para criar uma dessas funções, execute as etapas no procedimento a seguir.

**Para criar uma função para um AWS service (Serviço da AWS) (console do IAM)**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console do IAM, escolha **Perfis** e, em seguida, **Criar perfil**.

1. Em **Tipo de entidade confiável**, escolha **AWS service (Serviço da AWS)**.

1. Para **Serviço ou caso de uso**, escolha um serviço e, em seguida, escolha o caso de uso. Casos de uso são definidos pelo serviço para incluir a política de confiança exigida pelo serviço.

1. Escolha **Próximo**.

1. As opções para **Políticas de permissões** dependem do caso de uso selecionado.
   + Se o serviço definir as permissões para o perfil, não será possível selecionar políticas de permissões.
   + Selecione em um conjunto limitado de políticas de permissões.
   + Selecione entre todas as políticas de permissões.
   + Não selecione nenhuma política de permissão; crie políticas após a criação do perfil e, em seguida, anexe as políticas ao perfil.

1. (Opcional) Defina um [limite de permissões](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Esse é um atributo avançado que está disponível para perfis de serviço, mas não para perfis vinculados ao serviço.

   1. Abra a seção **Definir limite de permissões** e escolha **Usar um limite de permissões para controlar o número máximo de permissões do perfil**. 

      O IAM inclui uma lista das políticas gerenciadas pela AWS e pelo cliente em sua conta.

   1. Selecione a política a ser usada para o limite de permissões.

1. Escolha **Próximo**.

1. Para **Nome do perfil**, as opções dependem do serviço:
   + Se o serviço definir o nome do perfil, não será possível editar esse nome.
   + Se o serviço definir um prefixo para o nome do perfil, você poderá inserir um sufixo opcional.
   + Se o serviço definir o nome do perfil, você poderá atribuir um nome ao perfil.
**Importante**  
Quando nomear um perfil, observe o seguinte:  
Os nomes do perfil devem ser exclusivos em sua Conta da AWS e não podem ser diferenciados caso a caso.  
Por exemplo, não crie dois perfis denominados **PRODROLE** e **prodrole**. Quando usado em uma política ou como parte de um ARN, o nome de perfil diferencia maiúsculas de minúsculas. No entanto, quando exibido para os clientes no console, como durante o processo de login, o nome de perfil diferencia maiúsculas de minúsculas.
Não é possível editar o nome do perfil depois de criá-lo porque outras entidades podem referenciar o perfil.

1. (Opcional) Em **Descrição**, insira uma descrição para o perfil.

1. (Opcional) Para editar os casos de uso e as permissões do perfil, escolha **Editar** nas seções **Etapa 1: selecionar entidades confiáveis** ou **Etapa 2: adicionar permissões**.

1. (Opcional) Para ajudar a identificar, organizar ou pesquisar o perfil, adicione tags como pares de chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte [Tags para recursos do AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*.

1. Reveja a função e escolha **Criar função**.

## Exemplo 1: Configuração de um usuário como um administrador de banco de dados (console)
<a name="jf_example_1"></a>

Este exemplo mostra as etapas necessárias para configurar Alice, uma usuária do IAM, como [administrador de banco de dados](access_policies_job-functions.md#jf_database-administrator). É possível usar as informações na primeira linha da tabela na seção e permitir que o usuário habilite o monitoramento do Amazon RDS. Anexe a política [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator) ao usuário do IAM de Alice para que ela possa gerenciar os serviços de banco de dados da Amazon. Essa política também permite que Alice passe ao serviço Amazon RDS um perfil denominado `rds-monitoring-role` que permite que o serviço monitore os bancos de dados do Amazon RDS em nome dela.

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Políticas**, digite **database** na caixa de pesquisa e pressione enter.

1. Marque o botão de seleção da política **DatabaseAdministrator**, escolha **Ações** e depois **Anexar**.

1. Na lista de usuários, selecione **Alice** e depois escolha **Anexar política**. Alice agora pode administrar bancos de dados da AWS. No entanto, para permitir que Alice monitore esses bancos de dados, você deve configurar a função de serviço.

1. No painel de navegação do console do IAM, escolha **Perfis** e, em seguida, **Criar perfil**.

1. Escolha o tipo de perfil **Serviço da AWS** e escolha **Amazon RDS**.

1. Escolha o caso de uso **Amazon RDS Role for Enhanced Monitoring** (Função do Amazon RDS para monitoramento avançado).

1. O Amazon RDS define as permissões para a função. Escolha **Próximo: Revisar** para continuar.

1. O nome da função deve ser um dos nomes especificados pela política DatabaseAdministrator que Alice agora possui. Um deles é **rds-monitoring-role**. Insira esse nome em **Role name** (Nome do perfil).

1. (Opcional) Em **Descrição do perfil**, insira uma descrição para o novo perfil.

1. Após revisar os detalhes, selecione **Create role** (Criar função).

1. Alice agora pode habilitar o **RDS Enhanced Monitoring** (Monitoramento avançado do RDS) na seção **Monitoring** (Monitoramento) do console do Amazon RDS. Por exemplo, ela poderia fazer isso ao criar uma instância de banco de dados ou uma réplica de leitura, ou ao modificar uma instância de banco de dados. Ela deve inserir o nome do perfil que criou (rds-monitoring-role) na caixa **Monitoring Role** (Perfil de monitoramento) quando definir **Enable Enhanced Monitoring** (Habilitar monitoramento avançado) como **Yes** (Sim). 

## Exemplo 2: Configuração de um usuário como um administrador de rede (console)
<a name="jf_example_2"></a>

Este exemplo mostra as etapas necessárias para configurar Jorge, um usuário do IAM, como [administrador da rede](access_policies_job-functions.md#jf_network-administrator). O exemplo usa as informações da tabela nessa seção para permitir que Jorge monitore o tráfego de IP entrando e saindo de uma VPC. Permite também que Jorge capture essas informações nos logs do CloudWatch Logs. Anexe a política [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator) ao usuário do IAM de Jorge para que ele possa configurar os recursos de rede da AWS. Essa política também permitirá que Jorge passe um perfil cujo nome começa com `flow-logs*` para o Amazon EC2 quando você criar um log de fluxo. Nesse cenário, ao contrário do Exemplo 1, não há um tipo de função de serviço predefinido; portanto, você deve realizar algumas etapas de forma diferente.

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e insira **network** na caixa de pesquisa, depois pressione enter.

1. Marque o botão de seleção ao lado da política **NetworkAdministrator**, escolha **Ações** e depois escolha **Anexar**.

1. Na lista de usuários, marque a caixa de seleção ao lado de **Jorge** e selecione **Anexar política**. Jorge agora pode administrar os recursos de rede da AWS. No entanto, para habilitar o monitoramento de tráfego de IP em sua VPC, você deve configurar a função de serviço.

1. Como a função de serviço que você precisa criar não tem uma política gerenciada predefinida, você deve primeiro criá-la. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. Na seção **Editor de políticas**, escolha a opção **JSON** e copie o texto do documento da política JSON a seguir. Cole este texto na caixa de texto do **JSON**. 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Effect": "Allow",
         "Resource": "*"
       }
     ]
   }
   ```

------

1.  Resolva os avisos de segurança, as mensagens erros ou os avisos gerais gerados durante a [validação de política](access_policies_policy-validator.md), e depois escolha **Próximo**. 
**nota**  
É possível alternar entre as opções de editor **Visual** e **JSON** a qualquer momento. Porém, se você fizer alterações ou escolher **Avançar** no editor **Visual**, o IAM poderá reestruturar a política a fim de otimizá-la para o editor visual. Para obter mais informações, consulte [Reestruturação da política](troubleshoot_policies.md#troubleshoot_viseditor-restructure).

1. Na página **Revisar e criar**, digite **vpc-flow-logs-policy-for-service-role** para o nome da política. Revise **Permissões definidas nessa política** para ver as permissões concedidas pela política e depois escolha **Criar política** para salvar seu trabalho.

   A nova política aparece na lista de políticas gerenciadas e está pronta para ser anexada.

1. No painel de navegação do console do IAM, escolha **Perfis** e, em seguida, **Criar perfil**.

1. Escolha o tipo de perfil **Serviço da AWS** e escolha **Amazon EC2**.

1. Selecione o caso de uso **Amazon EC2**.

1. Na página **Anexar políticas de permissão**, selecione a política que você criou anteriormente, **vpc-flow-logs-policy-for-service-role** e, em seguida, selecione **Próxima: Revisar**.

1. O nome da função deve ser permitido pela política NetworkAdministrator que Jorge agora tem. Qualquer nome que comece com `flow-logs-` é permitido. Neste exemplo, insira **flow-logs-for-jorge** em **Role name** (Nome do perfil).

1. (Opcional) Em **Descrição do perfil**, insira uma descrição para o novo perfil.

1. Após revisar os detalhes, selecione **Create role** (Criar função).

1. Agora você pode configurar a política de confiança necessária para este cenário. Na página **Perfis**, selecione o perfil **flow-logs-for-jorge** (o nome, não a caixa de seleção). Na página de detalhes para a sua nova função, selecione a guia **Relações de confiança** e, em seguida, selecione **Editar relação de confiança**.

1. Altere o "Serviço" para ler da seguinte forma, substituindo a entrada por `ec2.amazonaws.com`:

   ```
           "Service": "vpc-flow-logs.amazonaws.com"
   ```

1. Jorge agora pode criar logs de fluxo para uma VPC ou sub-rede no console do Amazon EC2. Quando você criar o log de fluxos, especifique o perfil **flow-logs-for-jorge**. Essa função tem as permissões para criar o log e gravar dados nele.

# AWSChaves de contexto de condições globais da
<a name="reference_policies_condition-keys"></a>

Quando um [principal](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) faz uma [solicitação](intro-structure.md#intro-structure-request) à AWS, a AWS reúne as informações da solicitação em um [contexto de solicitação](intro-structure.md#intro-structure-request). É possível usar o elemento `Condition` de uma política JSON para comparar chaves no contexto da solicitação com os valores de chave especificados em sua política. As informações da solicitação são fornecidas por fontes diferentes, incluindo a entidade principal que faz a solicitação, o recurso contra o qual a solicitação é feita e os metadados sobre a solicitação em si.

As **chaves de condição globais** podem ser usadas em todos os serviços da AWS. Embora essas chaves de condição possam ser usadas em todas as políticas, a chave não está disponível em todos os contextos de solicitação. Por exemplo, a chave de condição `aws:SourceAccount` só está disponível quando a chamada para seu recurso é feita diretamente por um responsável pela [entidade principal do serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). Para saber mais sobre as circunstâncias em que uma chave global é incluída no contexto da solicitação, consulte as informações de **Disponibilidade** de cada chave de condição global.

Alguns serviços individuais criam suas próprias chaves de condição que estão disponíveis no contexto da solicitação para outros serviços. As **chaves de condição entre serviços** são um tipo de chave de condição global que inclui um prefixo correspondente ao nome do serviço, como `ec2:` ou `lambda:`, mas estão disponíveis em outros serviços.

As **chaves de condição específicas do serviço** são definidas para uso com um serviço da AWS individual. Por exemplo, o Amazon S3 permite que você escreva uma política com a chave de condição `s3:VersionId` para limitar o acesso a uma versão específica de um objeto do Amazon S3. Essa chave de condição é exclusiva do serviço, o que significa que ela só funciona com solicitações ao serviço Amazon S3. Para chaves de condição específicas de serviços, consulte [Ações, recursos e chaves de condição para serviços da AWS](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) e escolha o serviço cujas chaves deseja visualizar. 

**nota**  
Se você usar chaves de condição disponíveis apenas em algumas circunstâncias, será possível usar as versões [IfExists](reference_policies_elements_condition_operators.md#Conditions_IfExists) dos operadores de condição. Se as chaves de condição estiverem ausentes no contexto de uma solicitação, poderá ocorrer falha na avaliação da política. Por exemplo, use o seguinte bloqueio de condição com operadores `...IfExists` para saber quando uma solicitação é proveniente de um determinado intervalo de IP ou de uma determinada VPC. Se uma ou ambas as chaves não estiverem incluídas no contexto da solicitação, a condição ainda retornará `true`. Os valores serão verificados somente se a chave especificada estiver incluída no contexto da solicitação. Para obter mais informações sobre como uma política é avaliada quando uma chave não está presente para outros operadores, consulte [Operadores de condição](reference_policies_elements_condition_operators.md).  

```
"Condition": {
    "IpAddressIfExists": {"aws:SourceIp" : ["xxx"] },
    "StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]} 
}
```

**Importante**  
Para comparar sua condição com um contexto de solicitação com vários valores de chave, você deve usar os operadores de conjunto `ForAllValues` ou `ForAnyValue`. Use operadores de conjunto somente com chaves de condições de vários valores. Não use operadores de conjuntos com chaves de condição de valor único. Para obter mais informações, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Propriedades da entidade principal | Propriedades de uma sessão de perfil | Propriedades da rede | Propriedades do recurso | Propriedades da solicitação | 
| --- | --- | --- | --- | --- | 
|  `aws:PrincipalArn` `aws:PrincipalAccount` `aws:PrincipalOrgPaths` `aws:PrincipalOrgID` `aws:PrincipalTag/*tag-key*` `aws:PrincipalIsAWSService` `aws:PrincipalServiceName` `aws:PrincipalServiceNamesList` `aws:PrincipalType` `aws:userid` `aws:username`  |  `aws:AssumedRoot` `aws:FederatedProvider` `aws:TokenIssueTime` `aws:MultiFactorAuthAge` `aws:MultiFactorAuthPresent` `aws:ChatbotSourceArn` `aws:Ec2InstanceSourceVpc` `aws:Ec2InstanceSourcePrivateIPv4` `aws:SourceIdentity` `ec2:RoleDelivery` `ec2:SourceInstanceArn` `glue:RoleAssumedBy` `glue:CredentialIssuingService` `codebuild:BuildArn` `codebuild:ProjectArn` `lambda:SourceFunctionArn` `ssm:SourceInstanceArn` `identitystore:UserId`  |  `aws:SourceIp` `aws:SourceVpc` `aws:SourceVpcArn` `aws:SourceVpce` `aws:VpceAccount` `aws:VpceOrgID` `aws:VpceOrgPaths` `aws:VpcSourceIp`  |  `aws:ResourceAccount` `aws:ResourceOrgID` `aws:ResourceOrgPaths` `aws:ResourceTag/*tag-key*`  |  `aws:CalledVia` `aws:CalledViaFirst` `aws:CalledViaLast` `aws:CalledViaAWSMCP` `aws:ViaAWSService` `aws:ViaAWSMCPService` `aws:CurrentTime` `aws:EpochTime` `aws:referer` `aws:RequestedRegion` `aws:RequestTag/*tag-key*` `aws:TagKeys` `aws:SecureTransport` `aws:SourceAccount` `aws:SourceArn` `aws:SourceOrgID` `aws:SourceOrgPaths` `aws:UserAgent` `aws:IsMcpServiceAction`  | 

## Chaves de condição sensíveis
<a name="condition-keys-sensitive"></a>

As seguintes chaves de condição são consideradas confidenciais. Não existe nenhum caso válido de uso de curingas nessas chaves de condição, mesmo com uma substring do valor da chave com um curinga. Isso ocorre porque o curinga pode fazer a correspondência da chave de condição com qualquer valor, o que pode representar um risco de segurança.
+ `aws:PrincipalAccount`
+ `aws:PrincipalOrgID`
+ `aws:ResourceAccount`
+ `aws:ResourceOrgID`
+ `aws:SourceAccount`
+ `aws:SourceOrgID`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:VpceAccount`
+ `aws:VpceOrgID`

## Propriedades da entidade principal
<a name="condition-keys-principal-properties"></a>

Use as chaves de condição a seguir para comparar detalhes sobre a entidade principal que está fazendo a solicitação com as propriedades da entidade principal especificada na política. Para obter uma lista das entidades principais que podem fazer solicitações, consulte [Como especificar uma entidade principal](reference_policies_elements_principal.md#Principal_specifying).

### aws:PrincipalArn
<a name="condition-keys-principalarn"></a>

Use essa chave para comparar o [nome do recurso da Amazon](reference_identifiers.md#identifiers-arns) (ARN) do principal que fez a solicitação com o ARN especificado na política. Para funções do IAM, o contexto da solicitação retorna o ARN da função, não o ARN do usuário que assumiu a função. 
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação para todas as solicitações assinadas. As solicitações anônimas não incluem essa chave. É possível especificar os seguintes tipos de entidades principais nesta chave de condição: 
  + IAM role (Perfil do IAM)
  + IAM user (Usuário do IAM)
  + Entidade principal de usuário federado do AWS STS
  + Usuário-raiz Conta da AWS
+ **Tipo de dados**: ARN

  A AWS recomenda utilizar [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) em vez de [operadores string](reference_policies_elements_condition_operators.md#Conditions_String) ao comparar ARNs.
+ **Tipo de valor**: valor único
+ **Valores de exemplo**: a lista a seguir mostra o valor do contexto de solicitação retornado para diferentes tipos de entidades principais que você pode especificar na chave de condição `aws:PrincipalArn`:
  + **Perfil do IAM**: o contexto da solicitação contém o seguinte valor para a chave de condição `aws:PrincipalArn`. Não especifique o ARN da sessão de perfil assumida como um valor para essa chave de condição. Para obter mais informações sobre a entidade principal da sessão de perfil assumida, consulte [Entidades principais da sessão de função](reference_policies_elements_principal.md#principal-role-session).

    ```
    arn:aws:iam::123456789012:role/role-name
    ```
  + **Usuário do IAM**: o contexto da solicitação contém o seguinte valor para a chave de condição `aws:PrincipalArn`.

    ```
    arn:aws:iam::123456789012:user/user-name
    ```
  + **Entidades principais de usuário federado do AWS STS**: o contexto da solicitação contém o valor a seguir para a chave de condição `aws:PrincipalArn`.

    ```
    arn:aws:sts::123456789012:federated-user/user-name
    ```
  + **Usuário-raiz da Conta da AWS**: o contexto da solicitação contém o valor a seguir para a chave de condição `aws:PrincipalArn`. Quando você especifica o ARN do usuário-raiz como o valor da chave de condição `aws:PrincipalArn`, ele limita as permissões apenas para o usuário-raiz da Conta da AWS. Isso é diferente de especificar o ARN do usuário-raiz no elemento principal de uma política baseada em recursos, o qual delega autoridade à Conta da AWS. Para obter mais informações sobre como especificar o ARN do usuário-raiz no elemento principal de uma política baseada em recursos, consulte [Entidades principais da Conta da AWS](reference_policies_elements_principal.md#principal-accounts). 

    ```
    arn:aws:iam::123456789012:root
    ```

É possível especificar o ARN do usuário-raiz como um valor para o `aws:PrincipalArn` da chave de condição nas políticas de controle de serviço (SCPs) do AWS Organizations. As SCPs são um tipo de política da organização usada para gerenciar permissões em sua organização e afetam apenas contas-membro na organização. Uma SCP restringe as permissões para usuários e funções do IAM em contas-membro, incluindo o usuário-raiz da conta-membro. Para obter mais informações sobre o efeito das SCPs nas permissões, consulte [Efeitos de SCP sobre permissões](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) no *Guia do usuário do AWS Organizations*.

### aws:PrincipalAccount
<a name="condition-keys-principalaccount"></a>

Use essa chave para comparar a conta à qual o principal solicitante pertence com o identificador de conta especificado na política. Para solicitações anônimas, o contexto da solicitação retorna `anonymous`.
+ **Availability** (Disponibilidade): essa chave é incluída no contexto da solicitação para todas as solicitações, incluindo as anônimas.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

No exemplo a seguir, o acesso é negado, exceto para entidades principais com o número de conta`123456789012`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessFromPrincipalNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:resource"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

### aws:PrincipalOrgPaths
<a name="condition-keys-principalorgpaths"></a>

Use esta chave para comparar o caminho AWS Organizations para o principal que está fazendo a solicitação para o caminho na política. Essa entidade principal pode ser um usuário do IAM, um perfil do IAM, uma entidade principal de usuário federado do AWS STS ou Usuário raiz da conta da AWS. Em uma política, essa chave de condição garante que o solicitante seja um membro da conta na raiz da organização especificada ou unidades organizacionais (OUs) em AWS Organizations. Um caminho AWS Organizations é uma representação de texto da estrutura de uma entidade do AWS Organizations. Para obter mais informações sobre como usar e entender caminhos, consulte [Compreender o caminho da entidade do AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação somente se a entidade principal for membro de uma organização. As solicitações anônimas não incluem essa chave.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos

**nota**  
Os IDs de organização são globalmente exclusivos, mas os IDs da UO e da raiz são exclusivos somente dentro de uma organização. Isso significa que duas organizações não compartilham o mesmo ID de organização. No entanto, outra organização pode ter uma UO ou raiz com o mesmo ID que o seu. Recomendamos sempre incluir o ID da organização ao especificar uma UO ou raiz.

Por exemplo, a condição a seguir retorna `true` para entidades de segurança em contas anexadas diretamente à UO `ou-ab12-22222222`, mas não em suas UOs filhas.

```
"Condition" : { "ForAnyValue:StringEquals" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"]
}}
```

A condição a seguir retorna `true` para entidades de segurança em uma conta que está anexada diretamente à UO ou a qualquer uma de suas UOs filhas. Ao incluir um caractere curinga, é necessário usar o operador de condição `StringLike`.

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"]
}}
```

A condição a seguir retorna `true` para entidades de segurança em uma conta que está anexada diretamente a qualquer uma das UOs filhas, mas não diretamente à UO mãe. A condição anterior é para a UO ou para as crianças. A condição a seguir é apenas para filhos (e quaisquer filhos desses filhos).

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"]
}}
```

A condição a seguir permite acesso a todos os principais da organização `o-a1b2c3d4e5`, independentemente de sua UO pai.

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"]
}}
```

`aws:PrincipalOrgPaths` é uma chave de condição de vários valores. Chaves de valores múltiplos podem ter vários valores no contexto da solicitação. Quando você usa vários valores com o operador de condição `ForAnyValue`, o caminho do principal deve corresponder a um dos caminhos listados na política. Para obter mais informações sobre chaves de condição de vários valores, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

```
    "Condition": {
        "ForAnyValue:StringLike": {
            "aws:PrincipalOrgPaths": [
                "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*",
                "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*"
            ]
        }
    }
```

### aws:PrincipalOrgID
<a name="condition-keys-principalorgid"></a>

Use essa chave para comparar o identificador da organização no AWS Organizations ao qual o principal solicitante pertence com o identificador especificado na política.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação somente se a entidade principal for membro de uma organização. As solicitações anônimas não incluem essa chave.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Essa chave global fornece uma alternativa para listar todos os IDs de conta para todas as contas da AWS em uma organização. É possível usar essa chave de condição para simplificar a especificação do elemento `Principal` em uma [política baseada no recurso](access_policies_identity-vs-resource.md). É possível especificar o [ID da organização](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) no elemento de condição. Ao adicionar e remover contas, as políticas que incluem a chave `aws:PrincipalOrgID` incluem automaticamente as contas corretas e não exigem a atualização manual.

Por exemplo, a política de bucket do Amazon S3 a seguir permite que membros de qualquer conta na organização `o-xxxxxxxxxxx` adicionem um objeto ao bucket `amzn-s3-demo-bucket`. 

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

****  

```
 {
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AllowPutObject",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {"StringEquals":
      {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"}
    }
  }
}
```

------

**nota**  
Essa condição global também se aplica a conta de gerenciamento de uma organização da AWS. Essa política impede que todas as entidades principais fora da organização especificada acessem o bucket do Amazon S3. Isso inclui quaisquer serviços da AWS que interagem com seus recursos internos, como o AWS CloudTrail enviando dados de log para seus buckets do Amazon S3. Para saber mais sobre como conceder acesso a serviços da AWS com segurança, consulte [aws:PrincipalIsAWSService](#condition-keys-principalisawsservice).

Para obter informações sobre o AWS Organizations, consulte [O que é AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) no *Guia do usuário do AWS Organizations*.

### aws:PrincipalTag/*tag-key*
<a name="condition-keys-principaltag"></a>

Use essa chave para comparar a tag anexada ao principal que está fazendo a solicitação com a tag especificada na política. Se o principal tiver mais de uma tag anexada, o contexto da solicitação incluirá uma chave `aws:PrincipalTag` para cada chave de tag anexada.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação se a entidade principal estiver usando um usuário do IAM com etiquetas anexadas. Ela será incluída para uma entidade principal usando um perfil do IAM com tags anexadas ou [etiquetas de sessão](id_session-tags.md). As solicitações anônimas não incluem essa chave.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

É possível adicionar atributos personalizados a um usuário ou uma função na forma de um par de chave/valor. Para obter mais informações sobre etiquetas do IAM, consulte [Tags para recursos do AWS Identity and Access Management](id_tags.md). É possível usar `aws:PrincipalTag` para [controlar o acesso](access_iam-tags.md#access_iam-tags_control-principals) de entidades principais da AWS.

Este exemplo mostra como você pode criar uma política baseada em identidade que permita que usuários com a tag **department=hr** gerenciem usuários, grupos ou perfis do IAM. Para usar esta política, substitua o *texto do espaço reservado em itálico* na política de exemplo por suas próprias informações. Em seguida, siga as instruções em [criar uma política](access_policies_create.md) ou [editar uma política](access_policies_manage-edit.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:Get*",
        "iam:List*",
        "iam:Generate*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": "hr"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalIsAWSService
<a name="condition-keys-principalisawsservice"></a>

Use esta chave para verificar se a chamada para o seu recurso está sendo feita diretamente por uma [entidade principal do produto](reference_policies_elements_principal.md#principal-services) da AWS. Por exemplo, o AWS CloudTrail usa a entidade principal `cloudtrail.amazonaws.com` do serviço para gravar logs no bucket do Amazon S3. A chave de contexto de solicitação é definida como verdadeira quando um serviço usa uma entidade principal do serviço para executar uma ação direta em seus recursos. A chave de contexto é definida como false (falsa) se o serviço usar as credenciais de uma entidade principal do IAM para fazer uma solicitação em nome da entidade principal. Também é definida como falsa se o serviço usar um [perfil de serviço ou perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para fazer uma chamada em nome da entidade principal.
+ **Disponibilidade do**: essa chave está presente no contexto da solicitação para todas as solicitações de API assinadas que usam credenciais da AWS. As solicitações anônimas não incluem essa chave.
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

É possível usar essa chave de condição para limitar o acesso às suas identidades confiáveis e locais de rede esperados, ao mesmo tempo que concede acesso com segurança aos produtos da AWS.

No exemplo de política de bucket do Amazon S3 a seguir, o acesso ao bucket é restrito, a menos que a solicitação seja originada de `vpc-111bbb22` ou seja de uma entidade principal de serviço, como o CloudTrail.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWSLogs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22"
        },
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}
```

------

No vídeo a seguir, saiba mais sobre como você pode usar a chave de condição `aws:PrincipalIsAWSService` em uma política.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gv-_H8a42G4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gv-_H8a42G4)


### aws:PrincipalServiceName
<a name="condition-keys-principalservicename"></a>

Use esta chave para comparar o nome da [entidade principal de serviço](reference_policies_elements_principal.md#principal-services) na política com a entidade principal de serviço que está fazendo solicitações aos seus recursos. É possível usar essa chave para verificar se essa chamada é feita por uma entidade principal de serviço específica. Quando uma entidade principal do serviço faz uma solicitação direta ao seu recurso, a chave `aws:PrincipalServiceName` contém o nome da entidade principal do serviço. Por exemplo, o nome da entidade principal do serviço AWS CloudTrail é `cloudtrail.amazonaws.com`.
+ **Disponibilidade**: essa chave está presente na solicitação quando a chamada é feita por uma entidade principal de produto da AWS. Esta chave não está presente em nenhuma outra situação, incluindo a seguinte:
  + Se o serviço usa um [perfil de serviço ou perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para fazer uma chamada em nome da entidade principal de segurança.
  + Se o serviço usar as credenciais de uma entidade principal do IAM para fazer uma solicitação em nome da entidade principal.
  + Se a chamada for feita diretamente por uma entidade principal do IAM.
  + Se a chamada for feita por um solicitante anônimo.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

É possível usar essa chave de condição para limitar o acesso às suas identidades confiáveis e locais de rede esperados, ao mesmo tempo que concede acesso com segurança a um produto da AWS.

No exemplo de política de bucket do Amazon S3 a seguir, o acesso ao bucket é restrito, a menos que a solicitação seja originada de `vpc-111bbb22` ou seja de uma entidade principal de serviço, como o CloudTrail.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWSLogs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22",
          "aws:PrincipalServiceName": "cloudtrail.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalServiceNamesList
<a name="condition-keys-principalservicenameslist"></a>

Essa chave fornece uma lista de todos os nomes de [entidade principal de serviço](reference_policies_elements_principal.md#principal-services) que pertencem ao serviço. Esta é uma chave de condição avançada. É possível usá-la para restringir o acesso do serviço ao seu recurso somente de uma região específica. Alguns serviços podem criar entidades de serviço regionais para indicar uma instância específica do serviço dentro de uma região específica. É possível limitar o acesso a um recurso para uma instância específica do serviço. Quando uma entidade principal do serviço faz uma solicitação direta ao seu recurso, a chave `aws:PrincipalServiceNamesList` contém uma lista não ordenada de todos os nomes das entidades de segurança do serviço associadas à instância regional do serviço.
+ **Disponibilidade**: essa chave está presente na solicitação quando a chamada é feita por uma entidade principal de produto da AWS. Esta chave não está presente em nenhuma outra situação, incluindo a seguinte:
  + Se o serviço usa um [perfil de serviço ou perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para fazer uma chamada em nome da entidade principal de segurança.
  + Se o serviço usar as credenciais de uma entidade principal do IAM para fazer uma solicitação em nome da entidade principal.
  + Se a chamada for feita diretamente por uma entidade principal do IAM.
  + Se a chamada for feita por um solicitante anônimo.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos

`aws:PrincipalServiceNamesList` é uma chave de condição de vários valores. Chaves de valores múltiplos podem ter vários valores no contexto da solicitação. Você deve usar os operadores de conjunto `ForAnyValue` ou `ForAllValues` com [operadores de condição de string](reference_policies_elements_condition_operators.md#Conditions_String) para essa chave. Para obter mais informações sobre chaves de condição de vários valores, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:PrincipalType
<a name="condition-keys-principaltype"></a>

Use essa chave para comparar o tipo de principal que está fazendo a solicitação com o tipo de principal especificado na política. Para obter mais informações, consulte [Como especificar uma entidade principal](reference_policies_elements_principal.md#Principal_specifying). Para exemplos específicos de valores de chave de `principal`, consulte [Valores de chave de principal](reference_policies_variables.md#principaltable).
+ **Availability** (Disponibilidade): essa chave é incluída no contexto da solicitação para todas as solicitações, incluindo as anônimas.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:userid
<a name="condition-keys-userid"></a>

Use essa chave para comparar o identificador do principal do solicitante com o ID especificado na política. Para usuários do IAM, o valor de contexto da solicitação é o ID de usuário. Para funções do IAM, esse formato de valor pode variar. Para obter detalhes sobre como as informações são exibidas para diferentes principais, consulte [Como especificar uma entidade principal](reference_policies_elements_principal.md#Principal_specifying). Para exemplos específicos de valores de chave de `principal`, consulte [Valores de chave de principal](reference_policies_variables.md#principaltable).
+ **Availability** (Disponibilidade): essa chave é incluída no contexto da solicitação para todas as solicitações, incluindo as anônimas.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:username
<a name="condition-keys-username"></a>

Use essa chave para comparar o nome de usuário do solicitante com o nome de usuário especificado na política. Para obter detalhes sobre como as informações são exibidas para diferentes principais, consulte [Como especificar uma entidade principal](reference_policies_elements_principal.md#Principal_specifying). Para exemplos específicos de valores de chave de `principal`, consulte [Valores de chave de principal](reference_policies_variables.md#principaltable).
+ **Disponibilidade**: essa chave será sempre incluída no contexto da solicitação para os usuários do IAM. Solicitações anônimas e solicitações feitas usando o Usuário raiz da conta da AWS ou perfis do IAM não incluem essa chave. As solicitações feitas usando credenciais do IAM Identity Center não incluem essa chave no contexto.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

## Propriedades de uma sessão de perfil
<a name="condition-keys-role-session-properties"></a>

Use as chaves de condição a seguir para comparar as propriedades da sessão do perfil no momento em que a sessão foi gerada. Essas chaves de condição só estão disponíveis quando uma solicitação é feita por uma entidade principal com credenciais de sessão de perfil ou de entidade principal de usuário federado. Os valores dessas chaves de condição estão incorporados no token de sessão do perfil.

Um [perfil](reference_policies_elements_principal.md#principal-roles) é um tipo de entidade principal. Você também pode usar as chaves de condição da seção [Propriedades da entidade principal](#condition-keys-principal-properties) para avaliar as propriedades de um perfil quando um perfil está fazendo uma solicitação.

### aws:AssumedRoot
<a name="condition-keys-assumedroot"></a>

Use essa chave para verificar se a solicitação foi feita usando [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html). `AssumeRoot` retorna credenciais de curto prazo para uma sessão de usuário-raiz privilegiado que pode ser usada para realizar ações privilegiadas nas contas-membro em sua organização. Para obter mais informações, consulte [Gerencie centralmente o acesso raiz para contas-membro](id_root-user.md#id_root-user-access-management).
+ **Disponibilidade**: esta chave é incluída no contexto da solicitação somente quando a entidade principal usa credenciais de [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) para fazer a solicitação.
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

No exemplo a seguir, quando usado como uma política de controle de serviço, impede o uso das credenciais de longo prazo de um usuário-raiz em uma conta de membro do AWS Organizations. A política não impede que as sessões de `AssumeRoot` realizem as ações permitidas por uma sessão de `AssumeRoot`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
       {
          "Effect":"Deny",
          "Action":"*",
          "Resource": "*",
          "Condition":{
             "ArnLike":{
                "aws:PrincipalArn":[
                   "arn:aws:iam::*:root"
                ]
             },
             "Null":{
                "aws:AssumedRoot":"true"
             }
          }
       }
    ]
 }
```

------

### aws:FederatedProvider
<a name="condition-keys-federatedprovider"></a>

Use essa chave para comparar o provedor de identidade (IdP) emissor da entidade principal com o IdP especificado na política. Isso significa que um perfil do IAM foi assumido usando a operação [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity) do AWS STS. Quando as credenciais temporárias da sessão de função resultante são usadas para fazer uma solicitação, o contexto da solicitação identifica o IdP que autenticou a identidade federada original.
+ **Disponibilidade**: essa chave está presente na sessão de perfil de um perfil que foi assumido usando o provedor OpenID Connect (OIDC) e na política de confiança do perfil quando um provedor OIDC está é usado para chamar `AssumeRoleWithWebIdentity`.
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)\$1
+ **Tipo de valor**: valor único

\$1 O tipo de dados depende do seu IdP:
+ Se você estiver usando um IdP integrado da AWS, como o [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html), o valor da chave será uma **string**. O valor da chave pode ser semelhante a: `cognito-identity.amazonaws.com`.
+ Se você estiver usando um IdP que não esteja incorporado à AWS, como o [https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) ou o [Amazon EKS](https://docs.aws.amazon.com//eks/latest/userguide/associate-service-account-role.html), o valor da chave será um **ARN**. O valor da chave pode ser semelhante a: `arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID`.

Para obter mais informações sobre IdPs externos e `AssumeRoleWithWebIDentity`, consulte [Cenários comuns](id_federation_common_scenarios.md). Para obter mais informações, consulte [Entidades principais da sessão de função](reference_policies_elements_principal.md#principal-role-session).

### aws:TokenIssueTime
<a name="condition-keys-tokenissuetime"></a>

Use essa chave para comparar a data e a hora em que as credenciais de segurança temporárias foram emitidas com a data e a hora especificadas na política. 
+ **Disponibilidade**: esta chave é incluída no contexto da solicitação somente quando a entidade principal usa credenciais temporárias para fazer a solicitação. A chave não está presente em solicitações da AWS CLI, da API da AWS ou do AWS SDK que são feitas usando chaves de acesso.
+ **Tipo de dados**: [Data](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Tipo de valor**: valor único

Para saber quais serviços oferecem suporte a credenciais de segurança temporárias, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).

### aws:MultiFactorAuthAge
<a name="condition-keys-multifactorauthage"></a>

Use essa chave para comparar o número de segundos desde que o principal solicitante foi autorizado usando MFA com o número especificado na política. Para obter mais informações sobre MFA, consulte [Código da autenticação multifator no IAM da AWS](id_credentials_mfa.md).

**Importante**  
Essa chave de condição não está presente em identidades federadas ou solicitações feitas usando chaves de acesso para assinar solicitações da AWS CLI, da API da AWS ou do AWS SDK. Para saber mais sobre como adicionar proteção com MFA às operações de API com credenciais de segurança temporárias, consulte [Acesso seguro à API com a MFA](id_credentials_mfa_configure-api-require.md).  
Para verificar se a MFA é usada para validar identidades federadas do IAM, você pode transmitir o método de autenticação do seu provedor de identidade para a AWS como uma tag de sessão. Para obter detalhes, consulte [Passar tags de sessão no AWS STS](id_session-tags.md). Para aplicar a MFA às identidades do Centro de Identidade do IAM, você pode [habilitar atributos de controle de acesso](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) para transmitir uma declaração SAML com o método de autenticação do seu provedor de identidade ao Centro de Identidade do IAM.
+ **Disponibilidade**: esta chave é incluída no contexto da solicitação somente quando a entidade principal usa [credenciais de segurança temporárias](id_credentials_temp.md) para fazer a solicitação. Políticas com condições de MFA podem ser anexadas a:
  + Um usuário ou grupo do IAM
  + Um recurso como um bucket do Amazon S3, uma fila do Amazon SQS ou um tópico do Amazon SNS
  + A política de confiança de uma função do IAM que pode ser assumida por um usuário
+ **Tipos de dados**: [Numérico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo de valor**: valor único

### aws:MultiFactorAuthPresent
<a name="condition-keys-multifactorauthpresent"></a>

Use essa chave para verificar se a autenticação multifator (MFA) foi usada para validar as [credenciais de segurança temporárias](id_credentials_temp.md) que fizeram a solicitação.

**Importante**  
Essa chave de condição não está presente em identidades federadas ou solicitações feitas usando chaves de acesso para assinar solicitações da AWS CLI, da API da AWS ou do AWS SDK. Para saber mais sobre como adicionar proteção com MFA às operações de API com credenciais de segurança temporárias, consulte [Acesso seguro à API com a MFA](id_credentials_mfa_configure-api-require.md).  
Para verificar se a MFA é usada para validar identidades federadas do IAM, você pode transmitir o método de autenticação do seu provedor de identidade para a AWS como uma tag de sessão. Para obter detalhes, consulte [Passar tags de sessão no AWS STS](id_session-tags.md). Para aplicar a MFA às identidades do Centro de Identidade do IAM, você pode [habilitar atributos de controle de acesso](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) para transmitir uma declaração SAML com o método de autenticação do seu provedor de identidade ao Centro de Identidade do IAM.
+ **Disponibilidade**: esta chave é incluída no contexto da solicitação somente quando a entidade principal usa credenciais temporárias para fazer a solicitação. Políticas com condições de MFA podem ser anexadas a:
  + Um usuário ou grupo do IAM
  + Um recurso como um bucket do Amazon S3, uma fila do Amazon SQS ou um tópico do Amazon SNS
  + A política de confiança de uma função do IAM que pode ser assumida por um usuário
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

As credenciais temporárias são usadas para autenticar perfis do IAM e usuários do IAM com tokens temporários de [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) ou [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) e usuários do Console de gerenciamento da AWS.

As chaves de acesso do usuário do IAM são credenciais de longo prazo, mas, em alguns casos, a AWS cria credenciais temporárias em nome dos usuários do IAM para realizar operações. Nesses casos, a chave `aws:MultiFactorAuthPresent` está presente na solicitação e definida como um valor de `false`. Há dois casos comuns em que isso pode acontecer:
+ Os usuários do IAM no Console de gerenciamento da AWS inconscientemente usam credenciais temporárias. Os usuários fazem login no console do usando seu nome de usuário e senha, que são credenciais de longo prazo. No entanto, em segundo plano, o console gera credenciais temporárias em nome do usuário. 
+ Se um usuário do IAM faz uma chamada para um produto da AWS, o produto reutiliza as credenciais do usuário para fazer outra solicitação a outro serviço. Por exemplo, ao chamar o Athena para acessar um bucket do Amazon S3 ou ao usar o CloudFormation para criar uma instância do Amazon EC2. Para a solicitação subsequente, a AWS usa credenciais temporárias.

Para saber quais serviços oferecem suporte a credenciais de segurança temporárias, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).

A chave `aws:MultiFactorAuthPresent` nunca está presente quando uma API ou um comando da CLI é chamado com credenciais de longo prazo, como pares de chave de acesso. Portanto, recomendamos que, ao verificar essa chave, você use as versões `...IfExists` dos operadores de condição.

É importante compreender que o seguinte elemento `Condition` ***não*** é uma maneira confiável de verificar se uma solicitação é autenticada usando MFA.

```
#####   WARNING: NOT RECOMMENDED   #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Essa combinação do efeito `Deny`, do elemento `Bool` e do valor `false` nega as solicitações que podem ser autenticadas usando MFA, mas que não foram. Isso se aplica apenas a credenciais temporárias que oferecem suporte usando MFA. Essa declaração não nega o acesso a solicitações que são feitas usando credenciais de longo prazo ou a solicitações que são autenticadas usando MFA. Use este exemplo com cuidado, pois a lógica é complicada e não testa se a autenticação por MFA foi realmente utilizada. 

Além disso, não use a combinação do efeito `Deny`, do elemento `Null` e `true` porque ela se comporta da mesma forma e a lógica é ainda mais complicada.

**Combinação recomendada**  
Recomendamos usar o operador [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists) para verificar se um solicitação foi autenticada usando MFA.

```
"Effect" : "Deny",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Essa combinação de `Deny`, `BoolIfExists` e `false` nega solicitações que não são autenticados usando MFA. Especificamente, ela nega solicitações de credenciais temporárias que não incluem MFA. Ele também nega solicitações que são feitas usando credenciais de longo prazo, como operações da AWS CLI ou da API da AWS feitas usando chaves de acesso. O operador `*IfExists` verificará a presença da chave `aws:MultiFactorAuthPresent` e se ela poderia ou não estar presente, conforme indicado pela sua existência. Use essa opção quando quiser recusar qualquer solicitação que não tenha sido autenticada usando MFA. Isso é mais seguro, mas pode danificar um código ou script que use chaves de acesso para acessar a AWS CLI ou a API da AWS. 

**Combinações alternativas**  
Também é possível usar o operador [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists) para permitir solicitações autenticadas por MFA e solicitações da AWS CLI ou da API da AWS que são feitas usando credenciais de longo prazo.

```
"Effect" : "Allow",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }
```

Essa condição corresponde à condição se a chave existe e está presente **ou** se a chave não existe. Essa combinação de `Allow`, `BoolIfExists`, e `true` permite as solicitações autenticadas usando MFA ou as solicitações que não podem ser autenticadas usando MFA. Isso significa que as operações da AWS CLI, da API da AWS e do AWS SDK são permitidas quando o solicitante usa as chaves de acesso de longo prazo dele. Essa combinação não permite solicitações de credenciais temporárias que poderiam, mas não incluem MFA. 

Quando você cria uma política usando o editor visual do console do IAM e seleciona **MFA required** (MFA obrigatória), essa combinação é aplicada. Essa configuração requer MFA para acesso ao console, mas permite acesso programático sem MFA. 

Como alternativa, você pode usar o operador `Bool` para permitir solicitações programáticas e de console somente quando a autenticação for feita usando MFA.

```
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
```

Essa combinação de `Allow`, `Bool` e `true` permite apenas solicitações autenticadas por MFA. Isso se aplica apenas a credenciais temporárias que oferecem suporte usando MFA. Essa declaração não permite o acesso a solicitações que são feitas usando chaves de acesso de longo prazo ou a solicitações feitas usando credenciais temporárias sem MFA. 

***Não*** use um elemento de política seguinte ao seguinte para verificar se a chave de MFA está presente:

```
#####   WARNING: USE WITH CAUTION   #####

"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Essa combinação do efeito `Allow`, do elemento `Null` e do valor `false` permite apenas solicitações que podem ser autenticadas usando MFA, independentemente de a solicitação ser realmente autenticada. Isso permite todas as solicitações que são feitas usando credenciais temporárias e nega o acesso para credenciais de longo prazo. Use este exemplo com cuidado porque ele não testa se a autenticação por MFA foi realmente utilizada. 

### aws:ChatbotSourceArn
<a name="condition-keys-chatbotsourcearn"></a>

Use essa chave para comparar o ARN da configuração do chat de origem definido pela entidade principal com o ARN da configuração do chat que você especificou na política do perfil do IAM associada à configuração do canal. É possível autorizar solicitações com base na sessão de perfil assumida iniciada pelo Amazon Q Developer em aplicações de chat.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação pelo serviço Amazon Q Developer em aplicações de chat sempre que uma sessão de perfil é assumida. O valor da chave é o ARN da configuração do chat, como quando você [executa um comando da AWS CLI em um canal de chat](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-cli-commands.html).
+ **Tipo de dados**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Exemplo de valor** – `arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel`

A política a seguir nega as solicitações de put do Amazon S3 no bucket especificado para todas as solicitações originadas em canal do Slack.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleS3Deny",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnLike": {
                      "aws:ChatbotSourceArn": "arn:aws:chatbot::*:chat-configuration/slack-channel/*"
                }
            }
        }
    ]
}
```

------

### aws:Ec2InstanceSourceVpc
<a name="condition-keys-ec2instancesourcevpc"></a>

Essa chave identifica a VPC para a qual as credenciais de perfil do IAM do Amazon EC2 foram entregues. É possível usar essa chave em uma política com a chave global [`aws:SourceVPC`](#condition-keys-sourcevpc) para verificar se uma chamada é feita por uma VPC (`aws:SourceVPC`) que corresponde à VPC para a qual a credencial foi entregue (`aws:Ec2InstanceSourceVpc`).
+ **Disponibilidade**: esta chave será incluída no contexto da solicitação sempre que o solicitante assinar solicitações com uma credencial de perfil do Amazon EC2. Pode ser usada em políticas do IAM, políticas de controle de serviços, políticas de endpoint da VPC e políticas de recursos.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Essa chave pode ser usada com valores de identificador de VPC, porém é mais útil quando usada como uma variável combinada com a chave de contexto `aws:SourceVpc`. A chave de contexto `aws:SourceVpc` será incluída no contexto da solicitação somente se o solicitante usar um endpoint da VPC para fazer a solicitação. Usar `aws:Ec2InstanceSourceVpc` com `aws:SourceVpc` permite que você utilize `aws:Ec2InstanceSourceVpc` de forma mais ampla, pois compara valores que normalmente são alterados juntos.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RequireSameVPC",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}"
        },
        "Null": {
          "ec2:SourceInstanceARN": "false"
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

No exemplo acima, o acesso será negado se o valor de `aws:SourceVpc` não for igual ao valor de `aws:Ec2InstanceSourceVpc`. A instrução de política é limitada somente aos perfis usados como perfis de instância do Amazon EC2, testando a existência da chave de condição `ec2:SourceInstanceARN`.

A política usa `aws:ViaAWSService` para permitir que a AWS autorize solicitações quando as solicitações são feitas em nome de seus perfis de instância do Amazon EC2. Por exemplo, quando você faz uma solicitação de uma instância do Amazon EC2 para um bucket criptografado do Amazon S3, o Amazon S3 faz uma chamada para o AWS KMS por você. Algumas das chaves não estão presentes quando a solicitação é feita ao AWS KMS.

### aws:Ec2InstanceSourcePrivateIPv4
<a name="condition-keys-ec2instancesourceprivateip4"></a>

Esta chave identifica o endereço IPv4 privado da interface de rede elástica primária ao qual as credenciais de perfil do IAM do Amazon EC2 foram entregues. É necessário usar essa chave de condição com sua chave complementar `aws:Ec2InstanceSourceVpc` para garantir que você tenha uma combinação global exclusiva de ID da VPC e IP privado de origem. Use essa chave com `aws:Ec2InstanceSourceVpc` para garantir que uma solicitação tenha sido feita com base no mesmo endereço IP privado para o qual as credenciais foram entregues.
+ **Disponibilidade**: esta chave será incluída no contexto da solicitação sempre que o solicitante assinar solicitações com uma credencial de perfil do Amazon EC2. Pode ser usada em políticas do IAM, políticas de controle de serviços, políticas de endpoint da VPC e políticas de recursos.
+ **Tipo de dados**: [Endereço IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo de valor**: valor único

**Importante**  
Essa chave não deve ser usada sozinha em uma instrução `Allow`. Por definição, os endereços IP privados não são globalmente exclusivos. É necessário usar a chave `aws:Ec2InstanceSourceVpc` toda vez que usar a chave `aws:Ec2InstanceSourcePrivateIPv4` para especificar a VPC de onde suas credenciais de instância do Amazon EC2 podem ser usadas.

O exemplo a seguir é uma política de controle de serviço (SCP) que nega acesso a todos os recursos, a menos que a solicitação chegue por meio de um endpoint da VPC na mesma VPC das credenciais do perfil. Neste exemplo, `aws:Ec2InstanceSourcePrivateIPv4` limita a origem da credencial a uma instância específica com base no IP de origem.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action":  "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}"
                },                
                "Null": {
                    "ec2:SourceInstanceARN": "false"
                },
                "BoolIfExists": {
                    "aws:ViaAWSService": "false"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action":  "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}"
                },                               
                "Null": {
                    "ec2:SourceInstanceARN": "false"
                },
                "BoolIfExists": {
                    "aws:ViaAWSService": "false"
                }
            }
        }
    ]
}
```

------

### aws:SourceIdentity
<a name="condition-keys-sourceidentity"></a>

Use essa chave para comparar a identidade-fonte definida pela entidade principal com a identidade-fonte especificada na política. 
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação depois que uma identidade-fonte é definida quando uma função é assumida usando qualquer comando de assumir função da CLI do AWS STS ou a operação `AssumeRole` da API do AWS STS.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

É possível usar essa chave em uma política para permitir ações na AWS executadas por entidades de segurança que definiram uma identidade-fonte ao assumir um perfil. A atividade para a identidade-fonte especificada da função aparece no [AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds). Isso torna mais fácil para os administradores determinar quem ou o que executou ações com uma função na AWS.

Ao contrário de [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname), após a definição da identidade-fonte, o valor não pode ser alterado. Ele estará presente no contexto da solicitação para todas as ações executadas pela função. O valor persiste nas sessões de função subsequentes quando você usa as credenciais da sessão para assumir outra função. Assumir uma função de outra é chamado de [encadeamento de funções](id_roles.md#iam-term-role-chaining). 

A chave [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) está presente na solicitação quando a entidade principal inicialmente define uma identidade-fonte enquanto assume um perfil usando qualquer comando de assumir perfil da CLI do AWS STS ou operação da API `AssumeRole` do AWS STS. A chave `aws:SourceIdentity` está presente na solicitação para todas as ações executadas com uma sessão de função que possui um conjunto de identidade-fonte.

A política de confiança de perfil a seguir para `CriticalRole` na conta `111122223333` contém uma condição para `aws:SourceIdentity` que impede que uma entidade principal sem uma identidade-fonte definida como Saanvi ou Diego assuma o perfil.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AssumeRoleIfSourceIdentity",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringLike": {
                    "aws:SourceIdentity": ["Saanvi","Diego"]
                }
            }
        }
    ]
}
```

------

Para saber mais sobre como usar informações de identidade-fonte, consulte [Monitorar e controlar ações realizadas com funções assumidas](id_credentials_temp_control-access_monitor.md).

### ec2:RoleDelivery
<a name="condition-keys-ec2-role-delivery"></a>

Use essa chave para comparar a versão do serviço de metadados da instância na solicitação assinada com as credenciais do perfil do IAM para o Amazon EC2. O serviço de metadados da instância faz distinção entre as solicitações do IMDSv1 e do IMDSv2 com base na presença dos cabeçalhos `PUT` ou `GET` , que são exclusivos do IMDSv2, nessa solicitação.
+ **Disponibilidade**: esta chave será incluída no contexto da solicitação sempre que a sessão de perfil for criada por uma instância do Amazon EC2.
+ **Tipos de dados**: [Numérico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo de valor**: valor único
+ **Valores de exemplo** – 1.0, 2.0

É possível configurar o Serviço de metadados de instância (IMDS) em cada instância de modo que o código ou os usuários locais devam usar o IMDSv2. Quando você especifica que o IMDSv2 deve ser usado, o IMDSv1 não funciona mais.
+ Serviço de metadados da instância versão 1 (IMDSv1): um método de solicitação/resposta 
+ Serviço de metadados da instância versão 2 (IMDSv2): um método orientado a sessões

Para obter informações sobre como configurar sua instância para usar o IMDSv2, consulte [Configurar as opções de metadados da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html).

No exemplo a seguir, o acesso será negado se o valor ec2:RoleDelivery no contexto da solicitação for 1.0 (IMDSv1). Essa instrução/política pode ser aplicada de modo geral porque, se a solicitação não for assinada por credenciais de perfil do Amazon EC2, ela não terá efeito.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

Para obter mais informações, consulte [Exemplo de políticas para trabalhar com metadados de instâncias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-instance-metadata).

### ec2:SourceInstanceArn
<a name="condition-keys-ec2-source-instance-arn"></a>

Use essa chave para comparar o ARN da instância da qual a sessão do perfil foi gerada.
+ **Disponibilidade**: esta chave será incluída no contexto da solicitação sempre que a sessão de perfil for criada por uma instância do Amazon EC2.
+ **Tipo de dados**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Exemplo de valor**: arn:aws::ec2:us-west-2:111111111111:instance/instance-id

Para obter exemplos de políticas, consulte [Permitir que uma instância específica visualize recursos em outros serviços da AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-source-instance).

### glue:RoleAssumedBy
<a name="condition-keys-glue-role-assumed-by"></a>

O serviço AWS Glue define essa chave de condição para cada solicitação à API da AWS em que AWS Glue faz uma solicitação usando um perfil de serviço em nome do cliente (não por meio de um endpoint de trabalho ou desenvolvedor, mas diretamente pelo serviço AWS Glue). Use essa chave para verificar se uma chamada para um recurso da AWS é proveniente do serviço AWS Glue.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação quando o AWS Glue fizer uma solicitação usando um perfil de serviço em nome do cliente.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Valor de exemplo**: essa chave é sempre definida como `glue.amazonaws.com`.

O exemplo a seguir adiciona uma condição para permitir que o serviço AWS Glue obtenha um objeto de um bucket do Amazon S3.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:RoleAssumedBy": "glue.amazonaws.com"
        }
    }
}
```

### glue:CredentialIssuingService
<a name="condition-keys-glue-credential-issuing"></a>

O serviço AWS Glue define essa chave para cada solicitação à API da AWS usando um perfil de serviço proveniente de um endpoint de trabalho ou desenvolvedor. Use essa chave para verificar se uma chamada para um recurso da AWS é proveniente de um endpoint de trabalho ou desenvolvedor do AWS Glue.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação quando o AWS Glue fizer uma solicitação proveniente de um endpoint de trabalho ou desenvolvedor.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Valor de exemplo**: essa chave é sempre definida como `glue.amazonaws.com`.

O exemplo seguir adiciona uma condição vinculada a um perfil do IAM usado por um trabalho do AWS Glue. Isso garante que determinadas ações sejam permitidas/negadas dependendo de a sessão de perfil ser ou não usada para um ambiente de runtime de trabalho do AWS Glue.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:CredentialIssuingService": "glue.amazonaws.com"
        }
    }
}
```

### codebuild:BuildArn
<a name="condition-keys-codebuild-build-arn"></a>

Essa chave identifica o ARN da compilação do CodeBuild à qual as credenciais do perfil do IAM foram fornecidas. Use essa chave para verificar se uma chamada para um recurso da AWS é proveniente de uma determinada compilação do CodeBuild.

**nota**  
O valor total de `codebuild:BuildArn` não é conhecido com antecedência porque contém o ID da compilação gerado dinamicamente.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação sempre que uma solicitação é feita por um perfil assumido pelo CodeBuild.
+ **Tipo de dados**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Exemplo de valor**: arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:12345678-1234-1234-1234-123456789012

O exemplo a seguir permite que uma determinada compilação do CodeBuild tenha acesso de `s3:GetObject` ao bucket especificado.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnLike": {
            "codebuild:BuildArn": "arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:*"
        }
    }
}
```

### codebuild:ProjectArn
<a name="condition-keys-codebuild-project-arn"></a>

Essa chave identifica o ARN do projeto do CodeBuild ao qual as credenciais do perfil do IAM foram fornecidas. Use essa chave para verificar se uma chamada para um recurso da AWS é proveniente de um determinado projeto do CodeBuild.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação sempre que uma solicitação é feita por um perfil assumido pelo CodeBuild.
+ **Tipo de dados**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Exemplo de valor**: arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject

O exemplo a seguir permite que qualquer compilação de um determinado projeto do CodeBuild tenha acesso de `s3:GetObject` ao bucket especificado.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnEquals": {
            "codebuild:ProjectArn": "arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject"
        }
    }
}
```

### lambda:SourceFunctionArn
<a name="condition-keys-lambda-source-function-arn"></a>

Use essa chave para identificar o ARN da função do Lambda para o qual as credenciais do perfil do IAM foram entregues. O serviço Lambda define essa chave para cada solicitação à API da AWS proveniente do ambiente de execução da sua função. Use essa chave para verificar se uma chamada para um recurso da AWS é proveniente do código de uma função específica do Lambda. O Lambda também define essa chave para algumas solicitações feitas fora do ambiente de execução, como gravar logs no CloudWatch e enviar rastreamentos para o X-Ray.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação sempre que o código da função do Lambda for invocado.
+ **Tipo de dados**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Valor de exemplo**: arn:aws:lambda:us-east-1:123456789012:function:TestFunction

O exemplo a seguir permite que uma função do Lambda específica tenha acesso de `s3:PutObject` ao bucket especificado.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

------

Para obter mais informações, consulte [Trabalhar com credenciais do ambiente de execução do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-source-function-arn) no *Guia do desenvolvedor do AWS Lambda*.

### ssm:SourceInstanceArn
<a name="condition-keys-ssm-source-instance-arn"></a>

Use essa chave para identificar o ARN da instância gerenciada do AWS Systems Manager para o qual as credenciais do perfil do IAM foram entregues. Essa chave está não está presente quando a solicitação é proveniente instância gerenciada com um perfil do IAM associado a um perfil de instância do Amazon EC2.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação sempre que as credenciais do perfil forem entregues a uma instância gerenciada do AWS Systems Manager.
+ **Tipo de dados**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo de valor**: valor único
+ **Exemplo de valor**: arn:aws::ec2:us-west-2:111111111111:instance/instance-id

### identitystore:UserId
<a name="condition-keys-identity-store-user-id"></a>

Use essa chave para comparar a identidade da força de trabalho do IAM Identity Center na solicitação assinada com a identidade especificada na política. 
+ **Disponibilidade**: essa chave é incluída quando o chamador da solicitação é um usuário no IAM Identity Center.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Valor de exemplo**: 94482488-3041-7026-18f3-be45837cd0e4

É possível encontrar o UserId de um usuário no IAM Identity Center fazendo uma solicitação à API [GetUserId](https://docs.aws.amazon.com//singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html) usando a AWS CLI, a API da AWS ou AWS SDK.

## Propriedades da rede
<a name="condition-keys-network-properties"></a>

Use as chaves de condição a seguir para comparar detalhes sobre a rede da qual a solicitação é proveniente ou foi passada por meio das propriedades de rede que você especificar na política.

### aws:SourceIp
<a name="condition-keys-sourceip"></a>

Use essa chave para comparar o endereço IP do solicitante com o endereço IP especificado na política. A chave de condição `aws:SourceIp` só pode ser usada para intervalos de endereços IP públicos.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação, exceto quando o solicitante usar um endpoint da VPC para fazer a solicitação.
+ **Tipo de dados**: [Endereço IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo de valor**: valor único

A chave de condição `aws:SourceIp` pode ser usada em uma política para permitir que os principais façam solicitações somente em um intervalo de IP especificado.

**nota**  
O `aws:SourceIp` oferece suporte a endereços IP para IPv4 e IPv6 ou a um intervalo de endereços IP. Para obter uma lista de Serviços da AWS com suporte para IPv6, consulte [Serviços da AWS que oferecem suporte a IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) no *Guia do usuário da Amazon VPC*.

Por exemplo, é possível anexar a política baseada em identidade apresentada a seguir a um perfil do IAM. Essa política permite que o usuário coloque objetos no bucket `amzn-s3-demo-bucket3` do Amazon S3 caso faça a chamada no intervalo de endereços IPv4 especificado. Essa política também permite um serviço da AWS que use [Sessões de acesso direto](access_forward_access_sessions.md) faça essa operação em seu nome.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                }
            }
        }
    ]
}
```

------

Caso seja necessário restringir o acesso de redes que oferecem suporte ao endereçamento IPv4 e IPv6, você poderá incluir os endereços IPv4 e IPv6 ou os intervalos de endereços IP na condição da política do IAM. A política baseada em identidade a seguir permitirá que o usuário coloque objetos no bucket `amzn-s3-demo-bucket3` do Amazon S3 caso ele faça a chamada em intervalos de endereços IPv4 ou IPv6 especificados. Antes de incluir intervalos de endereços IPv6 em sua política do IAM, verifique se o AWS service (Serviço da AWS) com o qual você está trabalhando oferece suporte a IPv6. Para obter uma lista de Serviços da AWS com suporte para IPv6, consulte [Serviços da AWS que oferecem suporte a IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) no *Guia do usuário da Amazon VPC*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "203.0.113.0/24",
                        "2001:DB8:1234:5678::/64"
                    ]
                }
            }
        }
    ]
}
```

------

Se a solicitação vier de um host que use um endpoint do Amazon VPC, a chave `aws:SourceIp` não estará disponível. Em vez disso, use uma chave específica da VPC, como [aws:VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip). Para obter mais informações sobre o uso de endpoints da VPC, consulte [Gerenciamento de identidades e acesso para endpoints da VPC e serviços de endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) no *Guia do AWS PrivateLink*.

**nota**  
Quando Serviços da AWS fazem chamadas para outros Serviços da AWS em seu nome (chamadas entre serviços), um determinado contexto de autorização específico da rede é removido. Se sua política usa essa chave de condição com declarações `Deny`, as entidades principais do AWS service (Serviço da AWS) podem ser bloqueadas involuntariamente. Para permitir que os Serviços da AWS funcionem adequadamente enquanto mantém seus requisitos de segurança, exclua as entidades principais de serviço de suas declarações `Deny` adicionando a chave de condição `aws:PrincipalIsAWSService` com um valor de `false`.

### aws:SourceVpc
<a name="condition-keys-sourcevpc"></a>

Use essa chave para verificar se a solicitação trafega pela VPC à qual o endpoint da VPC está conectado. Em uma política, é possível usar essa chave para permitir acesso apenas a uma VPC específica. Para mais informações, consulte [Restringir acesso a uma VPC específica](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) no *Guia do usuário do Amazon Simple Storage Service*. 
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação somente se o solicitante usar um endpoint da VPC para fazer a solicitação.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Em uma política, você pode usar essa chave para permitir ou restringir o acesso a uma VPC específica.

Por exemplo, você pode anexar a seguinte política baseada em identidade a um perfil do IAM para negar `PutObject` ao bucket `amzn-s3-demo-bucket3` do Amazon S3, a menos que a solicitação seja feita por um ID da VPC especificada ou por Serviços da AWS que usem [sessões de acesso direto (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) para fazer solicitações em nome do perfil. Ao contrário de [aws:SourceIp](#condition-keys-sourceip), você deve usar [aws:ViaAWSService](#condition-keys-viaawsservice) ou [aws:CalledVia](#condition-keys-calledvia) para permitir solicitações de FAS, porque a VPC de origem da solicitação inicial não é preservada.

**nota**  
Esta política não permite qualquer ação. Use essa política em combinação com outras políticas que permitam ações específicas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PutObjectIfNotVPCID",
      "Effect": "Deny",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-1234567890abcdef0"
        },
        "Bool": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

**nota**  
A AWS recomenda usar `aws:SourceVpcArn` em vez de `aws:SourceVpc` se `aws:SourceVpcArn` for suportado pelo serviço de destino. Consulte [aws:SourceVpcArn](#condition-keys-sourcevpcarn) para ver a lista de serviços compatíveis.

### aws:SourceVpcArn
<a name="condition-keys-sourcevpcarn"></a>

Use esta chave para verificar o ARN da VPC por meio da qual uma solicitação foi feita por meio de um endpoint da VPC. Essa chave retorna o ARN da VPC à qual o endpoint da VPC está anexado.
+ **Disponibilidade**: esta chave está incluída no contexto da solicitação para serviços compatíveis quando uma solicitação é feita por meio de um endpoint da VPC. A chave não está incluída para solicitações feitas por meio de endpoints de serviço público. Os serviços a seguir oferecem suporte a essa chave:
  + AWS App Runner (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + Amazon; Elastic Container Registry (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Agendador do Amazon EventBridge (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management(exceto para a ação `iam:PassRole`) (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + Autoridade de Certificação Privada da AWS (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Lixeira da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contatos da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipo de dados**: ARN

  A AWS recomenda utilizar [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) em vez de [operadores string](reference_policies_elements_condition_operators.md#Conditions_String) ao comparar ARNs.
+ **Tipo de valor**: valor único
+ **Exemplo de valor** – `arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE`

Confira um exemplo de uma política de bucket que nega acesso a `amzn-s3-demo-bucket` e seus objetos para qualquer pessoa fora da VPC `vpc-1a2b3c4d`.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "Access-to-specific-VPC-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "ArnNotEquals": {
           "aws:SourceVpcArn": "arn:aws:ec2:us-east-1:*:vpc/vpc-1a2b3c4d"
         }
       }
     }
   ]
}
```

### aws:SourceVpce
<a name="condition-keys-sourcevpce"></a>

Use essa chave para comparar o identificador do VPC endpoint da solicitação com o ID do endpoint especificado na política.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação somente se o solicitante usar um endpoint da VPC para fazer a solicitação.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Em uma política, é possível usar essa chave para restringir o acesso a um VPC endpoint específico. Para mais informações, consulte [Restringir acesso a uma VPC específica](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) no *Guia do usuário do Amazon Simple Storage Service*. Assim como ao usar [aws:SourceVpc](#condition-keys-sourcevpc), você deve usar [aws:ViaAWSService](#condition-keys-viaawsservice) ou [aws:CalledVia](#condition-keys-calledvia) para permitir solicitações feitas por Serviços da AWS usando [sessões de acesso direto (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Isso ocorre porque o endpoint da VPC de origem da solicitação inicial não é preservado.

### aws:VpceAccount
<a name="condition-keys-vpceaccount"></a>

Use essa chave para comparar o ID da conta daAWS que possui o endpoint da VPC por meio do qual a solicitação foi feita com o ID da conta especificado na política. Essa chave de condição ajuda você a estabelecer controles de perímetro de rede, garantindo que as solicitações cheguem por meio de endpoints da VPC pertencentes a contas específicas.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação quando a solicitação for feita usando um endpoint da VPC. A chave não está incluída para solicitações feitas por meio de endpoints de serviço público.

  Os serviços a seguir oferecem suporte a essa chave:
  + AWS App Runner (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + Amazon; Elastic Container Registry (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Agendador do Amazon EventBridge (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management(exceto para a ação `iam:PassRole`) (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + Autoridade de Certificação Privada da AWS (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Lixeira da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contatos da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Exemplo de valor** – `123456789012`

Você pode usar essa chave de condição para restringir o acesso aos recursos para que as solicitações cheguem por meio de endpoints da VPC pertencentes à sua conta. O seguinte exemplo de política de bucket do Amazon S3 permite acesso quando a solicitação vem por meio de um endpoint da VPC de propriedade da conta especificada:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessToSpecificVpceAccountOnly",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/RoleName"
            },
            "Action": "s3:GetObject",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "Condition": {
                "StringEquals": {
                    "aws:VpceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

**nota**  
Atualmente, essa chave de condição é suportada por um conjunto selecionado de serviços da AWS. O uso dessa chave com serviços não suportados pode levar a resultados de autorização não intencionais. Sempre especifique a chave de condição para serviços suportados em suas políticas.

Alguns serviços da AWS acessam seus recursos a partir de suas redes quando agem em seu nome. Se você usar esses serviços, precisará editar o exemplo de política acima para permitir que os serviços da AWS acessem seus recursos de fora da sua rede. Para obter mais informações sobre padrões de acesso que precisam ser considerados ao aplicar controles de acesso com base na origem da solicitação, consulte [Estabeleça barreiras de proteção para permissões usando perímetros de dados](access_policies_data-perimeters.md).

### aws:VpceOrgID
<a name="condition-keys-vpceorgid"></a>

Use esta chave para comparar o identificador da organização do AWS Organizations que é proprietário do endpoint da VPC do qual a solicitação foi feita com o identificador especificado na política. Essa chave de condição fornece a abordagem mais escalável para controles de perímetro de rede, incluindo automaticamente todos os endpoints da VPC de propriedade de contas em sua organização.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação quando uma solicitação é feita por meio de um endpoint da VPC e a conta do proprietário do endpoint da VPC é membro de uma organização da AWS. A chave não está incluída para solicitações feitas por meio de outros caminhos de rede ou quando a conta do proprietário do endpoint da VPC não faz parte de uma organização.

  Os serviços a seguir oferecem suporte a essa chave de condição:
  + AWS App Runner (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS B2B Data Interchange (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html))
  + AWS Cloud Map (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Cognito (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html))
  + Amazon Comprehend Medical (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + AWS Database Migration Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html))
  + AWS Dados do Directory Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html))
  + Amazon; Elastic Container Registry (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Agendador do Amazon EventBridge (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management(exceto para a ação `iam:PassRole`) (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS Identity Store (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html))
  + AWS IoT FleetWise (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT TwinMaker (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html))
  + AWS IoT Wireless (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + Amazon Keyspaces (para Apache Cassandra) (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html))
  + AWS Key Management Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Network Firewall (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html))
  + AWS Payment Cryptography (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + SMS e serviço de voz do Amazon Pinpoint (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html))
  + Amazon Polly (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Price List (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html))
  + Autoridade de Certificação Privada da AWS (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Lixeira da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Email Service (SES) (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html))
  + Amazon Simple Storage Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Amazon Simple Queue Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html))
  + AWS Storage Gateway (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contatos da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
  + Amazon WorkMail (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html))
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único
+ **Valores de exemplo** – `o-a1b2c3d4e5`

O exemplo de política de controle de recursos a seguir nega acesso ao seu Amazon S3 e aos recursos da AWS Key Management Service, a menos que a solicitação venha por meio de endpoints da VPC pertencentes à organização especificada ou de redes de serviços da AWS que atuam em seu nome. Algumas organizações podem precisar editar ainda mais essa política para atender às necessidades de sua organização, por exemplo, permitir o acesso de parceiros terceirizados. Para obter mais informações sobre padrões de acesso que precisam ser considerados ao aplicar controles de acesso com base na origem da solicitação, consulte [Estabeleça barreiras de proteção para permissões usando perímetros de dados](access_policies_data-perimeters.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceNetworkPerimeterVpceOrgID",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*",
        "kms:*"
      ],
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false",
          "aws:ViaAWSService": "false"
        },
        "StringNotEqualsIfExists": {
            "aws:VpceOrgID": "o-abcdef0123",
            "aws:PrincipalTag/network-perimeter-exception": "true"
        }
      }
    }
  ]
}
```

------

**nota**  
Atualmente, essa chave de condição é suportada por um conjunto selecionado de serviços da AWS. O uso dessa chave com serviços não suportados pode levar a resultados de autorização não intencionais. Sempre especifique a chave de condição para serviços suportados em suas políticas.

### aws:VpceOrgPaths
<a name="condition-keys-vpceorgpaths"></a>

Use essa chave para comparar o caminho do AWS Organizations do endpoint da VPC do qual a solicitação foi feita com o caminho especificado na política. Essa chave de condição permite que você implemente controles de perímetro de rede no nível da unidade organizacional (UO), escalando automaticamente com o uso do seu endpoint da VPC à medida que você adiciona novos endpoints nas OUs especificadas.
+ **Disponibilidade**: essa chave é incluída no contexto da solicitação quando uma solicitação é feita por meio de um endpoint da VPC e a conta do proprietário do endpoint da VPC é membro de uma organização. A chave não está incluída para solicitações feitas por meio de outros caminhos de rede ou quando a conta do proprietário do endpoint da VPC não faz parte de uma organização.

  Os serviços a seguir oferecem suporte a essa chave de condição:
  + AWS App Runner (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Amazon CloudWatch Application Insights (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html))
  + Amazon; Elastic Container Registry (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html))
  + Amazon Route 53 (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Agendador do Amazon EventBridge (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html))
  + Amazon Data Firehose (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management(exceto para a ação `iam:PassRole`) (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + Autoridade de Certificação Privada da AWS (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Lixeira da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html))
  + Amazon Rekognition (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + AWS Systems Manager Incident Manager Contatos da (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Textract (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefixo: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos
+ **Valores de exemplo** – `o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/`

Como `aws:VpceOrgPaths` é uma chave de condição de vários valores, você deve usar os operadores de conjunto `ForAnyValue` ou `ForAllValues` com [operadores de condição de string](reference_policies_elements_condition_operators.md#Conditions_String) para essa chave. O seguinte exemplo de política de bucket do Amazon S3 permite acesso apenas quando as solicitações vem por meio de endpoints da VPC de propriedade da conta nas unidades organizacionais especificadas:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessFromSpecificOrgPaths",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleName"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:VpceOrgPaths": [
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*",
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-33333333/*"
          ]
        }
      }
    }
  ]
}
```

------

**nota**  
Atualmente, essa chave de condição é suportada por um conjunto selecionado de serviços da AWS. O uso dessa chave com serviços não suportados pode levar a resultados de autorização não intencionais. Sempre especifique a chave de condição para serviços suportados em suas políticas.

Alguns serviços da AWS acessam seus recursos a partir de suas redes quando agem em seu nome. Se você usar esses serviços, precisará editar o exemplo de política acima para permitir que os serviços da AWS acessem seus recursos de fora da sua rede. Para obter mais informações sobre os padrões de acesso que precisam ser considerados ao aplicar controles de acesso com base na origem da solicitação, consulte [Estabeleça barreiras de proteção para permissões usando perímetros de dados](access_policies_data-perimeters.md).

### aws:VpcSourceIp
<a name="condition-keys-vpcsourceip"></a>

Use essa chave para comparar o endereço IP do qual uma solicitação foi feita com o endereço IP especificado na política. Em uma política, a chave será correspondente somente se a solicitação for proveniente do endereço IP especificado e passar por um VPC endpoint.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação somente se a solicitação for feita usando um endpoint da VPC.
+ **Tipo de dados**: [Endereço IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo de valor**: valor único

Para obter mais informações, consulte [Controlar o acesso aos endpoints da VPC usando políticas de endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) no *Guia do usuário da Amazon VPC*. Assim como ao usar [aws:SourceVpc](#condition-keys-sourcevpc), você deve usar [aws:ViaAWSService](#condition-keys-viaawsservice) ou [aws:CalledVia](#condition-keys-calledvia) para permitir solicitações feitas por Serviços da AWS usando [sessões de acesso direto (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Isso ocorre porque o IP da origem da solicitação inicial feita usando um endpoint da VPC não é preservado em solicitações de FAS.

**nota**  
`aws:VpcSourceIp`O oferece suporte a endereços IP para IPv4 e IPv6 ou a um intervalo de endereços IP. Para obter uma lista de Serviços da AWS com suporte para IPv6, consulte [Serviços da AWS que oferecem suporte a IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) no *Guia do usuário da Amazon VPC*.  
A chave de condição `aws:VpcSourceIp` sempre deve ser usada em conjunto com as chaves de condição `aws:SourceVpc` ou com as chaves de condição `aws:SourceVpce`. Caso contrário, é possível que chamadas de API de uma VPC inesperada que usa o mesmo CIDR IP ou um CIDR IP sobreposto sejam permitidas por uma política. Isso pode ocorrer porque os CIDRs IP das duas VPCs não relacionadas podem ser os mesmos ou se sobrepor. Em vez disso, IDs de VPC ou IDs de endpoints da VPC devem ser usados na política, pois eles têm identificadores globais exclusivos. Esses identificadores exclusivos garantem que resultados inesperados não ocorram.

**nota**  
Quando Serviços da AWS fazem chamadas para outros Serviços da AWS em seu nome (chamadas entre serviços), um determinado contexto de autorização específico da rede é removido. Se sua política usa essa chave de condição com declarações `Deny`, as entidades principais do AWS service (Serviço da AWS) podem ser bloqueadas involuntariamente. Para permitir que os Serviços da AWS funcionem adequadamente enquanto mantém seus requisitos de segurança, exclua as entidades principais de serviço de suas declarações `Deny` adicionando a chave de condição `aws:PrincipalIsAWSService` com um valor de `false`.

## Propriedades do recurso
<a name="condition-keys-resource-properties"></a>

Use as chaves de condição a seguir para comparar detalhes sobre o recurso que é o alvo da solicitação com as propriedades da entidade principal especificada na política.

### aws:ResourceAccount
<a name="condition-keys-resourceaccount"></a>

Use essa chave para comparar o [ID da Conta da AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) do proprietário do recurso solicitado com a conta do recurso na política. Então, você pode permitir ou negar o acesso a esse recurso com base na conta proprietária do recurso.
+ **Availability** (Disponibilidade): essa chave sempre é incluída no contexto da solicitação para a maioria das ações do serviço. As ações a seguir não são compatíveis com essa chave de condição:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: todas as ações
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents` — O EventBridge `PutEvents` chama um barramento de eventos em outra conta, se esse barramento de eventos tiver sido configurado como um destino do EventBridge entre contas antes de 2 de março de 2023. Para obter mais informações, consulte [Conceder permissões para permitir eventos de outras  contas da AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) no *Guia do usuário do Amazon EventBridge*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

**nota**  
Para considerações adicionais sobre as ações sem suporte acima, consulte o repositório [Exemplos de políticas de perímetro de dados](https://github.com/aws-samples/data-perimeter-policy-examples).

Essa chave é igual ao ID da Conta da AWS para a conta com os recursos avaliados na solicitação.

Para a maioria dos recursos da sua conta, o [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) contém o ID da conta do proprietário desse recurso. Para determinados recursos, como buckets do Amazon S3, o ARN do recurso não inclui o ID da conta. Os dois exemplos a seguir mostram a diferença entre um recurso com um ID de conta no ARN e um ARN do Amazon S3 sem um ID de conta:
+ `arn:aws:iam::123456789012:role/AWSExampleRole`: perfil do IAM criado e pertencente à conta 123456789012. 
+ `arn:aws:s3:::amzn-s3-demo-bucket2`: bucket do Amazon S3 criado e controlado dentro da conta da `111122223333`, não exibido no ARN.

Use o console, API ou CLI da AWS para encontrar todos os seus recursos e ARNs correspondentes.

Você redige uma política que nega permissões a recursos com base no ID da conta do proprietário do recurso. Por exemplo, a política baseada em identidade a seguir negará acesso ao *recurso especificado* se o recurso não pertencer à *conta especificada*.

Para usar esta política, substitua o *texto do espaço reservado em itálico* pelas informações da conta. 

**Importante**  
Esta política não permite qualquer ação. Em vez disso, ela usa o efeito `Deny` que nega explicitamente o acesso a todas as ações não listadas na instrução que não pertencerem à conta listada. Use essa política em combinação com outras políticas que permitem acesso a recursos específicos.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyInteractionWithResourcesNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    }
  ]
}
```

------

Essa política nega acesso a todos os recursos para um serviço da AWS específico, a menos que a Conta da AWS especificada seja proprietária do recurso. 

**nota**  
Alguns Serviços da AWS exigem acesso aos recursos pertencentes à AWS que estão hospedados em outra Conta da AWS. O uso de `aws:ResourceAccount` em suas políticas baseadas em identidade podem afetar a capacidade da sua identidade de acessar esses recursos.

Certos serviços da AWS, como o AWS Data Exchange, dependem de acesso a recursos fora das suas Contas da AWS para operações normais. Se você usar o elemento `aws:ResourceAccount` em suas políticas, inclua instruções adicionais para criar isenções para esses serviços. O exemplo de política [AWS: negar acesso aos recursos do Amazon S3 fora da sua conta, exceto o AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) demonstra como negar acesso com base na conta do recurso ao definir exceções para recursos de propriedade do serviço.

Use esse exemplo de política como modelo para criar suas próprias políticas personalizadas. Para obter mais informações, consulte a [documentação](https://docs.aws.amazon.com/index.html) do serviço.

### aws:ResourceOrgPaths
<a name="condition-keys-resourceorgpaths"></a>

Use essa chave para comparar o caminho do AWS Organizations para o recurso acessado com o caminho na política. Em uma política, essa chave de condição garante que o solicitante pertença a um membro da conta na raiz da organização ou unidades organizacionais (OUs) especificadas no AWS Organizations. Um caminho do AWS Organizations é uma representação de texto da estrutura de uma entidade do Organizations. Para obter mais informações sobre como usar e entender caminhos, consulte [Compreender o caminho da entidade do AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path) 
+ **Availability** (Disponibilidade): essa chave só é incluída no contexto da solicitação se a entidade principal for membro de uma organização. Essa chave de condição global não é compatível com as seguintes ações:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: todas as ações
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents` — O EventBridge `PutEvents` chama um barramento de eventos em outra conta, se esse barramento de eventos tiver sido configurado como um destino do EventBridge entre contas antes de 2 de março de 2023. Para obter mais informações, consulte [Conceder permissões para permitir eventos de outras  contas da AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) no *Guia do usuário do Amazon EventBridge*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos

**nota**  
Para considerações adicionais sobre as ações sem suporte acima, consulte o repositório [Exemplos de políticas de perímetro de dados](https://github.com/aws-samples/data-perimeter-policy-examples).

`aws:ResourceOrgPaths` é uma chave de condição de vários valores. Chaves de valores múltiplos podem ter vários valores no contexto da solicitação. Você deve usar os operadores de conjunto `ForAnyValue` ou `ForAllValues` com [operadores de condição de string](reference_policies_elements_condition_operators.md#Conditions_String) para essa chave. Para obter mais informações sobre chaves de condição de vários valores, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Por exemplo, a condição a seguir retorna `True` para recursos que pertencem à organização `o-a1b2c3d4e5`. Quando você inclui um caractere curinga, deve usar o operador de condição [StringLike](reference_policies_elements_condition_operators.md).

```
"Condition": { 
      "ForAnyValue:StringLike": {
             "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"]
   }
}
```

A condição a seguir retorna `True` para recursos com o ID de UO `ou-ab12-11111111`. Ele corresponderá recursos pertencentes a contas anexadas à UO ou-ab12-11111111 ou a qualquer uma das UOs secundárias.

```
"Condition": { "ForAnyValue:StringLike" : {
     "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"]
}}
```

A condição a seguir retorna `True` para recursos pertencentes a contas anexadas diretamente à ID `ou-ab12-22222222` da UO, mas não às UOs secundárias. O exemplo a seguir usa o operador de condição [StringEquals](reference_policies_elements_condition_operators.md) para especificar o requisito de correspondência exata para o ID da UO e não uma correspondência com curinga.

```
"Condition": { "ForAnyValue:StringEquals" : {
     "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"]
}}
```

**nota**  
Alguns Serviços da AWS exigem acesso aos recursos pertencentes à AWS que estão hospedados em outra Conta da AWS. O uso de `aws:ResourceOrgPaths` em suas políticas baseadas em identidade podem afetar a capacidade da sua identidade de acessar esses recursos.

Certos serviços da AWS, como o AWS Data Exchange, dependem de acesso a recursos fora das suas Contas da AWS para operações normais. Se você usar a chave `aws:ResourceOrgPaths` em suas políticas, inclua instruções adicionais para criar isenções para esses serviços. O exemplo de política [AWS: negar acesso aos recursos do Amazon S3 fora da sua conta, exceto o AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) demonstra como negar acesso com base na conta do recurso ao definir exceções para recursos de propriedade do serviço. É possível criar uma política semelhante para restringir o acesso aos recursos dentro de uma unidade organizacional (UO) usando a chave `aws:ResourceOrgPaths`, levando em conta os recursos pertencentes ao serviço.

Use esse exemplo de política como modelo para criar suas próprias políticas personalizadas. Para obter mais informações, consulte a [documentação](https://docs.aws.amazon.com/index.html) do serviço.

### aws:ResourceOrgID
<a name="condition-keys-resourceorgid"></a>

Use essa chave para comparar o identificador da organização no AWS Organizations ao qual o solicitante pertence com o identificador especificado na política.
+ **Availability** (Disponibilidade): essa chave só é incluída no contexto da solicitação se a entidade principal for membro de uma organização. Essa chave de condição global não é compatível com as seguintes ações:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: todas as ações
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents` — O EventBridge `PutEvents` chama um barramento de eventos em outra conta, se esse barramento de eventos tiver sido configurado como um destino do EventBridge entre contas antes de 2 de março de 2023. Para obter mais informações, consulte [Conceder permissões para permitir eventos de outras  contas da AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) no *Guia do usuário do Amazon EventBridge*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  + Amazon OpenSearch Service
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

**nota**  
Para considerações adicionais sobre as ações sem suporte acima, consulte o repositório [Exemplos de políticas de perímetro de dados](https://github.com/aws-samples/data-perimeter-policy-examples).

Essa chave global retorna o ID da organização do recurso para uma determinada solicitação. Ele permite que você crie regras que se aplicam a todos os recursos em uma organização que são especificados no elemento `Resource` de uma [política baseada em identidade](access_policies_identity-vs-resource.md). É possível especificar o [ID da organização](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) no elemento de condição. Ao adicionar e remover contas, as políticas que incluem a chave `aws:ResourceOrgID` incluem automaticamente as contas corretas e não exigem atualização manual.

Por exemplo, a política a seguir impede que a entidade principal adicione objetos ao recurso `policy-genius-dev`, a menos que o recurso do Amazon S3 pertença à mesma organização que a entidade principal que faz a solicitação.

**Importante**  
Esta política não permite qualquer ação. Em vez disso, ela usa o efeito `Deny` que nega explicitamente o acesso a todas as ações não listadas na instrução que não pertencerem à conta listada. Use essa política em combinação com outras políticas que permitem acesso a recursos específicos.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization",
        "Effect": "Deny",
        "Action": "s3:PutObject",
        "Resource": "arn:aws:s3:::policy-genius-dev/*",
        "Condition": {
            "StringNotEquals": {
                "aws:ResourceOrgID": "${aws:PrincipalOrgID}"
            }
        }
    }
}
```

------

**nota**  
Alguns Serviços da AWS exigem acesso aos recursos pertencentes à AWS que estão hospedados em outra Conta da AWS. O uso de `aws:ResourceOrgID` em suas políticas baseadas em identidade podem afetar a capacidade da sua identidade de acessar esses recursos.

Certos serviços da AWS, como o AWS Data Exchange, dependem de acesso a recursos fora das suas Contas da AWS para operações normais. Se você usar a chave `aws:ResourceOrgID` em suas políticas, inclua instruções adicionais para criar isenções para esses serviços. O exemplo de política [AWS: negar acesso aos recursos do Amazon S3 fora da sua conta, exceto o AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) demonstra como negar acesso com base na conta do recurso ao definir exceções para recursos de propriedade do serviço. É possível criar uma política semelhante para restringir o acesso aos recursos dentro da organização usando a chave `aws:ResourceOrgID`, levando em conta os recursos pertencentes ao serviço.

Use esse exemplo de política como modelo para criar suas próprias políticas personalizadas. Para obter mais informações, consulte a [documentação](https://docs.aws.amazon.com/index.html) do serviço.

No vídeo a seguir, saiba mais sobre como você pode usar a chave de condição `aws:ResourceOrgID` em uma política.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cWVW0xAiWwc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cWVW0xAiWwc)


### aws:ResourceTag/*tag-key*
<a name="condition-keys-resourcetag"></a>

Use essa chave para comparar o par chave-valor da etiqueta especificado na política com o par chave-valor anexado ao recurso. Por exemplo, é possível exigir que o acesso a um recurso seja permitido somente se o recurso tiver a chave de tag `"Dept"` anexada com o valor `"Marketing"`. Para obter mais informações, consulte [Controlar o acesso aos recursos do AWS](access_tags.md#access_tags_control-resources).
+ **Availability** (Disponibilidade): essa chave é incluída no contexto da solicitação quando o recurso solicitado já tem tags anexadas que criam um recurso com uma tag anexada. Esta chave é devolvida apenas para recursos que [oferecem suporte à autorização com base em tags](reference_aws-services-that-work-with-iam.md). Há uma chave de contexto para cada par de chave/valor de tag.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Essa chave de contexto é formatada `"aws:ResourceTag/tag-key":"tag-value"` em que *tag-key* e *tag-value* são uma chave de tag e um par de valores. As chaves de tag não diferenciam maiúsculas de minúsculas. Isso significa que, se você especificar `"aws:ResourceTag/TagKey1": "Value1"` no elemento de condição da política, a condição corresponderá a uma chave de tag de recurso chamada `TagKey1` ou `tagkey1`, mas não ambas. Os valores nesses pares chave/valor da tag diferenciam maiúsculas de minúsculas. Isso significa que, se você especificar `"aws:ResourceTag/TagKey1": "Production"` no elemento de condição da política, então a condição corresponderá a um valor de chave de tag de recurso com o nome `Production`, mas não a `production` ou `PRODUCTION`.

Para obter exemplos de como usar a chave `aws:ResourceTag` para controlar o acesso aos recursos do IAM, consulte [Controlar o acesso aos recursos do AWS](access_tags.md#access_tags_control-resources).

Para obter exemplos de uso da chave `aws:ResourceTag` para controlar o acesso a outros recursos AWS, consulte [Controlar o acesso a recursos da AWS usando tags](access_tags.md).

Para obter um tutorial sobre como usar a chave de condição `aws:ResourceTag` para o controle de acesso baseado em atributos (ABAC), consulte [Tutorial do IAM: Definir permissões para acessar recursos da AWS com base em etiquetas](tutorial_attribute-based-access-control.md).

## Propriedades da solicitação
<a name="condition-keys-request-properties"></a>

Use as chaves de condição a seguir para comparar detalhes sobre a solicitação em si e o conteúdo da solicitação e as propriedades da solicitação que você especificou na política. 

### aws:CalledVia
<a name="condition-keys-calledvia"></a>

Use essa chave para comparar os serviços na política com os serviços que fizeram solicitações em nome da entidade principal do IAM (usuário ou perfil). Quando um principal faz uma solicitação a um serviço da AWS, esse serviço pode usar as credenciais do principal para fazer solicitações subsequentes a outros serviços. Quando a solicitação é feita usando sessões de acesso direto (FAS), essa chave é definida com o valor da entidade principal do serviço. A chave `aws:CalledVia` contém uma lista ordenada de cada serviço na cadeia que fez solicitações em nome do principal.

Para obter mais informações, consulte [Sessões de acesso direto](access_forward_access_sessions.md).
+ **Disponibilidade**: essa chave está presente na solicitação quando um serviço que oferece suporte a `aws:CalledVia` usa as credenciais de uma entidade principal do IAM para fazer uma solicitação a outro serviço. Esta chave não estará presente se o serviço usar um [perfil de serviço ou perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para fazer uma chamada em nome da entidade principal. Esta chave também não está presente quando o principal faz a chamada diretamente.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos

Para usar a chave de condição `aws:CalledVia` em uma política, você deve fornecer as entidades principais do serviço para conceder ou negar solicitações do serviço da AWS. Por exemplo, é possível usar o AWS CloudFormation para ler e gravar de uma tabela do Amazon DynamoDB. O DynamoDB então usa a criptografia fornecida pelo AWS Key Management Service (AWS KMS).

Para conceder ou negar acesso quando *qualquer* serviço fizer uma solicitação usando as credenciais do principal, use a chave de condição `aws:ViaAWSService`. Essa chave de condição oferece suporte a todos os serviços AWS.

A chave `aws:CalledVia` é uma [chave de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md). No entanto, você não pode aplicar uma ordem usando essa chave em uma condição. Ao usar o exemplo acima, o **User 1** (Usuário 1) faz uma solicitação ao CloudFormation, que chama o DynamoDB, que chama o AWS KMS. São três solicitações distintas. A chamada final para o AWS KMS é realizada pelo Usuário 1 *via* CloudFormation e, depois, via DynamoDB. 

![\[Exemplo de uso do aws:CalledVia\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/condition-key-calledvia-example-diagram.png)


Nesse caso, a chave `aws:CalledVia` no contexto de solicitação inclui `cloudformation.amazonaws.com` e `dynamodb.amazonaws.com`, nessa ordem. Se a sua única preocupação é que a chamada foi feita por meio do DynamoDB em algum lugar da cadeia de solicitações, você pode usar essa chave de condição em sua política. 

Por exemplo, a política a seguir permite gerenciar a chave do AWS KMS chamada `my-example-key`, mas apenas se DynamoDB for um dos serviços solicitantes. O operador de condição `ForAnyValue:StringEquals` garante que o DynamoDB seja um dos serviços de chamada. Se o principal fizer a chamada diretamente para o AWS KMS, a condição retornará `false` e a solicitação não será permitida por esta política.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaDynamodb",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "dynamodb.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Se você quiser definir qual serviço fará a primeira ou última chamada na cadeia, use as chaves `aws:CalledViaFirst` e `aws:CalledViaLast`. Por exemplo, a política a seguir permite gerenciar a chave nomeada `my-example-key` no AWS KMS. Essas operações do AWS KMS são permitidas somente se várias solicitações tiverem sido incluídas na cadeia. A primeira solicitação deve ser feita por meio do CloudFormation e a última pelo DynamoDB. Se outros serviços fizerem solicitações no meio da cadeia, a operação ainda será permitida.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaChain",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaFirst": "cloudformation.amazonaws.com",
                    "aws:CalledViaLast": "dynamodb.amazonaws.com"
                }
            }
        }
    ]
}
```

------

As chaves `aws:CalledViaFirst` e `aws:CalledViaLast` estão presentes na solicitação quando um serviço usa as credenciais de uma entidade principal do IAM para chamar outro serviço. Elas indicam o primeiro e último serviços que fizeram chamadas na cadeia de solicitações. Por exemplo, vamos supor que o CloudFormation chame outro serviço chamado `X Service`, que chama o DynamoDB que, por sua vez, chama o AWS KMS. A chamada final para o AWS KMS é realizada pelo `User 1` *via* CloudFormation, depois, `X Service` e depois DynamoDB. Ele foi chamado pela primeira vez por meio do CloudFormation e a última chamada foi feita por meio do DynamoDB. 

![\[Exemplo de uso de aws:CalledViaFirst e aws:CalledViaLast\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/condition-key-calledviafirstlast-example-diagram.png)


### aws:CalledViaFirst
<a name="condition-keys-calledviafirst"></a>

Use esta chave para comparar os serviços na política com o ***primeiro serviço*** que fez uma solicitação em nome da entidade principal do IAM (usuário ou perfil). Para obter mais informações, consulte `aws:CalledVia`.
+ **Disponibilidade**: essa chave está presente na solicitação quando um serviço usa as credenciais de uma entidade principal do IAM para fazer pelo menos uma outra solicitação a um serviço diferente. Esta chave não estará presente se o serviço usar um [perfil de serviço ou perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para fazer uma chamada em nome da entidade principal. Esta chave também não está presente quando o principal faz a chamada diretamente.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:CalledViaLast
<a name="condition-keys-calledvialast"></a>

Use esta chave para comparar os serviços na política com o *último serviço* que fez uma solicitação em nome da entidade principal do IAM (usuário ou perfil). Para obter mais informações, consulte `aws:CalledVia`.
+ **Disponibilidade**: essa chave está presente na solicitação quando um serviço usa as credenciais de uma entidade principal do IAM para fazer pelo menos uma outra solicitação a um serviço diferente. Esta chave não estará presente se o serviço usar um [perfil de serviço ou perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) para fazer uma chamada em nome da entidade principal. Esta chave também não está presente quando o principal faz a chamada diretamente.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

### aws:ViaAWSService
<a name="condition-keys-viaawsservice"></a>

Use essa chave para verificar se um AWS service (Serviço da AWS) faz uma solicitação a outro serviço em seu nome usando [sessões de acesso direto (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html).

A chave de contexto da solicitação retorna `true` quando um serviço usa sessões de acesso direto para fazer uma solicitação em nome da entidade principal do IAM. A chave de contexto da solicitação também retorna `false` quando o principal faz a chamada diretamente.
+ **Disponibilidade**: essa chave é sempre incluída no contexto da solicitação.
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

### aws:CalledViaAWSMCP
<a name="condition-keys-calledviaawasmcp"></a>

Use essa chave para comparar os serviços na política com os serviços do AWS MCP que fizeram solicitações em nome da entidade principal do IAM (usuário ou perfil). Quando um principal faz uma solicitação a um serviço da AWS, esse serviço usa as credenciais do principal para fazer solicitações subsequentes a outros serviços. Quando a solicitação é feita usando um serviço do AWS MCP, essa chave é definida com o valor da entidade principal do serviço. A chave `aws:CalledViaAWSMCP` contém o nome da entidade principal do serviço do MCP que fez solicitações em nome da entidade principal.
+ **Disponibilidade**: essa chave está presente na solicitação quando um serviço do AWS MCP usa as credenciais de uma entidade principal do IAM para fazer uma solicitação a um serviço da AWS. Esta chave também não está presente quando o principal faz a chamada diretamente.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Você pode usar essa chave de condição para conceder ou negar acesso com base em qual servidor MCP específico iniciou a solicitação. Por exemplo, a política a seguir nega operações de exclusão sensíveis quando elas são iniciadas por meio de um servidor MCP específico:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaSpecificMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaAWSMCP": "aws-mcp.amazonaws.com"
                }
            }
        }
    ]
}
```

### aws:ViaAWSMCPService
<a name="condition-keys-viaawsmcpservice"></a>

Use essa chave para verificar se um serviço do AWS MCP faz uma solicitação a outro serviço da AWS em seu nome usando sessões de acesso direto (FAS). A chave de contexto da solicitação retorna `true` quando um serviço do AWS MCP encaminha uma solicitação para um serviço da AWS em nome da entidade principal do IAM. A chave de contexto da solicitação também retorna `false` quando o principal faz a chamada diretamente.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação quando um servidor AWS MCP fizer uma solicitação a um serviço da AWS downstream em nome de uma entidade principal do IAM.
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

É possível usar essa chave para restringir ações específicas quando elas chegam por meio de servidores MCP. Por exemplo, a política a seguir nega operações de exclusão sensíveis quando elas são iniciadas por meio de qualquer servidor AWS MCP:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:ViaAWSMCPService": "true"
                }
            }
        }
    ]
}
```

### aws:CurrentTime
<a name="condition-keys-currenttime"></a>

Use essa chave para comparar a data e a hora da solicitação com a data e a hora especificadas na política. Para visualizar um exemplo de política que usa essa chave de condição, consulte [AWS: Permite o acesso com base na data e hora](reference_policies_examples_aws-dates.md).
+ **Disponibilidade**: essa chave é sempre incluída no contexto da solicitação.
+ **Tipo de dados**: [Data](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Tipo de valor**: valor único

### aws:EpochTime
<a name="condition-keys-epochtime"></a>

Use essa chave para comparar a data e a hora da solicitação em horário Unix ou epoch com o valor especificado na política. Essa chave também aceita o número de segundos desde 1º de janeiro de 1970. 
+ **Disponibilidade**: essa chave é sempre incluída no contexto da solicitação.
+ **Tipo de dados**: [Data](reference_policies_elements_condition_operators.md#Conditions_Date), [Numérico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo de valor**: valor único

### aws:referer
<a name="condition-keys-referer"></a>

Use essa chave para comparar quem indicou a solicitação no navegador cliente com o indicador especificado na política. O valor de contexto da solicitação `aws:referer` é fornecido pelo chamador em um cabeçalho HTTP. O cabeçalho `Referer` é incluído em uma solicitação de navegador da Web quando você seleciona um link em uma página da Web. O cabeçalho `Referer` contém o URL da página da Web onde o link foi selecionado.
+ **Disponibilidade**: essa chave será incluída no contexto da solicitação apenas se a solicitação para o recurso da AWS for invocada vinculando um URL de página da Web no navegador. Essa chave não está incluída para solicitações programáticas porque não usa um link do navegador para acessar o recurso AWS.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Por exemplo, você pode acessar um objeto do Amazon S3 diretamente, usando um URL ou a invocação direta da API. Para obter mais informações, consulte [Operações de API do Amazon S3 diretamente usando um navegador da Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-4). Quando você acessa um objeto do Amazon S3 de um URL que existe em uma página da Web, o URL da página da Web de origem é usado em `aws:referer`. Quando você acessa um objeto do Amazon S3 digitando o URL no seu navegador, o `aws:referer` não está presente. Quando você invoca a API diretamente, `aws:referer` também não está presente. É possível usar a chave da condição `aws:referer` em uma política para permitir solicitações feitas de um referencial específico, como um link em uma página da Web no domínio da sua empresa. 

**Atenção**  
Essa chave deve ser usada com cuidado. É perigoso incluir um valor de cabeçalho do indicador conhecido publicamente. Partes não autorizadas podem usar navegadores personalizados ou modificados para fornecer qualquer valor de `aws:referer` que escolherem. Como resultado, `aws:referer` não deve ser usado para impedir que terceiros não autorizados façam solicitações diretas da AWS. Ele é oferecido apenas para permitir que os clientes impeçam que seu conteúdo digital, como o conteúdo armazenado no Amazon S3, seja indicado em sites de terceiros não autorizados.

### aws:RequestedRegion
<a name="condition-keys-requestedregion"></a>

Use essa chave para comparar a região da AWS que foi chamada na solicitação com a região especificada na política. É possível usar essa chave de condição global para controlar quais regiões podem ser solicitadas. Para visualizar as regiões da AWS de cada serviço, consulte [Cotas e endpoints de serviço](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) na *Referência geral da Amazon Web Services*.
+ **Disponibilidade**: essa chave é sempre incluída no contexto da solicitação.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Alguns serviços globais, como o IAM, têm um único endpoint. Como esse endpoint está fisicamente localizado na região Leste dos EUA (Norte da Virgínia), as chamadas do IAM sempre são feitas para a região us-east-1. Por exemplo, se você criar uma política que negue acesso a todos os serviços se a região solicitada não for us-west-2, as chamadas do IAM sempre falharão. Para ver um exemplo de como resolver isso, consulte [NotAction com Deny](reference_policies_elements_notaction.md). 

**nota**  
A chave de condição `aws:RequestedRegion` permite que você controle qual endpoint de um serviço é invocado, mas não abrange o impacto da operação. Alguns serviços têm impactos entre regiões.  
Por exemplo, o Amazon S3 tem operações de API que abrangem todas as regiões.  
É possível invocar `s3:PutBucketReplication` em uma região (que é afetada pela chave de condição `aws:RequestedRegion`), mas outras regiões são afetadas com base nas definições da configuração das replicações.
É possível invocar `s3:CreateBucket` para criar um bucket em outra região e usar a chave de condição `s3:LocationConstraint` para controlar as regiões aplicáveis.

É possível usar essa chave de contexto para limitar o acesso aos serviços da AWS em um determinado conjunto de regiões. Por exemplo, a política a seguir permite que um usuário visualize todas as instâncias do Amazon EC2 no Console de gerenciamento da AWS. No entanto, eles só podem realizar alterações às instâncias na Irlanda (eu-west-1), Londres (eu-west-2) ou Paris (eu-west-3).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "InstanceConsoleReadOnly",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:Export*",
                "ec2:Get*",
                "ec2:Search*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "InstanceWriteRegionRestricted",
            "Effect": "Allow",
            "Action": [
                "ec2:Associate*",
                "ec2:Import*",
                "ec2:Modify*",
                "ec2:Monitor*",
                "ec2:Reset*",
                "ec2:Run*",
                "ec2:Start*",
                "ec2:Stop*",
                "ec2:Terminate*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "eu-west-1",
                        "eu-west-2",
                        "eu-west-3"
                    ]
                }
            }
        }
    ]
}
```

------

### aws:RequestTag/*tag-key*
<a name="condition-keys-requesttag"></a>

Use essa chave para comparar o par de chave/valor da tag que foi passado na solicitação com o par de tags especificado na política. Por exemplo, é possível verificar se a solicitação inclui a chave de tag `"Dept"` e se ela tem o valor `"Accounting"`. Para obter mais informações, consulte [Controlar o acesso durante solicitações do AWS](access_tags.md#access_tags_control-requests).
+ **Availability** (Disponibilidade): essa chave é incluída no contexto da solicitação quando os pares de chave-valor são passadas na solicitação. Quando várias tags forem passadas na solicitação, haverá uma chave de contexto para cada par de chave/valor de tag.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

Essa chave de contexto é formatada `"aws:RequestTag/tag-key":"tag-value"` em que *tag-key* e *tag-value* são uma chave de tag e um par de valores. As chaves de tag não diferenciam maiúsculas de minúsculas. Isso significa que, se você especificar `"aws:RequestTag/TagKey1": "Value1"` no elemento de condição da sua política, a condição corresponderá a uma chave de etiqueta de solicitação chamada `TagKey1` ou `tagkey1`, mas não ambas. Os valores nesses pares chave/valor da tag diferenciam maiúsculas de minúsculas. Isso significa que, se você especificar `"aws:RequestTag/TagKey1": "Production"` no elemento de condição da política, então a condição corresponderá a um valor de chave de tag de solicitação com o nome `Production`, mas não a `production` ou `PRODUCTION`.

Este exemplo mostra que, embora a chave tenha um único valor, você ainda poderá usar vários pares de chave-valor em uma solicitação se as chaves forem diferentes.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2::111122223333:instance/*",
    "Condition": {
      "StringEquals": {
        "aws:RequestTag/environment": [
          "preprod",
          "production"
        ],
        "aws:RequestTag/team": [
          "engineering"
        ]
      }
    }
  }
}
```

------

### aws:TagKeys
<a name="condition-keys-tagkeys"></a>

Use essa chave para comparar as chaves de tag em uma solicitação com as chaves especificadas na política. Ao usar políticas para controlar o acesso usando etiquetas, recomendamos o uso da chave de condição `aws:TagKeys` para definir quais chaves de etiquetas serão permitidas. Para obter mais informações e políticas de exemplo, consulte [Controlar o acesso com base em chaves de tag](access_tags.md#access_tags_control-tag-keys).
+ **Availability** (Disponibilidade): essa chave será incluída no contexto da solicitação se a operação for compatível com a passagem de tags no recurso.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos

Essa chave de contexto é formatada como `"aws:TagKeys":"tag-key"`, onde *tag-key* é uma lista de chaves de tags sem valores (por exemplo, `["Dept","Cost-Center"]`).

Como é possível incluir vários pares de chave/valor de tag em uma solicitação, o conteúdo da solicitação pode ser uma solicitação [de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md). Nesse caso, você deve usar os operadores de conjunto `ForAllValues` ou `ForAnyValue`. Para obter mais informações, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Alguns serviços são compatíveis com o uso de tags com operações de recurso, como criar, modificar ou excluir um recurso. Para permitir o uso de tags e operações como uma única chamada, você deve criar uma política que inclui as ações de uso de tags e de modificação de recursos. Em seguida, você pode usar a chave de condição `aws:TagKeys` para impor o uso de chaves de tags específicas na solicitação. Por exemplo, para limitar as etiquetas quando alguém cria um snapshot do Amazon EC2, você deve incluir a ação de criação `ec2:CreateSnapshot` ***e*** a ação de etiquetamento `ec2:CreateTags` na política. Para visualizar uma política para esse cenário que use `aws:TagKeys`, consulte [Criar um snapshot com tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-creating-snapshot-with-tags) no *Guia do usuário do Amazon EC2*. 

### aws:SecureTransport
<a name="condition-keys-securetransport"></a>

Use essa chave para verificar se a solicitação foi enviada via TLS. O contexto da solicitação retorna `true` ou `false`. Em uma política, você poderá permitir ações específicas somente se a solicitação for enviada via TLS.
+ **Disponibilidade**: essa chave é sempre incluída no contexto da solicitação.
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

**nota**  
Quando Serviços da AWS fazem chamadas para outros Serviços da AWS em seu nome (chamadas entre serviços), um determinado contexto de autorização específico da rede é removido. Se sua política usa essa chave de condição com declarações `Deny`, as entidades principais do AWS service (Serviço da AWS) podem ser bloqueadas involuntariamente. Para permitir que os Serviços da AWS funcionem adequadamente enquanto mantém seus requisitos de segurança, exclua as entidades principais de serviço de suas declarações `Deny` adicionando a chave de condição `aws:PrincipalIsAWSService` com um valor de `false`. Por exemplo:  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Esta política nega o acesso às operações do Amazon S3 quando HTTPS não é usado (`aws:SecureTransport` é falso), mas somente para entidades principais de serviços não AWS. Isso garante que suas restrições condicionais se apliquem a todas as entidades principais, exceto às entidades principais AWS service (Serviço da AWS).

### aws:SourceAccount
<a name="condition-keys-sourceaccount"></a>

Use essa chave para comparar o ID da conta do recurso que faz uma solicitação de serviço a serviço com o ID da conta especificado na política, mas apenas quando a solicitação for feita pela entidade principal de um serviço da AWS.
+ **Disponibilidade**: essa chave só é incluída no contexto da solicitação quando a chamada para o recurso é feita diretamente pela [entidade principal de um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) em nome de um recurso para o qual a configuração acionou a solicitação de serviço a serviço. O serviço que faz a chamada passa o ID da conta do recurso original para o serviço chamado.
**nota**  
Essa chave fornece um mecanismo uniforme para impor um controle de representante confuso entre serviços em todos os Serviços da AWS. No entanto, nem todas as integrações de serviços exigem o uso dessa chave de condição global. Consulte a documentação dos Serviços da AWS usados para obter mais informações sobre os mecanismos específicos dos serviços para mitigar os riscos de representante confuso entre serviços.  
![\[aws:SourceAccount\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/sourceAccount.png)
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

É possível usar essa chave de condição para ajudar a garantir que um serviço que faça uma chamada possa acessar seu recurso somente quando a solicitação for originada de uma conta específica. Por exemplo, é possível anexar a política de controle de recursos (RCP) a seguir para negar solicitações de entidades de serviço para buckets do Amazon S3, a menos que tenham sido disparadas por um recurso na conta especificada. Essa política aplica o controle somente a solicitações das entidades principais de serviço (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) que tenham a chave `aws:SourceAccount` presente (`"Null": {"aws:SourceAccount": "false"}`), de modo que as integrações de serviços que não exijam o uso dessa chave e as chamadas de suas entidades principais não sejam afetadas. Se a chave `aws:SourceAccount` estiver presente no contexto da solicitação, a condição `Null` será avaliada como `true`, fazendo com que a chave `aws:SourceAccount` seja aplicada.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceAccount": "111122223333"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

Em políticas baseadas em recursos em que a entidade principal é uma entidade principal de AWS service (Serviço da AWS), use a chave para limitar as permissões concedidas ao serviço. Por exemplo, quando um bucket do Amazon S3 é configurado para enviar notificações a um tópico do Amazon SNS, o serviço do Amazon S3 invoca a operação de API `sns:Publish` para todos os eventos configurados. Na política de tópico que permite a operação `sns:Publish`, defina o valor da chave de condição como o ID da conta do bucket do Amazon S3.

### aws:SourceArn
<a name="condition-keys-sourcearn"></a>

Use essa chave para comparar o [nome do recurso da Amazon (ARN)](reference_identifiers.md#identifiers-arns) do recurso que faz uma solicitação de serviço a serviço com o ARN especificado na política, mas só quando a solicitação for feita pela entidade principal do serviço da AWS. Quando o ARN da fonte inclui o ID da conta, não é necessário usar a `aws:SourceAccount` com o `aws:SourceArn`.

Essa chave não funciona com o ARN do principal que está fazendo a solicitação. Em seu lugar, use `aws:PrincipalArn`.
+ **Disponibilidade**: essa chave só é incluída no contexto da solicitação quando a chamada para o recurso é feita diretamente pela [entidade principal de um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) em nome de um recurso para o qual a configuração acionou a solicitação de serviço a serviço. O serviço que faz a chamada passa o ARN do recurso original para o serviço chamado.
**nota**  
Essa chave fornece um mecanismo uniforme para impor um controle de representante confuso entre serviços em todos os Serviços da AWS. No entanto, nem todas as integrações de serviços exigem o uso dessa chave de condição global. Consulte a documentação dos Serviços da AWS usados para obter mais informações sobre os mecanismos específicos dos serviços para mitigar os riscos de representante confuso entre serviços.  
![\[aws:SourceArn\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/sourceArn.png)
+ **Tipo de dados**: ARN

  A AWS recomenda utilizar [operadores ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) em vez de [operadores string](reference_policies_elements_condition_operators.md#Conditions_String) ao comparar ARNs.
+ **Tipo de valor**: valor único

É possível usar essa chave de condição para ajudar a garantir que um serviço que faça uma chamada possa acessar seu recurso somente quando a solicitação for originada de um recurso específico. Ao usar uma política baseada em recursos com uma entidade principal de AWS service (Serviço da AWS) como a `Principal`, defina o valor dessa chave de condição como o ARN do recurso ao qual você deseja restringir o acesso. Por exemplo, quando um bucket do Amazon S3 é configurado para enviar notificações a um tópico do Amazon SNS, o serviço do Amazon S3 invoca a operação de API `sns:Publish` para todos os eventos configurados. Na política de tópico que permite a operação `sns:Publish`, defina o valor da chave de condição como o ARN do bucket do Amazon S3. Para obter recomendações sobre quando usar essa chave de condição em políticas baseadas em recursos, consulte a documentação dos Serviços da AWS que você está usando.

### aws:SourceOrgID
<a name="condition-keys-sourceorgid"></a>

Use essa chave para comparar o [ID da organização](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) do recurso que faz uma solicitação de serviço a serviço com o ID da organização especificado na política, mas apenas quando a solicitação for feita pela entidade principal de um serviço da AWS. Quando você adiciona e remove contas de uma organização no AWS Organizations, as políticas que incluem a chave `aws:SourceOrgID` incluem automaticamente as contas corretas e você não precisa atualizar as políticas manualmente.
+ **Disponibilidade**: essa chave só é incluída no contexto da solicitação quando a chamada ao recurso é feita diretamente pela [entidade principal de um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) em nome de um recurso que pertence a uma conta que é membro de uma organização. O serviço que faz a chamada passa o ID da organização do recurso original para o serviço chamado.
**nota**  
Essa chave fornece um mecanismo uniforme para impor um controle de representante confuso entre serviços em todos os Serviços da AWS. No entanto, nem todas as integrações de serviços exigem o uso dessa chave de condição global. Consulte a documentação dos Serviços da AWS usados para obter mais informações sobre os mecanismos específicos dos serviços para mitigar os riscos de representante confuso entre serviços.  
![\[aws:SourceOrgID\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/sourceOrgID.png)
+ **Tipo de dados**: [string](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

É possível usar essa chave de condição para ajudar a garantir que uma chamada de serviço possa acessar seu recurso somente quando a solicitação for originada de uma organização específica. Por exemplo, é possível anexar a política de controle de recursos (RCP) a seguir para negar solicitações de entidades principais para buckets do Amazon S3, a menos que tenham sido disparadas por um recurso na organização da AWS especificada. Essa política aplica o controle somente a solicitações das entidades principais de serviço (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) que tenham a chave `aws:SourceAccount` presente (`"Null": {"aws:SourceAccount": "false"}`), de modo que as integrações de serviços que não exijam o uso da chave e as chamadas de suas entidades principais não sejam afetadas. Se a chave `aws:SourceAccount` estiver presente no contexto da solicitação, a condição `Null` será avaliada como `true`, fazendo com que a chave `aws:SourceOrgID` seja aplicada. Usamos `aws:SourceAccount` em vez de `aws:SourceOrgID` no operador de condição `Null` para que o controle ainda se seja aplicado caso a solicitação se origine de uma conta que não pertença a uma organização.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceOrgID": "o-xxxxxxxxxx"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

### aws:SourceOrgPaths
<a name="condition-keys-sourceorgpaths"></a>

Use essa chave para comparar o caminho do AWS Organizations do recurso que faz uma solicitação de serviço a serviço com o ID da organização especificado na política, mas apenas quando a solicitação for feita pela entidade principal de um serviço da AWS. Um caminho AWS Organizations é uma representação de texto da estrutura de uma entidade do AWS Organizations. Para obter mais informações sobre como usar e entender os caminhos, consulte [Entender o caminho da entidade do AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilidade**: essa chave só é incluída no contexto da solicitação quando a chamada ao recurso é feita diretamente pela [entidade principal de um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) em nome de um recurso que pertence a uma conta que é membro de uma organização. O serviço que faz a chamada passa o caminho da organização do recurso original para o serviço chamado.
**nota**  
Essa chave fornece um mecanismo uniforme para impor um controle de representante confuso entre serviços em todos os Serviços da AWS. No entanto, nem todas as integrações de serviços exigem o uso dessa chave de condição global. Consulte a documentação dos Serviços da AWS usados para obter mais informações sobre os mecanismos específicos dos serviços para mitigar os riscos de representante confuso entre serviços.  
![\[aws:SourceOrgPaths\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/sourceOrgPaths.png)
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String) (lista)
+ **Tipo de valor**: valores múltiplos

Use essa chave de condição para ajudar a garantir que um serviço que faça uma chamada possa acessar seu recurso somente quando a solicitação for originada de uma unidade organizacional específica (UO) no AWS Organizations.

Da mesma forma que em `aws:SourceOrgID`, para ajudar a evitar impactos nas integrações de serviços que não exijam o uso dessa chave, use o operador de condição `Null` com a chave de condição `aws:SourceAccount` para que o controle ainda seja aplicado se a solicitação se originar de uma conta que não pertença a uma organização.

```
{
      "Condition": {
        "ForAllValues:StringNotLikeIfExists": {
            "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
}
```

`aws:SourceOrgPaths` é uma chave de condição de vários valores. Chaves de valores múltiplos podem ter vários valores no contexto da solicitação. Você deve usar os operadores de conjunto `ForAnyValue` ou `ForAllValues` com [operadores de condição de string](reference_policies_elements_condition_operators.md#Conditions_String) para essa chave. Para obter mais informações sobre chaves de condição de vários valores, consulte [Operadores de conjunto para chaves de contexto de vários valores](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:UserAgent
<a name="condition-keys-useragent"></a>

Use essa chave para comparar o aplicativo cliente do solicitante com o aplicativo especificado na política.
+ **Disponibilidade**: essa chave é sempre incluída no contexto da solicitação.
+ **Tipo de dados**: [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo de valor**: valor único

**Atenção**  
Essa chave deve ser usada com cuidado. Como o valor `aws:UserAgent` é fornecido pelo chamador em um cabeçalho HTTP, partes não autorizadas podem usar navegadores personalizados ou modificados para fornecer qualquer valor `aws:UserAgent` que escolherem. Como resultado, `aws:UserAgent` não deve ser usado para impedir que terceiros não autorizados façam solicitações diretas da AWS. É possível usá-lo para permitir apenas aplicações cliente específicas, e somente depois de testar sua política.

### aws:IsMcpServiceAction
<a name="condition-keys-ismcpserviceaction"></a>

Use esta chave para verificar se a ação que está sendo autorizada é uma ação de serviço MCP. Essa chave não se refere às ações executadas pelo serviço MCP para outros serviços da AWS.
+ **Disponibilidade**: esta chave está incluída no contexto da solicitação e será definida como True somente quando o serviço MCP autorizar uma ação de serviço MCP.
+ **Tipo de dados**: [Booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo de valor**: valor único

## Outras chaves de condição nos serviços
<a name="condition-keys-other"></a>

O AWS STS oferece suporte a [chaves de condição de federação baseadas em SAML](reference_policies_iam-condition-keys.md#condition-keys-saml) e chaves de condição entre serviços para [federação OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif). Essas chaves estão disponíveis quando um usuário que foi federado usando OIDC ou SAML executa operações da AWS em outros serviços.

# Chaves de contexto de condição do IAM e do AWS STS
<a name="reference_policies_iam-condition-keys"></a>

É possível usar o elemento `Condition` em uma política JSON para testar o valor das chaves que estão incluídas no contexto de solicitação de todas as solicitações da AWS. Essas chaves fornecem informações sobre a solicitação em si, ou os recursos referenciados pela solicitação. É possível verificar que as chaves foram especificadas antes de permitir a ação solicitada pelo usuário. Isso oferece a você controle granular sobre quando as instruções de sua política JSON correspondem ou não a uma solicitação recebida. Para obter informações sobre como usar o elemento `Condition` em uma política JSON, consulte [Elementos de política JSON do IAM: Condition](reference_policies_elements_condition.md).

Este tópico descreve as chaves definidas e fornecidas pelo serviço IAM (com um prefixo `iam:`) e o serviço AWS Security Token Service (AWS STS) (com um prefixo `sts:`). Vários outros serviços da AWS também fornecem chaves específicas de serviços que são relevantes para as ações e os recursos definidos por esse serviço. Para obter mais informações, consulte [Ações, recursos e chaves de condição de serviços da AWS](reference_policies_actions-resources-contextkeys.html). A documentação de um serviço que dá suporte a chaves de condição, muitas vezes, tem informações adicionais. Por exemplo, para informações sobre chaves que você pode usar em políticas para recursos do Amazon S3, consulte [Chaves de política do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#AvailableKeys-iamV2) no *Guia do usuário do Amazon Simple Storage Service*.

**Topics**
+ [Teclas disponíveis para o IAM](#available-keys-for-iam)
+ [Chaves disponíveis para federação OIDC da AWS](#condition-keys-wif)
+ [Chaves disponíveis para federação do AWS STS com base em SAML](#condition-keys-saml)
+ [Chaves de contexto de federação do AWS STS baseadas em SAML entre serviços](#cross-condition-keys-saml)
+ [Chaves disponíveis do AWS STS](#condition-keys-sts)

## Teclas disponíveis para o IAM
<a name="available-keys-for-iam"></a>

É possível usar as seguintes chaves de condição em políticas que controlam o acesso aos recursos do IAM: 

**iam:AssociatedResourceArn**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Especifica o ARN do recurso ao qual essa função será associada no serviço de destino. O recurso geralmente pertence ao serviço ao qual o principal está transmitindo a função. Às vezes, o recurso pode pertencer a um terceiro serviço. Por exemplo, você pode passar uma função para o Amazon EC2 Auto Scaling que seja usada em uma instância do Amazon EC2. Nesse caso, a condição corresponderia ao ARN da instância do Amazon EC2.   
Essa chave de condição se aplica somente à ação [PassRole](id_roles_use_passrole.md) em uma política. Ela não pode ser usada para limitar nenhuma outra ação.   
Ao usar a condição `iam:AssociatedResourceArn` em uma política para restringir a ação [PassRole](id_roles_use_passrole.md), considerações especiais se aplicarão se a política tiver a intenção de definir o acesso à ação [AddRoleToInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html). Nesse caso, você não pode especificar uma ID de região ou instância no ARN da instância do EC2. O valor do ARN deve ser `arn:aws:ec2:*:CallerAccountId:instance/*`. O uso de qualquer outro valor de ARN pode levar a resultados de avaliação inesperados.
Use essa chave de condição em uma política baseada em identidade para permitir que uma entidade transmita um perfil, mas somente se esse perfil estiver associado ao recurso especificado. Por exemplo, você pode permitir que um usuário do IAM ou um perfil transmita qualquer perfil para o serviço do Amazon EC2 a ser usado com instâncias na Conta da AWS. O usuário ou a função do IAM não terá permissão para passar funções para outros serviços.  

```
{
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "iam:PassedToService": "ec2.amazonaws.com"
        },
        "ArnLike": {
            "iam:AssociatedResourceARN": [
                "arn:aws:ec2:*:111122223333:instance/*"
            ]
        }
    }
}
```
Os serviços da AWS que oferecem suporte ao [IAM:PassedToService](#ck_PassedToService) também oferecem suporte a esta chave de condição.

**iam:AWSServiceName**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Especifica o serviço da AWS para o qual essa função é anexada.  
Essa chave de condição é suportada pela operação da API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html).  
Para obter informações sobre quais serviços oferecem suporte a funções vinculadas a serviços, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md) e procure os serviços que têm **Sim **na coluna **Função vinculada ao serviço**. Escolha um **Sim** com um link para visualizar a documentação do perfil vinculado para esse serviço.
Neste exemplo, você permite que uma entidade do crie um perfil vinculado ao serviço usando a operação da API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html), se o nome do serviço for *access-analyzer.amazonaws.com.*    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
       "Effect": "Allow",
       "Action": "iam:CreateServiceLinkedRole",
       "Resource": "*",
       "Condition": {
         "StringLike": {
           "iam:AWSServiceName": "access-analyzer.amazonaws.com"
         }
       }
     }]
 }
```

**iam:FIDO-certification**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica o nível de certificação de FIDO do dispositivo MFA no momento do registro de uma chave de segurança FIDO. A certificação do dispositivo é obtida do [Serviço de metadados (MDS) da FIDO Alliance](https://fidoalliance.org/metadata/). Se o status ou o nível de certificação de sua chave de segurança FIDO mudar, ele não será atualizado, a menos que o dispositivo tenha o registrado cancelado e seja registrado novamente para buscar as informações de certificação atualizadas.  
Valores possíveis de L1, L1plus, L2, L2plus, L3, L3plus  
Neste exemplo, você registra uma chave de segurança e recupera a certificação FIDO Nível 1 plus para seu dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-certification": "L1plus"
                }
            }
        }
    ]
                  
 }
```

**iam:FIDO-FIPS-140-2-certification**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica o nível de certificação de validação FIPS-140-2 do dispositivo MFA no momento do registro de uma chave de segurança FIDO. A certificação do dispositivo é obtida do [Serviço de metadados (MDS) da FIDO Alliance](https://fidoalliance.org/metadata/). Se o status ou o nível de certificação de sua chave de segurança FIDO mudar, ele não será atualizado, a menos que o dispositivo tenha o registrado cancelado e seja registrado novamente para buscar as informações de certificação atualizadas.  
Valores possíveis de L1, L2, L3, L4  
Neste exemplo, você registra uma chave de segurança e recupera a certificação FIPS-140-2 Nível 2 do seu dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
                  
 }
```

**iam:FIDO-FIPS-140-3-certification**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica o nível de certificação de validação FIPS-140-3 do dispositivo MFA no momento do registro de uma chave de segurança FIDO. A certificação do dispositivo é obtida do [Serviço de metadados (MDS) da FIDO Alliance](https://fidoalliance.org/metadata/). Se o status ou o nível de certificação de sua chave de segurança FIDO mudar, ele não será atualizado, a menos que o dispositivo tenha o registrado cancelado e seja registrado novamente para buscar as informações de certificação atualizadas.  
Valores possíveis de L1, L2, L3, L4  
Neste exemplo, você registra uma chave de segurança e recupera a certificação FIPS-140-3 Nível 3 para seu dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L3"
                }
            }
        }
    ]
                  
 }
```

**iam:OrganizationsPolicyId**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica se a política com o ID do AWS Organizations especificado corresponde à política usada na solicitação. Para ver um exemplo de política do IAM que use essa chave de condição, consulte [IAM: visualizar serviço acessado por último para uma política do AWS Organizations](reference_policies_examples_iam_service-accessed-data-orgs.md).

**iam:PassedToService**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Especifica o serviço principal do serviço para o qual uma função pode ser transmitida. Essa chave de condição se aplica somente à ação [PassRole](id_roles_use_passrole.md) em uma política. Ela não pode ser usada para limitar nenhuma outra ação.   
Ao usar essa chave de condição em uma política, especifique o serviço usando um principal de serviço. Um serviço principal é o nome de um serviço que pode ser especificado no elemento `Principal` de uma política. Este é o formato normal: `SERVICE_NAME_URL.amazonaws.com`.   
É possível usar `iam:PassedToService` para restringir os usuários, para que eles possam passar funções apenas para serviços específicos. Por exemplo, um usuário pode criar uma [função de serviço](id_roles.md#iam-term-service-role) que confia no CloudWatch para gravar dados de log em um bucket do Amazon S3 em seu nome. Em seguida, o usuário deve anexar uma política de permissões e uma política de confiança para a nova função de serviço. Nesse caso, a política de confiança deve especificar `cloudwatch.amazonaws.com` no elemento `Principal`. Para visualizar uma política que permite ao usuário passar a função para o CloudWatch, consulte [IAM: Passar uma função do IAM para um produto da AWS específico](reference_policies_examples_iam-passrole-service.md).  
Ao usar essa chave de condição, você pode garantir que os usuários criem funções de serviço apenas pelos serviços que você especificar. Por exemplo, se um usuário com a política anterior tentar criar uma função de serviço para o Amazon EC2, a operação falhará. A falha ocorre porque o usuário não tem permissão para passar a função para o Amazon EC2.   
Às vezes, você passa uma função para um serviço que, em seguida, passa a função para outro serviço. `iam:PassedToService` inclui apenas o serviço final que assume a função, não o serviço intermediário que passa a função.  
Alguns serviços não são compatíveis com essa chave de condição.

**iam:PermissionsBoundary**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Verifica se a política especificada está anexada como limite de permissões no recurso da entidade principal do IAM. Para obter mais informações, consulte [Limites de permissões para entidades do IAM](access_policies_boundaries.md)

**iam:PolicyARN**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Verifica o nome de recurso da Amazon (ARN) de uma política gerenciada em solicitações que envolvem uma política gerenciada. Para obter mais informações, consulte [Controle de acesso a políticas](access_controlling.md#access_controlling-policies). 

**iam:RegisterSecurityKey**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica o estado atual da ativação do dispositivo MFA.  
Valores possíveis de `Create` ou `Activate`.  
Neste exemplo, você registra uma chave de segurança e recupera a certificação FIPS-140-3 Nível 1 para seu dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L1"
                }
            }
        }
    ]
                  
 }
```

**iam:ResourceTag/*key-name***  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica se a tag anexada ao recurso de identidade (usuário ou função) corresponde ao nome e ao valor da chave especificada.  
O IAM e o AWS STS são compatíveis com a chave de condição do IAM `iam:ResourceTag` e a chave de condição global `aws:ResourceTag`.
É possível adicionar atributos personalizados aos recursos do IAM na forma de um par de chave-valor. Para obter mais informações sobre etiquetas de recursos do IAM, consulte [Tags para recursos do AWS Identity and Access Management](id_tags.md). É possível usar `ResourceTag` para [controlar o acesso](access_tags.md#access_tags_control-resources) aos recursos da AWS, incluindo recursos do IAM. No entanto, como o IAM não oferece suporte a etiquetas para grupos, você não pode usar etiquetas para controlar o acesso a grupos.  
Este exemplo mostra como você pode criar uma política baseada em identidade que permite excluir usuários com a tag **status=terminated**. Para usar esta política, substitua o *texto do espaço reservado em itálico* na política de exemplo por suas próprias informações. Em seguida, siga as instruções em [criar uma política](access_policies_create.md) ou [editar uma política](access_policies_manage-edit.md).    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "iam:DeleteUser",
        "Resource": "*",
        "Condition": {"StringEquals": {"iam:ResourceTag/status": "terminated"}}
    }]
}
```

**iam:ServiceSpecificCredentialAgeDays**  
Funciona com [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Essa chave de condição limita a criação de credenciais específicas do serviço com base em suas configurações de expiração. Ele permite que você controle a idade máxima, em dias, das credenciais específicas do serviço que podem ser criadas.  
O intervalo válido para dias é de 1 a 36600 (mínimo 1 dia, máximo 36600 dias).  
Essa chave de condição é suportada pela operação da API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html).  
Neste exemplo, você permite que um usuário crie credenciais específicas para o serviço Amazon Bedrock somente se elas expirarem em 90 dias.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/username",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
                },
                "NumericLessThanEquals": {
                    "iam:ServiceSpecificCredentialAgeDays": "90"
                }
            }
        }
    ]
}
```

**iam:ServiceSpecificCredentialServiceName**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Especifica quais serviços da AWS podem ser usados ao gerenciar credenciais específicas do serviço. Essa chave de condição permite restringir quais serviços da AWS são permitidos ao gerenciar credenciais específicas do serviço.  
Esta chave de condição é suportada pelas seguintes operações de API:  
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html)
Os serviços a seguir são compatíveis com credenciais específicas do serviço com a formatação exata do valor:  
+ `bedrock.amazonaws.com`
+ `cassandra.amazonaws.com`
+ `codecommit.amazonaws.com`
Neste exemplo, você permite que um usuário crie credenciais específicas para a operação de API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) , apenas para o serviço do Amazon Bedrock.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/username",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
                }
            }
        }
    ]
}
```

**iam:DelegationDuration**  
Funciona com [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Filtra o acesso com base na duração do acesso temporário solicitado em uma solicitação de delegação.  
Os provedores de produtos podem usar essa chave de condição para controlar a duração máxima que eles permitem em solicitações de delegação enviadas aos clientes. A duração é especificada em segundos e determina por quanto tempo as credenciais temporárias permanecem válidas após o cliente liberar o token de troca. Isso ajuda os provedores de produtos a aplicar políticas internas sobre os limites de duração do acesso com base em seus casos de uso.  
Essa chave de condição é compatível com a operação da API `CreateDelegationRequest`.  
Neste exemplo, você permitirá criar solicitações de delegação somente se a duração solicitada for de 7.200 segundos (2 horas) ou menos.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "NumericLessThanEquals": {
                    "iam:DelegationDuration": "7200"
                }
            }
        }
    ]
}
```

**iam:NotificationChannel**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra o acesso com base no ARN do tópico do Amazon SNS especificado para receber notificações de solicitação de delegação.  
Os provedores de produtos podem usar essa chave de condição para restringir quais tópicos do SNS podem ser usados para notificações de solicitação de delegação na chamada da API CreateDelegationRequest. Os provedores de produtos devem especificar um tópico do SNS para receber notificações de mudança de estado e tokens de troca. Isso garante que as notificações sejam enviadas somente aos canais aprovados dentro da organização do provedor do produto.  
Essa chave de condição é compatível com a operação da API `CreateDelegationRequest`.  
Neste exemplo, você permitirá criar solicitações de delegação somente se elas usarem um tópico específico do SNS para notificações.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:NotificationChannel": "arn:aws:sns:us-east-1:123456789012:delegation-notifications"
                }
            }
        }
    ]
}
```

**iam:TemplateArn**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra o acesso com base no ARN do modelo de política usado para definir permissões em uma solicitação de delegação.  
Os provedores de produtos podem usar essa chave de condição para controlar quais modelos de política podem ser usados na chamada da API CreateDelegationRequest. Os modelos de política definem as permissões temporárias que os provedores de produtos solicitam nas contas dos clientes. Isso permite que os provedores de produtos restrinjam quais modelos de política registrados podem ser usados ao criar solicitações de delegação.  
Essa chave de condição é compatível com a operação da API `CreateDelegationRequest`.  
Neste exemplo, você permitirá criar solicitações de delegação somente se elas usarem um modelo de política de um domínio de parceiro específico.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "iam:TemplateArn": "arn:aws:iam:::delegation-template/partner_*"
                }
            }
        }
    ]
}
```

**iam:DelegationRequestOwner**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra o acesso com base na entidade principal ou na identidade da AWS proprietária da solicitação de delegação.  
Os clientes podem usar essa chave de condição para controlar quem pode realizar ações em solicitações de delegação com base na propriedade. O proprietário de uma solicitação de delegação é a entidade principal ou a identidade da AWS na conta do cliente que iniciou ou recebeu a solicitação de delegação.  
Esta chave de condição é suportada pelas seguintes operações de API:  
+ `GetDelegationRequest`
+ `AcceptDelegationRequest`
+ `RejectDelegationRequest`
+ `SendDelegatedToken`
+ `ListDelegationRequests`
+ `UpdateDelegationRequest`
Neste exemplo, você permitirá que os usuários gerenciem somente solicitações de delegação de sua propriedade.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetDelegationRequest",
                "iam:AcceptDelegationRequest",
                "iam:RejectDelegationRequest",
                "iam:SendDelegatedToken",
                "iam:UpdateDelegationRequest",
                "iam:ListDelegationRequests"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:DelegationRequestOwner": "${aws:PrincipalArn}"
                }
            }
        }
    ]
}
```

## Chaves disponíveis para federação OIDC da AWS
<a name="condition-keys-wif"></a>

É possível usar a federação OIDC para fornecer credenciais de segurança temporárias a usuários que foram autenticados por meio de um provedor de identidade (IdP) compatível com OpenID Connect em um provedor de identidade OpenID Connect (OIDC) do IAM em sua conta da AWS. Exemplos desses provedores incluem GitHub, Amazon Cognito, Login da Amazon, e Google. É possível usar tokens de identidade e de acesso do seu próprio IdP, bem como [tokens de contas de serviço](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-account-tokens) concedidos por workloads do Amazon Elastic Kubernetes Service.

É possível usar chaves de contexto de condição do AWS OIDC para criar políticas que limitam o acesso de entidades principais federadas a recursos associados a um provedor, aplicação ou usuário específico. Essas chaves são normalmente usadas na política de confiança de uma função. Defina as chaves de condição usando o nome do provedor do OIDC (`token.actions.githubusercontent.com`), seguido pela declaração (`:aud`): `token.actions.githubusercontent.com:aud`.

Algumas chaves de condição da federação do OIDC podem ser usadas na sessão de perfil para autorizar o acesso a recursos. Se o valor for **Sim** na coluna **Disponível na sessão**, você poderá usar essas chaves de condição nas políticas para definir o que os usuários têm permissão para acessar em outros serviços da AWS. Quando uma declaração não está disponível na sessão, a chave de contexto de condição do OIDC só pode ser usada em uma política de confiança de função para a autenticação inicial [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

Selecione seu IdP para ver como as declarações do seu IdP são mapeadas para as chaves de contexto de condição do IAM na AWS. Você pode encontrar mais informações sobre chaves para o GitHub e o Google na guia **Padrão**.

------
#### [ Default ]

O padrão lista as declarações padrão do OIDC e como elas são mapeadas para as chaves de contexto de condição do AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**. Use esse mapeamento se seu IdP não estiver listado nas opções da guia. 

Os fluxos de trabalho do GitHub Actions e o Google são alguns exemplos de IDPs que usam a implementação padrão em seu token de ID JWT do OIDC.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| amr | amr | Sim | 
| aud | azp Se nenhum valor for definido para `azp`, a chave de condição `aud` será mapeada para a declaração `aud`. | Sim | 
| email | email | Não | 
| oaud | aud | Não | 
| sub | sub | Sim | 

Para obter mais informações sobre o uso de chaves de contexto de condição com o GitHub, consulte [Configurar uma função para o provedor de identidades OIDC GitHub](id_roles_create_for-idp_oidc.md#idp_oidc_Create_GitHub). Para obter mais informações sobre o Google e sobre os campos `aud` e `azp`, consulte o guia [Google Identity Platform OpenID Connect](https://developers.google.com/identity/protocols/OpenIDConnect). 

**amr**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String). A chave tem vários valores, o que significa que você a testa em uma política usando [operadores do conjunto de condições](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Exemplo**: `token.actions.githubusercontent.com:amr`  
A Referência de métodos de autenticação inclui informações de login sobre o usuário. A chave pode conter os seguintes valores:  
+ Se o usuário não estiver autenticado, a chave conterá apenas `unauthenticated`.
+ Se o usuário estiver autenticado, a chave conterá o valor `authenticated` e o nome do provedor de login usado na chamada (`accounts.google.com`).

**aud**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Examples**:   
+ `accounts.google.com:aud`
+ `token.actions.githubusercontent.com:aud`
Use a chave de condição `aud` para verificar se o público corresponde àquele especificado na política. É possível usar a chave de pub com a chave de ass para o mesmo provedor de identidade.  
Essa chave de condição é definida a partir dos seguintes campos de token:  
+ `aud` para IDs de cliente do Google do OAuth 2.0 do aplicativo, quando o campo `azp` não estiver definido. Quando o campo `azp` estiver definido, o campo `aud` corresponderá à chave de condição `accounts.google.com:oaud`.
+ `azp` quando o campo `azp` estiver definido. Isso pode acontecer com aplicativos híbridos nos quais um aplicativo web e um aplicativo Android têm um ID de cliente do Google do OAuth 2.0 diferente, mas compartilham o mesmo projeto de APIs do Google. 
Quando você escreve uma política usando a chave de condição `accounts.google.com:aud`, é necessário saber se o aplicativo é um aplicativo híbrido que define o campo `azp`.   
`azp`Campo não definido  
O exemplo de política a seguir funciona para aplicativos não híbridos que não definem o campo `azp`. Nesse caso, o valor do campo `aud` do token de ID do Google corresponde aos valores da chave de condição `accounts.google.com:aud` e `accounts.google.com:oaud`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Federated": "accounts.google.com"},
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:aud": "aud-value",
                    "accounts.google.com:oaud": "aud-value",
                    "accounts.google.com:sub": "sub-value"
                }
            }
        }
    ]
}
```
`azp`Campo definido  
O exemplo de política a seguir funciona para aplicativos híbridos que definem o campo `azp`. Nesse caso, o valor do campo `aud` do token de ID do Google corresponde apenas ao valor da chave de condição `accounts.google.com:oaud`. O valor do campo `azp` corresponde ao valor da chave de condição `accounts.google.com:aud`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Federated": "accounts.google.com"},
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:aud": "azp-value",
                    "accounts.google.com:oaud": "aud-value",
                    "accounts.google.com:sub": "sub-value"
                }
            }
        }
    ]
}
```

**email**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo**: `accounts.google.com:email`  
Essa chave de condição valida o endereço de e-mail do usuário. O valor dessa declaração pode não ser exclusiva dessa conta e pode mudar com o tempo, portanto, você não deve usar esse valor como identificador primário para verificar seu registro de usuário.

**oaud**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo**: `accounts.google.com:oaud`  
Essa chave especificará o outro público (`aud`) ao qual esse token de ID se destina. Ela deve ser um dos IDs de cliente do OAuth 2.0 do aplicativo.

**sub**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Examples**:  
+ `accounts.google.com:sub`
+ token.actions.githubusercontent.com:sub
Use essas chaves para verificar se o assunto corresponde àquele especificado na política. É possível usar a chave `sub` com a chave `aud` para o mesmo provedor de identidade.  
Na política de confiança de perfil a seguir, a chave de condição `sub` limita a função à ramificação do GitHub chamada `demo`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
          "token.actions.githubusercontent.com:sub": "repo:org-name/repo-name:ref:refs/heads/demo"
        }
      }
    }
  ]
}
```

------
#### [ Amazon Cognito ]

Essa guia explica como o Amazon Cognito mapeia as declarações do OIDC para as chaves de contexto de condição AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.

Para perfis usados pelo Amazon Cognito, as chaves são definidas usando `cognito-identity.amazonaws.com` seguido pela declaração.

Para obter mais informações sobre mapeamento de declaração do banco de identidades, consulte [Mapeamentos padrão do provedor](https://docs.aws.amazon.com/cognito/latest/developerguide/provider-mappings.html) no *Guia do desenvolvedor do Amazon Cognito*. Para obter mais informações sobre mapeamento de declaração do grupo de usuários, consulte [Como usar token de ID](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html) no *Guia do desenvolvedor do Amazon Cognito*.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| amr | amr | Sim | 
| aud | aud | Sim | 
| oaud | aud | Não | 
| sub | sub | Sim | 

**amr**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String). A chave tem vários valores, o que significa que você a testa em uma política usando [operadores do conjunto de condições](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Exemplo** – `cognito-identity.amazonaws.com:amr`  
A Referência de métodos de autenticação inclui informações de login sobre o usuário. A chave pode conter os seguintes valores:  
+ Se o usuário não estiver autenticado, a chave conterá apenas `unauthenticated`.
+ Se o usuário estiver autenticado, a chave conterá o valor `authenticated` e o nome do provedor de login usado na chamada (`cognito-identity.amazonaws.com`).
Por exemplo, a seguinte condição na política de confiança para um perfil do Amazon Cognito testa se o usuário não está autenticado.  

```
"Condition": {
  "StringEquals": 
    { "cognito-identity.amazonaws.com:aud": "us-east-2:identity-pool-id" },
  "ForAnyValue:StringLike": 
    { "cognito-identity.amazonaws.com:amr": "unauthenticated" }
}
```

**aud**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `cognito-identity.amazonaws.com:aud`  
O cliente de aplicação do grupo de usuários que autenticou o usuário. O Amazon Cognito renderiza o mesmo valor na reivindicação `client_id` do token de acesso.

**oaud**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `cognito-identity.amazonaws.com:oaud`  
O cliente de aplicação do grupo de usuários que autenticou o usuário. O Amazon Cognito renderiza o mesmo valor na reivindicação `client_id` do token de acesso.

**sub**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `cognito-identity.amazonaws.com:sub`  
Um identificador exclusivo (UUID), ou assunto, do usuário autenticado. O nome de usuário pode não ser exclusivo em seu grupo de usuários. A subreivindicação é a melhor maneira de identificar um usuário específico. É possível usar a chave `sub` com a chave `aud` para o mesmo provedor de identidade.  

```
"Condition": {
         "StringEquals": {
            "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab",
            "cognito-identity.amazonaws.com:sub": [
               "us-east-1:12345678-1234-1234-1234-123456790ab",
               "us-east-1:98765432-1234-1234-1243-123456790ab"
            ]
         }
      }
```

------
#### [ Login with Amazon ]

Essa guia explica como o Login da Amazon mapeia as declarações do OIDC para as chaves de contexto de condição AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
|  app\$1id  |  ID da aplicação  |  Sim  | 
|  sub  |  ID de usuário  |  Sim  | 
|  user\$1id  |  ID de usuário  |  Sim  | 

**app\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `www.amazon.com:app_id`  
Essa chave especifica o contexto do público que corresponde ao campo `aud` usado por outros provedores de identidade.

**sub**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `www.amazon.com:sub`  
Essa chave verifica se o ID de usuário corresponde àquele especificado na política. É possível usar a chave `sub ` com a chave `aud` para o mesmo provedor de identidade.

**user\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `www.amazon.com:user_id`  
Essa chave especifica o contexto do público que corresponde ao campo `aud` usado por outros provedores de identidade. É possível usar a chave `user_id` com a chave `id` do mesmo provedor de identidade.

------
#### [ Facebook ]

Essa guia explica como o Facebook mapeia as declarações do OIDC para as chaves de contexto de condição AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| app\$1id | ID da aplicação | Sim | 
| id | id | Sim | 

**app\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `graph.facebook.com:app_id`  
Essa chave verificará se o contexto do público corresponde ao campo `aud` usado por outros provedores de identidade.

**ID de**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `graph.facebook.com:id`  
Essa chave verificou se o ID da aplicação (ou site) corresponde àquele especificado na política.

------
#### [ GitHub ]

Essa guia explica como o GitHub Actions mapeia as declarações OIDC para as chaves de contexto de condição do AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| actor | actor | Não | 
| actor\$1id | actor\$1id | Não | 
| job\$1workflow\$1ref | job\$1workflow\$1ref | Não | 
| repositório | repositório | Não | 
| repository\$1id | repository\$1id | Não | 
| fluxo de trabalho | fluxo de trabalho | Não | 
| ref | ref | Não | 
| ambiente | ambiente | Não | 
| enterprise\$1id | enterprise\$1id | Não | 

**actor**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:actor`  
Essa chave identifica a conta pessoal que iniciou a execução do fluxo de trabalho. Use-a para restringir o acesso a agentes específicos.

**actor\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:actor_id`  
Essa chave verifica o ID da conta pessoal que iniciou a execução do fluxo de trabalho. Os IDs de agentes são gerados pelo GitHub e são imutáveis.

**job\$1workflow\$1ref**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:job_workflow_ref`  
Essa chave contém o caminho de referência para o fluxo de trabalho reutilizável de trabalhos que usam esse tipo de fluxo de trabalho. Use-a para restringir o acesso a fluxos de trabalho específicos e garantir que somente os fluxos de trabalho aprovados possam assumir perfis.

**Repositório do**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:repository`  
Essa chave identifica o repositório no qual o fluxo de trabalho é executado. Use-a para limitar o acesso a repositórios do GitHub específicos.

**repository\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:repository_id`  
Essa chave verifica o ID do repositório no qual o fluxo de trabalho é executado. Os IDs de repositórios são imutáveis e não serão alterados mesmo que o repositório seja renomeado.

**Fluxo de trabalho do**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:workflow`  
Essa chave contém o nome do fluxo de trabalho. Use-a para restringir o acesso a fluxos de trabalho específicos nos repositórios.

**ref**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:ref`  
Essa chave identifica a git ref (ramificação ou tag) que acionou a execução do fluxo de trabalho. Use-a para limitar o acesso com base em ramificações específicas, como permitir somente as ramificações `main` ou `production`.

**Ambiente do**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:environment`  
Essa chave contém o nome do ambiente usado pelo trabalho. Use-a para implementar controles de acesso baseados no ambiente, como permissões separadas para os ambientes de desenvolvimento, preparação e produção.  
Se a declaração de ambiente for incluída na política de confiança, um ambiente deverá ser configurado e fornecido no fluxo de trabalho do GitHub.

**enterprise\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `token.actions.githubusercontent.com:enterprise_id`  
Essa chave verifica o ID do repositório no qual fluxo de trabalho é executado. Use-a para garantir que o acesso seja limitado aos repositórios na sua organização do GitHub Enterprise.

O exemplo de política de confiança a seguir usa declarações personalizadas no token OIDC do GitHub para limitar o acesso a um perfil.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/token.actions.githubusercontent.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "StringLike": {
                "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
                "token.actions.githubusercontent.com:job_workflow_ref": "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main",
                "token.actions.githubusercontent.com:repository": "octo-org/octo-repo",
                "token.actions.githubusercontent.com:actor": "octocat",
                "token.actions.githubusercontent.com:ref": "refs/heads/main",
                "token.actions.githubusercontent.com:enterprise_id": "345"
               }
           }
        }
    ]
}
```

------
#### [ Google ]

Essa guia explica como o Google mapeia as declarações OIDC para as chaves de contexto de condição do AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| google/organization\$1number | google:organization\$1number | Não | 

**google/organization\$1number**  
Funciona com [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
**Exemplo** – `accounts.google.com:google/organization_number`  
Essa chave confirma que um token representa uma identidade do Google que pertence a uma organização específica do Google Cloud ou do Google Workspace. Use-a para restringir o acesso a usuários de organizações específicas, garantindo que somente as identidades da sua organização possam assumir o perfil.

O exemplo de política de confiança a seguir usa a declaração `google/organization_number` para limitar o acesso a um perfil.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "accounts.google.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "NumericEquals": {
                "accounts.google.com:google/organization_number": "123456"
               }
           }
        }
    ]
}
```

------
#### [ CircleCI ]

Essa guia explica como o CircleCI mapeia as declarações OIDC para as chaves de contexto de condição do AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| oidc.circleci.com/project-id | oidc.circleci.com/project-id | Não | 

**oidc.circleci.com/project-id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `circleci-issuer-url:oidc.circleci.com/project-id`  
Essa chave identifica o projeto do CircleCI no qual o trabalho é executado. Seu valor é uma string que contém um UUID que identifica exclusivamente o projeto do CircleCI. Use-a para restringir o acesso a projetos do CircleCI específicos.

O exemplo de política de confiança a seguir usa a declaração `oidc.circleci.com/project-id` para limitar o acesso a um perfil.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.circleci.com/org/12345"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "oidc.circleci.com/org/12345:aud": "sts.amazonaws.com",
          "oidc.circleci.com/org/12345:oidc.circleci.com/project-id": "76543210-ba98-fedc-3210-edcba0987654"
        }
      }
    }
  ]
}
```

------
#### [ Oracle Cloud Infrastructure (OCI) ]

Essa guia explica como o Oracle Cloud Infrastructure mapeia as declarações OIDC para as chaves de contexto de condição do AWS STS na AWS. É possível usar essas chaves para controlar o acesso a um perfil. Para fazer isso, compare as **chaves de condição do AWS STS** com os valores na coluna de **declaração JWT do IdP**.


| AWS STSChave da condição  | declaração JWT do IdP | Disponível na sessão | 
| --- | --- | --- | 
| rpst\$1id | rpst\$1id | Não | 

**rpst\$1id**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Exemplo** – `oci-issuer-url:rpst_id`  
Essa chave identifica de modo exclusivo a entidade principal do recurso no OCI. Use-a para restringir o acesso a entidades principais do OCI específicas. O rpst\$1id (ID de token de sessão da entidade principal do recurso) fornece um identificador estável para autenticação baseada no recurso do OCI.

O exemplo de política de confiança a seguir usa a declaração `rpst_id` para limitar o acesso a um perfil.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/idcs-abc123ef5678901234abcd.identity.oraclecloud.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:aud": "sts.amazonaws.com",
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:rpst_id": "your-rpst-id"
        }
      }
    }
  ]
}
```

------

### Mais informações sobre a federação OIDC
<a name="condition-keys-wif-more-info"></a>


+ [Guia do usuário do Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)
+ [Federação OIDC](id_roles_providers_oidc.md)

## Chaves disponíveis para federação do AWS STS com base em SAML
<a name="condition-keys-saml"></a>

Se você estiver trabalhando com [federação baseada em SAML](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html) usando o AWS Security Token Service (AWS STS), poderá incluir chaves de condição adicionais na política. 

### Políticas de confiança da função do SAML
<a name="condition-keys-saml_trust-policy"></a>

Na política de confiança de uma função, você pode incluir as seguintes chaves, que ajudam você a estabelecer se o chamador tem permissão para assumir a função. Exceto no caso de `saml:doc`, todos os valores são derivados da declaração de SAML. Todos os itens da lista estão disponíveis no editor visual do console do IAM quando você cria ou edita uma política com condições. Os itens marcados com `[]` *podem* ter um valor que seja uma lista do tipo especificado.

**saml:aud**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Um URL de endpoint para a qual as declarações de SAML são apresentadas. O valor dessa chave vem do campo `SAML Recipient` na declaração, *não*do campo `Audience`.

**saml:commonName[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `commonName`.

**saml:cn[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduOrg`.

**saml:doc**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Isso representa a entidade principal que foi usada para assumir a função. O formato é *account-ID*/*provider-friendly-name*, como `123456789012/SAMLProviderName`. O valor *account-ID* se refere à conta que possui o [provedor SAML](id_roles_providers_create_saml.md). 

**saml:edupersonaffiliation[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonassurance[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonentitlement[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonnickname[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonorgdn**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonorgunitdn[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonprimaryaffiliation**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonprimaryorgunitdn**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonprincipalname**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersonscopedaffiliation[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:edupersontargetedid[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduPerson`.

**saml:eduorghomepageuri[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduOrg`.

**saml:eduorgidentityauthnpolicyuri[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduOrg`.

**saml:eduorglegalname[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduOrg`.

**saml:eduorgsuperioruri[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduOrg`.

**saml:eduorgwhitepagesuri[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `eduOrg`.

**saml:givenName[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `givenName`.

**saml:iss**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
O emissor, que é representado por um URN. 

**saml:mail[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `mail`.

**saml:name[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `name`.

**saml:namequalifier**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Um valor de hash baseado no nome amigável do provedor SAML. O valor é a concatenação dos seguintes valores, em ordem e separados por um caractere '/':  

1. O valor da resposta `Issuer` (`saml:iss`)

1. O ID da conta da `AWS`.

1.  O nome amigável (a última parte do ARN) do provedor SAML no IAM 
A concatenação do ID da conta e do nome amigável do provedor SAML está disponível para as políticas do IAM como a chave `saml:doc`. Para obter mais informações, consulte [Identificar exclusivamente os usuários na federação baseada em SAML](id_roles_providers_saml.md#CreatingSAML-userid).

**saml:organizationStatus[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `organizationStatus`.

**saml:primaryGroupSID[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `primaryGroupSID`.

**saml:sub**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Trata-se do assunto da solicitação, que inclui um valor que identifica de forma exclusiva um usuário individual em uma organização (por exemplo, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**saml:sub\$1type**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Essa chave pode ter o valor `persistent`, `transient` ou consistir no URI `Format` completo dos elementos `Subject` e `NameID` usados em sua declaração SAML. O valor `persistent` indica que o valor em `saml:sub` é o mesmo para um usuário entre as sessões. Se o valor for `transient`, o usuário terá um valor `saml:sub` diferente para cada sessão. Para obter mais informações sobre o atributo `NameID` do elemento `Format`, consulte [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md).

**saml:surname[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `surnameuid`.

**saml:uid[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `uid`.

**saml:x500UniqueIdentifier[]**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Esse é um atributo `x500UniqueIdentifier`.

Para obter informações gerais sobre os atributos do `eduPerson` e `eduOrg`, consulte o [REFEDS Wiki website](https://wiki.refeds.org/display/STAN/eduPerson) (site Wiki do REFEDS). Para obter uma lista de atributos do `eduPerson`, consulte a [eduPerson Object Class Specification (201602)](https://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201602.html) (Especificação da classe de objeto eduPerson (201602)). 

As chaves de condição cujo tipo é uma lista pode incluir vários valores. Para criar condições na política para listar os valores, você pode usar [operadores definidos](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) (`ForAllValues`, `ForAnyValue`). Por exemplo, para permitir qualquer usuário cuja afiliação seja "corpo docente" ou "equipe" (mas não "aluno"), você pode usar uma condição como a seguinte: 

```
"Condition": {
   "ForAllValues:StringLike": {
     "saml:edupersonaffiliation":[ "faculty", "staff"] 
   }
}
```

## Chaves de contexto de federação do AWS STS baseadas em SAML entre serviços
<a name="cross-condition-keys-saml"></a>

Algumas chaves de condição de federação baseadas em SAML podem ser usadas em solicitações subsequentes para autorizar operações da AWS em outros serviços e chamadas `AssumeRole`. Essas são as chaves de condição que podem ser usadas em políticas de confiança de perfil quando as entidades principais federadas assumem outro perfil, e em políticas de recursos de outros serviços da AWS para autorizar o acesso das entidades principais federadas aos recursos. Para obter mais informações sobre o uso dessas chaves, consulte [Sobre federação baseada em SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html#CreatingSAML-userid). 

Selecione uma chave de condição para ver a descrição.
+ [saml:namequalifier](#ck_saml-namequalifier)
+ [saml:sub](#ck_saml-sub)
+ [saml:sub_type](#ck_saml-subtype)

**nota**  
Nenhuma outra chave de condição de federação baseada em SAML está disponível para uso após a resposta inicial de autenticação do provedor de identidades (IdP) externo.

## Chaves disponíveis do AWS STS
<a name="condition-keys-sts"></a>

É possível usar as chaves de condição a seguir nas políticas de confiança de função do IAM para funções que são assumidas usando operações do AWS Security Token Service (AWS STS). 

**saml:sub**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Trata-se do assunto da solicitação, que inclui um valor que identifica de forma exclusiva um usuário individual em uma organização (por exemplo, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**sts:AWSServiceName**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use essa chave para especificar um serviço onde um token de portador pode ser usado. Ao usar essa chave de condição em uma política, especifique o serviço usando um principal de serviço. Um serviço principal é o nome de um serviço que pode ser especificado no elemento `Principal` de uma política. Por exemplo, `codeartifact.amazonaws.com` é a entidade principal do AWS CodeArtifact.  
**Disponibilidade**: essa chave está presente em solicitações que recebem um token de portador. Não é possível fazer uma chamada direta ao AWS STS para obter um token de portador. Quando você executa algumas operações em outros serviços, o serviço solicita o token de portador em seu nome.  
Alguns serviços da AWS exigem que você tenha permissão para obter um token de portador do serviço AWS STS para poder acessar seus recursos de forma programática. Por exemplo, o AWS CodeArtifact requer que as entidades principais usem tokens de portador para realizar algumas operações. O comando `aws codeartifact get-authorization-token` retorna um token de portador. É possível usar o token do portador para realizar as operações do AWS CodeArtifact. Para obter mais informações sobre tokens de portador, consulte [Tokens de portador de serviço](id_credentials_bearer.md).   
É possível usar essa chave de condição para permitir que os principais obtenham um token de portador para uso com um serviço específico.

**sts:DurationSeconds**  
Funciona com [operadores numéricos](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Use esta chave para especificar a duração (em segundos) que uma entidade principal pode usar ao obter um token de portador do AWS AWS STS ou um JSON Web Token da API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html).  
**Disponibilidade**: esta chave está presente em solicitações que recebem um token de portador ou um JSON Web Token da API GetWebIdentityToken. Não é possível fazer uma chamada direta ao AWS STS para obter um token de portador. Quando você executa algumas operações em outros serviços, o serviço solicita o token de portador em seu nome. A chave não é aplicável para operações de perfil assumido do AWS STS.  
Alguns serviços da AWS exigem que você tenha permissão para obter um token de portador do serviço AWS STS para poder acessar seus recursos de forma programática. Por exemplo, o AWS CodeArtifact requer que as entidades principais usem tokens de portador para realizar algumas operações. O comando `aws codeartifact get-authorization-token` retorna um token de portador. É possível usar o token do portador para realizar as operações do AWS CodeArtifact. Para obter mais informações sobre tokens de portador, consulte [Tokens de portador de serviço](id_credentials_bearer.md). 

**sts:IdentityTokenAudience**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use esta chave para especificar o público para o qual uma entidade principal do IAM pode solicitar JSON Web Tokens (JWTs) usando a API [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html). Quando essa chave de condição está presente em uma política do IAM, as entidades principais do IAM só podem solicitar tokens para os públicos especificados na política. Os serviços externos validam a reivindicação audience (“aud”) no JSON Web Token para garantir que o token foi destinado a eles.  
**Disponibilidade**: esta chave está presente nas solicitações à API GetWebIdentityToken, que é usada para obter JSON Web Tokens (JWTs) para autenticação com serviços externos.  
Ao usar esta chave de condição em uma política, especifique o valor de audience que corresponda ao identificador do destinatário pretendido (por exemplo, https://api.example.com).  
A seguinte política de exemplo permite que uma entidade principal solicite tokens para os serviços externos especificados:  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "sts:IdentityTokenAudience": [
                        "https://api2.example.com",
                        "https://api1.example.com"
                    ]
                }
            }
        }
    ]
}
```

**sts:SigningAlgorithm**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use esta chave para especificar o algoritmo criptográfico que o AWS AWS STS usa para assinar JSON Web Tokens (JWTs) gerados pela API [GetWebIdentityToken.](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) Ao usar essa chave de condição em uma política, especifique ES384 (ECDSA com curva P-384 e SHA-384) ou RS256 (RSA com SHA-256).  
**Disponibilidade**: esta chave está presente nas solicitações à API GetWebIdentityToken, que é usada para obter JSON Web Tokens (JWTs) para autenticação com serviços externos.  
Você pode usar essa chave de condição para garantir que as entidades principais do IAM solicitem tokens usando algoritmos de assinatura compatíveis com seus requisitos de segurança ou com os serviços externos com os quais você se integra. O ES384 oferece segurança e desempenho ideais, enquanto o RS256 oferece compatibilidade mais ampla com sistemas que não compatíveis com o ECDSA.  
O exemplo de política a seguir exige que as entidades principais usem o algoritmo de assinatura ES384:  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "sts:SigningAlgorithm": "ES384"
                }
            }
        }
    ]
}
```

**sts:ExternalId**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use essa chave para exigir que uma entidade principal forneça um identificador específico ao assumir um perfil do IAM.  
**Disponibilidade**: essa chave está presente na solicitação quando a entidade principal fornece um ID externo enquanto assume um perfil usando a AWS CLI ou a API da AWS.   
Um identificador exclusivo que pode ser necessário ao assumir uma função em outra conta. Se o administrador da conta à qual a função pertence forneceu um ID externo para você, forneça esse valor no parâmetro `ExternalId`. Esse valor pode ser qualquer string, como uma frase secreta ou o número de uma conta. A função principal do ID externo é abordar e impedir o problema "confused deputy". Para obter mais informações sobre o ID externo e o problema confused deputy, consulte [Acesso às Contas da AWS de propriedade de terceiros](id_roles_common-scenarios_third-party.md).  
O valor `ExternalId` deve ter no mínimo 2 e no máximo 1.224 caracteres. O valor deve ser alfanumérico sem espaço em branco. Ele também pode incluir os seguintes símbolos: mais (\$1), igual (=), vírgula (,), ponto (.), arroba (@), dois pontos (:), barra (/) e hífen (-).

**sts:RequestContext/*chave de contexto***  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use essa chave para comparar os pares de chave-valor do contexto da sessão que estão incorporados na declaração de contexto assinada pelo emissor do token de confiança transmitida na solicitação com os valores de chave de contexto especificados na política de confiança do perfil.  
**Disponibilidade**: essa chave está presente na solicitação quando uma declaração de contexto é fornecida no parâmetro `ProvidedContexts` da solicitação enquanto assume um perfil usando a operação de API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) do AWS STS.  
Essa chave de contexto é formatada como `"sts:RequestContext/context-key":"context-value"`, onde `context-key` e `context-value` são um par de chave/valor de contexto. Quando várias chaves de contexto são incorporadas na declaração de contexto assinada que é passada na solicitação, existe uma chave de contexto para cada par de chave/valor. Você deve conceder permissão para a ação `sts:SetContext` na política de confiança do perfil para permitir que uma entidade principal defina chaves de contexto no token de sessão resultante. Para saber mais sobre as chaves de contexto do Centro de Identidade do IAM compatíveis que podem ser usadas com essa chave, consulte [Chaves de condição do AWS STS para o Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.  
É possível usar essa chave em uma política de confiança do perfil para aplicar um controle de acesso refinado com base no usuário ou em seus atributos ao assumir um perfil. Depois que o perfil é assumido, a atividade aparece nos logs do AWS CloudTrail no atributo `AdditionalEventData`, contendo os pares de chave/valor de contexto da sessão que foram definidos pelo provedor de contexto na solicitação feita para assumir o perfil. Isso torna mais fácil para os administradores diferenciar entre sessões de função quando uma função é usada por diferentes entidades de segurança. Os pares de chave/valor são definidos pelo provedor de contexto especificado, não pelo AWS CloudTrail ou pelo AWS STS. Isso dá ao provedor de contexto controle sobre qual contexto é incluído nos logs e nas informações da sessão do CloudTrail.

**sts:RequestContextProviders**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Use essa chave para comparar o ARN do provedor de contexto na solicitação com o ARN do provedor de contexto especificado na política de confiança do perfil.  
**Disponibilidade**: essa chave está presente na solicitação quando uma declaração de contexto é fornecida no parâmetro `ProvidedContexts` da solicitação enquanto assume um perfil usando a operação de API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) do AWS STS.  
O exemplo de condição a seguir verifica se o ARN do provedor de contexto passado na solicitação corresponde ao ARN especificado na condição da política de confiança do perfil. Recomendamos que você adicione uma verificação nula com `ForAllValues` para evitar que chaves de contexto ausentes ou chaves de contexto com valores vazios sejam avaliadas como verdadeiras. Para obter detalhes, consulte [Operador de condição para verificar a existência de chaves de condição](reference_policies_elements_condition_operators.md#Conditions_Null).    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Action": "sts:SetContext",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
      "ForAllValues:ArnEquals": {
        "sts:RequestContextProviders": [
          "arn:aws:iam::aws:contextProvider/IdentityCenter"
        ]
      },
      "Null": {
        "sts:RequestContextProviders": "false"
      }
    }
  }
}
```

**sts:RoleSessionName**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilize essa chave para comparar o nome da sessão que um principal especifica ao assumir uma função com o valor especificado na política.  
**Disponibilidade**: essa chave está presente na solicitação quando a entidade principal assume o perfil usando o Console de gerenciamento da AWS, qualquer comando de assumir função da CLI ou qualquer operação de API `AssumeRole` do AWS STS.  
É possível usar essa chave em uma política de confiança de perfil para exigir que os usuários forneçam um nome de sessão específico quando assumirem um perfil. Por exemplo, você pode exigir que os usuários do IAM especifiquem o próprio nome de usuário como nome de sessão. Depois que o usuário do IAM assume a função, a atividade aparece nos [logs do AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) com o nome da sessão que corresponde ao seu nome de usuário. Isso torna mais fácil para os administradores diferenciar entre sessões de função quando uma função é usada por diferentes entidades de segurança.  
A política de confiança de função a seguir exige que os usuários do IAM na conta `111122223333` forneçam o nome de usuário do IAM como o nome da sessão quando assumem a função. Esse requisito é imposto usando a [variável de condição](reference_policies_variables.md) `aws:username` na chave de condição. Essa política permite que os usuários do IAM assumam a função à qual a política está anexada. Essa política não permite que ninguém que utilize credenciais temporárias assuma a função, porque a variável `username` está presente apenas para usuários do IAM.  
É possível usar qualquer chave de condição de valor único disponível como uma [variável](reference_policies_variables.md). Você não pode usar uma chave de condição de valores múltiplos como uma variável.  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "prefix-${aws:username}"}
            }
        }
    ]
}
```
Quando um administrador exibe o log do AWS CloudTrail de uma ação, ele pode comparar o nome da sessão com os nomes de usuário em sua conta. No exemplo a seguir, o usuário chamado `matjac` executou a operação usando a função chamada `MateoRole`. O administrador pode entrar em contato com Mateo Jackson, que tem o nome de usuário `matjac`.  

```
    "assumedRoleUser": {
        "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:matjac",
        "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole/matjac"
    }
```
Se você permitir [acesso entre contas usando funções](id_roles_common-scenarios_aws-accounts.md), os usuários em uma conta poderão assumir uma função em outra conta. O ARN do usuário da função assumida listado no CloudTrail inclui a conta *onde a função existe*. Ele não inclui a conta do usuário que assumiu a função. Os usuários são exclusivos apenas dentro de uma conta. Portanto, recomendamos que você use esse método para verificar logs do CloudTrail somente para funções que são assumidas pelos usuários em contas que você administra. Seus usuários podem usar o mesmo nome de usuário em várias contas.

**sts:SourceIdentity**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use esta chave para comparar a identidade-fonte que uma entidade principal especifica ao assumir um perfil com o valor que é especificado na política.  
**Disponibilidade**: esta chave está presente na solicitação quando a entidade principal fornece uma identidade-fonte enquanto assume um perfil usando qualquer comando de assumir perfil da CLI do AWS STS ou operação da API `AssumeRole` do AWS STS.  
É possível usar essa chave em uma política de confiança de perfil para exigir que seus usuários definam uma identidade-fonte específica ao assumir um perfil. Por exemplo, você pode exigir que seu quadro de funcionários ou suas identidades federadas especifiquem um valor para a identidade-fonte. É possível configurar seu provedor de identidade (IdP) para usar um dos atributos associados aos usuários, como um nome de usuário ou e-mail como a identidade-fonte. O IdP então passa a identidade-fonte como um atributo nas declarações ou reivindicações que envia para a AWS. O valor do atributo de identidade-fonte identifica o usuário ou a aplicação que está assumindo a função.  
Depois que o usuário assume a função, a atividade aparece nos [logs do AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) com o valor de identidade-fonte que foi definido. Isso torna mais fácil para os administradores determinar quem ou o que executou ações com uma função na AWS. Você deve conceder permissões para a ação `sts:SetSourceIdentity` para permitir que uma identidade defina uma identidade-fonte.   
Ao contrário de [`sts:RoleSessionName`](#ck_rolesessionname), após a definição da identidade-fonte, o valor não pode ser alterado. Ele está presente no contexto de solicitação para todas as ações executadas com a função pela identidade-fonte. O valor persiste nas sessões de função subsequentes quando você usa as credenciais da sessão para assumir outra função. Assumir uma função de outra é chamado de [encadeamento de funções](id_roles.md#iam-term-role-chaining).   
É possível usar a chave de condição global [`aws:SourceIdentity`](reference_policies_condition-keys.md#condition-keys-sourceidentity) para controlar ainda mais o acesso a recursos da AWS com base no valor da identidade-fonte em solicitações subsequentes.   
A política de confiança de função a seguir permite que o usuário do IAM`AdminUser` assuma uma função na conta `111122223333`. Ela também concede permissão para o `AdminUser` definir uma identidade-fonte, desde que o conjunto de identidades de origem seja `DiegoRamirez`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdminUserAssumeRole",
            "Effect": "Allow",
            "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"}
            }
        }
    ]
}
```
Para saber mais sobre como usar informações de identidade-fonte, consulte [Monitorar e controlar ações realizadas com funções assumidas](id_credentials_temp_control-access_monitor.md).

**sts:TaskPolicyArn**  
Funciona com [operadores de nome de recurso da Amazon (ARN)](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Use essa chave para comparar o ARN da política em uma solicitação [sts:AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) com o ARN da política especificado na política.  
**Disponibilidade**: essa chave está presente na solicitação quando você faz uma solicitação usando [sts:AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html).  
Os administradores podem usar essa chave de condição nas políticas do IAM para restringir funções ou usuários específicos da conta gerencial ou da conta de administrador delegado de realizar determinadas ações ao assumir as credenciais raiz. Para obter mais informações, consulte [Execução de uma tarefa privilegiada em uma conta-membro do AWS Organizations](id_root-user-privileged-task.md).

**sts:TransitiveTagKeys**  
Funciona com [operadores de string](reference_policies_elements_condition_operators.md#Conditions_String).  
Use esta chave para comparar as chaves de tag de sessão transitiva na solicitação com as especificadas na política.   
**Disponibilidade**: essa chave está presente na solicitação quando você faz uma solicitação usando credenciais de segurança temporárias. Elas incluem credenciais criadas usando qualquer operação assume-role, ou a operação `GetFederationToken`.  
Ao fazer uma solicitação usando credenciais de segurança temporárias, o [contexto da solicitação](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext) inclui a chave de contexto `aws:PrincipalTag`. Essa chave inclui uma lista de [tags de sessão](id_session-tags.md), [tags de sessão transitivas](id_session-tags.md#id_session-tags_role-chaining) e tags de função. As tags de sessão transitivas são tags que persistem em todas as sessões subsequentes quando você usa as credenciais da sessão para assumir outra função. Assumir uma função de outra é chamado de [encadeamento de funções](id_roles.md#iam-term-role-chaining).   
É possível usar essa chave de condição em uma política para exigir a configuração de tags de sessão específicas como transitivas ao assumir um perfil ou federar um usuário.

# Ações, recursos e chaves de condição dos serviços da AWS
<a name="reference_policies_actions-resources-contextkeys"></a>

Cada serviço da AWS pode definir ações, recursos e chaves de contexto de condição para uso em políticas do IAM. Para obter uma lista de serviços do AWS e suas ações, recursos e chaves de contexto de condição, consulte [Ações, recursos e chaves de condição ](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) na documentação de *Referência de autorização de serviço.*