Chaves de contexto de condição globais da AWS - AWS Identity and Access Management

Chaves de contexto de condição globais da AWS

Quando um principal faz uma solicitação à AWS, a AWS reúne as informações da solicitação em um contexto de solicitação. É 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. 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 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 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.

"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 ter mais informações, consulte Chaves de contexto de múltiplos valores.

Propriedades da entidade principal

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 Especificar um principal.

aws:PrincipalArn

Use essa chave para comparar o nome de recurso da Amazon (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. Você pode especificar os seguintes tipos de entidades principais nesta chave de condição:

    • IAM role (Perfil do IAM)

    • IAM user (Usuário do IAM)

    • Sessão de usuário federado do AWS STS

    • Usuário raiz da Conta da AWS

  • Tipo de dados: ARN, String

    A AWS recomenda utilizar operadores ARN em vez de operadores 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 :

    • 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.

      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
    • Sessões de usuário federado do AWS STS: o contexto da solicitação contém o seguinte valor 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 seguinte valor 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.

      arn:aws:iam::123456789012:root

Você pode 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 SCP effects on permissions (Efeitos das SCPs nas permissões) no Guia do usuário do Organizations.

aws:PrincipalAccount

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

  • Tipo de valor: valor único

No exemplo a seguir, o acesso é negado, exceto para entidades principais com o número de conta123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:accountID:resource" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }

aws:PrincipalOrgPaths

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, um usuário federado ou um 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 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 os caminhos, consulte Compreender o caminho da entidade do AWS Organizations.

  • Disponibilidade: essa chave é incluída no contexto da solicitação somente se a entidade de segurança for membro de uma organização. As solicitações anônimas não incluem essa chave.

  • Tipo de dados: 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 Chaves de contexto de múltiplos valores.

"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }

aws:PrincipalOrgID

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 de segurança for membro de uma organização. As solicitações anônimas não incluem essa chave.

  • Tipo de dados: 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. Você pode usar essa chave de condição para simplificar a especificação do elemento Principal em uma política baseada no recurso. É possível especificar o ID da organização 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 policy-ninja-dev.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::policy-ninja-dev/*", "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.

Para obter informações sobre o AWS Organizations, consulte O que é AWS Organizations? no Guia do usuário do AWS Organizations.

aws:PrincipalTag/tag-key

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 de segurança estiver usando um usuário do IAM com etiquetas anexadas. Ela será incluída para uma entidade de segurança usando uma função do IAM com etiquetas anexadas ou etiquetas de sessão. As solicitações anônimas não incluem essa chave.

  • Tipo de dados: 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 Recursos de etiquetas do IAM. Você pode usar aws:PrincipalTag para controlar acesso de 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 ou editar uma política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/department": "hr" } } } ] }

aws:PrincipalIsAWSService

Use esta chave para verificar se a chamada para o seu recurso está sendo feita diretamente por uma entidade de segurança do produto da AWS. Por exemplo, o AWS CloudTrail usa a entidade de segurança 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 de segurança 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 de segurança do IAM para fazer uma solicitação em nome da entidade de segurança. Também é definida como false se o serviço usar uma função de serviço ou função vinculada ao serviço para fazer uma chamada em nome da entidade de segurança.

  • 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

  • Tipo de valor: valor único

Você pode 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 de segurança de serviço, como o CloudTrail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-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:PrincipalServiceName

Use esta chave para comparar o nome da entidade de segurança de serviço na política com a entidade de segurança de serviço que está fazendo solicitações aos seus recursos. Você pode usar essa chave para verificar se essa chamada é feita por uma entidade de segurança de serviço específica. Quando uma entidade de segurança do serviço faz uma solicitação direta ao seu recurso, a chave aws:PrincipalServiceName contém o nome da entidade de segurança do serviço. Por exemplo, o nome da entidade de segurança do serviço AWS CloudTrail é cloudtrail.amazonaws.com.

  • Disponibilidade: essa chave está presente na solicitação quando a chamada é feita por uma entidade de segurança de produto da AWS. Esta chave não está presente em nenhuma outra situação, incluindo a seguinte:

    • se o serviço usa uma função de serviço ou uma função vinculada ao serviço para fazer uma chamada em nome da entidade de segurança.

    • Se o serviço usar as credenciais de uma entidade de segurança do IAM para fazer uma solicitação em nome da entidade de segurança.

    • Se a chamada for feita diretamente por uma entidade de segurança do IAM.

    • Se a chamada for feita por um solicitante anônimo.

  • Tipo de dados: String

  • Tipo de valor: valor único

Você pode 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 de segurança de serviço, como o CloudTrail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/AWSLogs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }

aws:PrincipalServiceNamesList

Essa chave fornece uma lista de todos os nomes de entidade de segurança de serviço que pertencem ao serviço. Esta é uma chave de condição avançada. Você pode 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. Você pode limitar o acesso a um recurso para uma instância específica do serviço. Quando uma entidade de segurança 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 de segurança de produto da AWS. Esta chave não está presente em nenhuma outra situação, incluindo a seguinte:

    • se o serviço usa uma função de serviço ou uma função vinculada ao serviço para fazer uma chamada em nome da entidade de segurança.

    • Se o serviço usar as credenciais de uma entidade de segurança do IAM para fazer uma solicitação em nome da entidade de segurança.

    • Se a chamada for feita diretamente por uma entidade de segurança do IAM.

    • Se a chamada for feita por um solicitante anônimo.

  • Tipo de dados: 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 para essa chave. Para obter mais informações sobre chaves de condição de vários valores, consulte Chaves de contexto de múltiplos valores.

aws:PrincipalType

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 ter mais informações, consulte Especificar um principal. Para exemplos específicos de valores de chave de principal, consulte Valores de chave de principal.

  • Availability (Disponibilidade): essa chave é incluída no contexto da solicitação para todas as solicitações, incluindo as anônimas.

  • Tipo de dados: String

  • Tipo de valor: valor único

aws:userid

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 Especificar um principal. Para exemplos específicos de valores de chave de principal, consulte Valores de chave de principal.

  • Availability (Disponibilidade): essa chave é incluída no contexto da solicitação para todas as solicitações, incluindo as anônimas.

  • Tipo de dados: String

  • Tipo de valor: valor único

aws:username

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 Especificar um principal. Para exemplos específicos de valores de chave de principal, consulte Valores de chave de principal.

  • 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

  • Tipo de valor: valor único

Propriedades de uma sessão de perfil

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 usuário federado. Os valores dessas chaves de condição estão incorporados no token de sessão do perfil.

Um perfil é um tipo de entidade principal. Você também pode usar as chaves de condição da seção Propriedades da entidade principal para avaliar as propriedades de um perfil quando um perfil está fazendo uma solicitação.

aws:FederatedProvider

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 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 quando a entidade principal é uma entidade principal da sessão do perfil e a sessão foi emitida usando um perfil que foi assumido com AssumeRoleWithWebIdentity.

  • Tipo de dados: String

  • Tipo de valor: valor único

Por exemplo, se o usuário foi autenticado por meio do Amazon Cognito, o contexto da solicitação incluirá o valor cognito-identity.amazonaws.com. Da mesma forma, se o usuário foi autenticado por meio do Login with Amazon, o contexto da solicitação incluirá o valor www.amazon.com.

É possível usar qualquer chave de condição de valor único disponível como uma variável. O seguinte exemplo de política com base em recursos usa a chave aws:FederatedProvider como uma variável de política no ARN de um recurso. Essa política permite que qualquer entidade principal que fez autenticação usando um IdP obtenha objetos de um bucket do Amazon S3 com um caminho que é específico para o provedor de identidade emissor.

aws:TokenIssueTime

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 de segurança 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

  • Tipo de valor: valor único

Para saber quais serviços oferecem suporte a credenciais de segurança temporárias, consulte Serviços da AWS que funcionam com o IAM.

aws:MultiFactorAuthAge

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 Uso de autenticação multifator (MFA) na AWS.

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 Configuração de acesso à API protegido por MFA.

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. Para aplicar a MFA às identidades do Centro de Identidade do IAM, você pode habilitar atributos de controle de acesso 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 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

  • Tipo de valor: valor único

aws:MultiFactorAuthPresent

Use essa chave para verificar se a autenticação multifator (MFA) foi usada para validar as credenciais de segurança temporárias 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 Configuração de acesso à API protegido por MFA.

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. Para aplicar a MFA às identidades do Centro de Identidade do IAM, você pode habilitar atributos de controle de acesso 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 de segurança 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

  • 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 ou GetSessionToken e usuários do AWS Management Console.

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 AWS Management Console 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 AWS 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 Serviços da AWS que funcionam com o IAM.

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 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 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:Ec2InstanceSourceVpc

Essa chave identifica a VPC para a qual as credenciais de perfil do IAM do Amazon EC2 foram entregues. Você pode usar essa chave em uma política com a chave global aws: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

  • 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.

nota

Essa chave de condição não está disponível no EC2-Classic.

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

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

  • 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.

nota

Essa chave de condição não está disponível no EC2-Classic.

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

Use essa chave para comparar a identidade-fonte definida pela entidade de segurança 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

  • Tipo de valor: valor único

Você pode 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 uma função. A atividade para a identidade-fonte especificada da função aparece no AWS CloudTrail. 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, 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.

A chave sts:SourceIdentity está presente na solicitação quando a entidade de segurança inicialmente define uma identidade-fonte enquanto assume uma função usando qualquer comando de assumir função 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 função a seguir para CriticalRole na conta 111122223333 contém uma condição para aws:SourceIdentity que impede que uma entidade de segurança sem uma identidade-fonte definida como Saanvi ou Diego assuma a função.

{ "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.

ec2:RoleDelivery

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

  • 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.

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.

{ "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.

ec2:SourceInstanceArn

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

  • Tipo de valor: valor único

  • Valor de exemplo: 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.

glue:RoleAssumedBy

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

  • 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:::confidential-bucket/*", "Condition": { "StringEquals": { "glue:RoleAssumedBy": "glue.amazonaws.com" } } }

glue:CredentialIssuingService

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

  • 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:::confidential-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }

lambda:SourceFunctionArn

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

  • 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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleSourceFunctionArn", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-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 no Guia do desenvolvedor do AWS Lambda.

ssm:SourceInstanceArn

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

  • Tipo de valor: valor único

  • Valor de exemplo: arn:aws:ec2:us-west-2:111111111111:instance/instance-id

identitystore:UserId

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

  • Tipo de valor: valor único

  • Valor de exemplo: 94482488-3041-7026-18f3-be45837cd0e4

Você pode encontrar o UserId de um usuário no IAM Identity Center fazendo uma solicitação à API GetUserId usando a AWS CLI, a API da AWS ou AWS SDK.

Propriedades da rede

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

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

  • 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 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 DOC-EXAMPLE-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 faça essa operação em seu nome.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-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 DOC-EXAMPLE-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 no Guia do usuário da Amazon VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-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. 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 no Guia do AWS PrivateLink.

aws:SourceVpc

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 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

  • Tipo de valor: valor único

aws:SourceVpce

Use essa chave para comparar o identificador do VPC endpoint da solicitação com o ID do endpoint especificado na política. 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 o acesso a um endpoint da VPC específico 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

  • Tipo de valor: valor único

aws:VpcSourceIp

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

  • Tipo de valor: valor único

Para obter mais informações, consulte Controlar o acesso a serviços com VPC endpoints no Guia do usuário da Amazon VPC.

nota

O aws:VpcSourceIp 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 no Guia do usuário da Amazon VPC.

Propriedades do recurso

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

Use essa chave para comparar o ID da Conta da AWS 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

    • Amazon Elastic Block Store: todas as ações

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopyImage

      • ec2:CopySnapshot

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • 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 no Guia do usuário do Amazon EventBridge.

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • Amazon OpenSearch Service

      • es:AcceptInboundConnection

      • es:CreateOutboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • AWS Security Hub

      • securityhub:AcceptAdministratorInvitation

  • Tipo de dados: 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.

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 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:::DOC-EXAMPLE-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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:account:*" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account" ] } } } ] }

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 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 do serviço.

aws:ResourceOrgPaths

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

  • Availability (Disponibilidade): essa chave só é incluída no contexto da solicitação se a entidade de segurança 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

    • Amazon Elastic Block Store: todas as ações

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopyImage

      • ec2:CopySnapshot

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • 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 no Guia do usuário do Amazon EventBridge.

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • Amazon OpenSearch Service

      • es:AcceptInboundConnection

      • es:CreateOutboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • AWS Security Hub

      • securityhub:AcceptAdministratorInvitation

  • Tipo de dados: 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.

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 para essa chave. Para obter mais informações sobre chaves de condição de vários valores, consulte Chaves de contexto de múltiplos valores.

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.

"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 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 demonstra como negar acesso com base na conta do recurso ao definir exceções para recursos de propriedade do serviço. Você pode 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 do serviço.

aws:ResourceOrgID

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 de segurança 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

    • Amazon Elastic Block Store: todas as ações

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopyImage

      • ec2:CopySnapshot

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • 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 no Guia do usuário do Amazon EventBridge.

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • Amazon OpenSearch Service

      • es:AcceptInboundConnection

      • es:CreateOutboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • AWS Security Hub

      • securityhub:AcceptAdministratorInvitation

  • Tipo de dados: 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.

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. É possível especificar o ID da organização 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.

{ "Version": "2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:partition: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 demonstra como negar acesso com base na conta do recurso ao definir exceções para recursos de propriedade do serviço. Você pode 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 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:ResourceTag/tag-key

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 ter mais informações, consulte Controlar o acesso aos recursos do AWS.

  • 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. Há uma chave de contexto para cada par de chave/valor de tag.

  • Tipo de dados: 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 e os valores de etiquetas 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.

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.

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.

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.

Propriedades da solicitação

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

Use essa chave para comparar os serviços na política com os serviços que fizeram solicitações em nome da entidade de segurança do IAM (usuário ou função). 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. A chave aws:CalledVia contém uma lista ordenada de cada serviço na cadeia que fez solicitações em nome do principal.

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 peloAWS Key Management Service (AWS KMS).

  • Disponibilidade: essa chave está presente na solicitação quando um serviço que oferece suporte a aws:CalledVia usa as credenciais de uma entidade de segurança do IAM para fazer uma solicitação a outro serviço. Esta chave não está presente se o serviço usa uma função de serviço ou função vinculada ao serviço para fazer uma chamada em nome do principal. Esta chave também não está presente quando o principal faz a chamada diretamente.

  • Tipo de dados: 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 de serviço para conceder ou negar solicitações de serviço da AWS. A AWS oferece suporte ao uso das seguintes entidades principais de serviço com aws:CalledVia.

Entidade principal do serviço
aoss.amazonaws.com
athena.amazonaws.com
backup.amazonaws.com
cloud9.amazonaws.com
cloudformation.amazonaws.com
databrew.amazonaws.com
dataexchange.amazonaws.com
dynamodb.amazonaws.com
imagebuilder.amazonaws.com
kms.amazonaws.com
mgn.amazonaws.com
nimble.amazonaws.com
omics.amazonaws.com
ram.amazonaws.com
robomaker.amazonaws.com
servicecatalog-appregistry.amazonaws.com
sqlworkbench.amazonaws.com
ssm-guiconnect.amazonaws.com

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. 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 AWS 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 AWS CloudFormation e, depois, via DynamoDB.

Exemplo de uso do aws:CalledVia

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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region: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:CalledViaLast e aws:CalledViaFirst. 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 AWS CloudFormation e a última pelo DynamoDB. Se outros serviços fizerem solicitações no meio da cadeia, a operação ainda será permitida.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region: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 de segurança 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 AWS 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 AWS CloudFormation, depois, X Service e depois DynamoDB. Ele foi chamado pela primeira vez por meio do AWS CloudFormation e a última chamada foi feita por meio do DynamoDB.

Exemplo de uso de aws:CalledViaFirst e aws:CalledViaLast

aws:CalledViaFirst

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 de segurança do IAM (usuário ou função). Para ter mais informações, consulte aws:CalledVia.

  • Disponibilidade: essa chave está presente na solicitação quando um serviço usa as credenciais de uma entidade de segurança do IAM para fazer pelo menos uma outra solicitação a um serviço diferente. Esta chave não está presente se o serviço usa uma função de serviço ou função vinculada ao serviço para fazer uma chamada em nome do principal. Esta chave também não está presente quando o principal faz a chamada diretamente.

  • Tipo de dados: String

  • Tipo de valor: valor único

aws:CalledViaLast

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 de segurança do IAM (usuário ou função). Para ter mais informações, consulte aws:CalledVia.

  • Disponibilidade: essa chave está presente na solicitação quando um serviço usa as credenciais de uma entidade de segurança do IAM para fazer pelo menos uma outra solicitação a um serviço diferente. Esta chave não está presente se o serviço usa uma função de serviço ou função vinculada ao serviço para fazer uma chamada em nome do principal. Esta chave também não está presente quando o principal faz a chamada diretamente.

  • Tipo de dados: String

  • Tipo de valor: valor único

aws:ViaAWSService

Use esta chave para verificar se um serviço da AWS faz uma solicitação para outro serviço em seu nome.

A chave de contexto da solicitação retorna true quando um serviço usa as credenciais de uma entidade de segurança do IAM para fazer uma solicitação em nome da entidade de segurança. Esta chave retorna false se o serviço usa uma função de serviço ou função vinculada ao serviço para fazer uma chamada em nome do principal. 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

  • Tipo de valor: valor único

Você pode usar essa chave de condição para conceder ou negar acesso baseado no fato de uma solicitação ter sido feita por um serviço.

aws:CurrentTime

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.

  • Disponibilidade: essa chave é sempre incluída no contexto da solicitação.

  • Tipo de dados: Data

  • Tipo de valor: valor único

aws:EpochTime

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, Numérico

  • Tipo de valor: valor único

aws:referer

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

  • 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. 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. Você pode 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

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 na Referência geral da Amazon Web Services.

  • Disponibilidade: essa chave é sempre incluída no contexto da solicitação.

  • Tipo de dados: 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.

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.

  • Você pode 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 AWS Management Console. 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).

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

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 ter mais informações, consulte Controlar o acesso durante solicitações do AWS.

  • 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

  • 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 e os valores de etiquetas 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.

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.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }

aws:TagKeys

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.

  • 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 (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. Nesse caso, você deve usar os operadores de conjunto ForAllValues ou ForAnyValue. Para ter mais informações, consulte Chaves de contexto de múltiplos valores.

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 no Guia do usuário do Amazon EC2.

aws:SecureTransport

Use essa chave para verificar se a solicitação foi enviada usando SSL. O contexto da solicitação retorna true ou false. Em uma política, será possível permitir ações específicas somente se a solicitação for enviada usando SSL.

  • Disponibilidade: essa chave é sempre incluída no contexto da solicitação.

  • Tipo de dados: Booleano

  • Tipo de valor: valor único

aws:SourceArn

Use essa chave para comparar o nome do recurso da Amazon (ARN) 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 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.

    aws:SourceArn

    As seguintes integrações de serviços não são compatíveis com essa chave de condição global:

    Serviço que chama (entidade principal do serviço) Serviço chamado (política baseada em recursos) Descrição
    logdelivery.elb.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    nota

    Nem todas as integrações de serviços com o AWS Security Token Service (AWS STS) e AWS Key Management Service (AWS KMS) são compatíveis. Consulte a documentação do serviço que faz a chamada para obter mais informações. O uso de aws:SourceArn nas políticas de chave do KMS para as chaves usadas pelos Serviços da AWS por meio de concessões de chaves do KMS pode causar um comportamento inesperado.

  • Tipo de dados: ARN, String

    A AWS recomenda utilizar operadores ARN em vez de operadores string ao comparar ARNs.

  • Tipo de valor: valor único

Você pode usar essa chave de condição para impedir que um produto da AWS seja usado como um confused deputy durante transações entre os serviços. Só use essa chave em políticas baseadas em recursos nas quais a Principal é a entidade principal do AWS service (Serviço da AWS). Defina o valor desta chave de condição para o ARN do recurso na solicitação. Por exemplo, quando a atualização de um bucket do Amazon S3 aciona a publicação de um tópico do Amazon SNS, o serviço Amazon S3 invoca a operação de API sns:Publish. 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 informações sobre como e quando essa chave de condição é recomendada, consulte a documentação dos serviços da AWS que você está usando.

aws:SourceAccount

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 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.

    aws:SourceAccount

    As seguintes integrações de serviços não são compatíveis com essa chave de condição global:

    Serviço que chama (entidade principal do serviço) Serviço chamado (política baseada em recursos) Descrição
    logdelivery.elb.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    nota

    Nem todas as integrações de serviços com o AWS Security Token Service (AWS STS) e AWS Key Management Service (AWS KMS) são compatíveis. Consulte a documentação do serviço que faz a chamada para obter mais informações. O uso de aws:SourceAccount nas políticas de chave do KMS para as chaves usadas pelos Serviços da AWS por meio de concessões de chaves do KMS pode causar um comportamento inesperado.

  • Tipo de dados: String

  • Tipo de valor: valor único

Você pode usar essa chave de condição para impedir que um produto da AWS seja usado como um confused deputy durante transações entre os serviços. Só use essa chave em políticas baseadas em recursos nas quais a Principal é a entidade principal do AWS service (Serviço da AWS). Defina o valor dessa chave de condição como o ID da conta do recurso na solicitação. Por exemplo, quando a atualização de um bucket do Amazon S3 aciona a publicação de um tópico do Amazon SNS, o serviço Amazon S3 invoca a operação de API sns:Publish. 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. Para obter informações sobre como e quando essas chaves de condições são recomendadas, consulte a documentação dos serviços da AWS que você está usando.

aws:SourceOrgPaths

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 do Organizations é uma representação de texto da estrutura de uma entidade do Organizations. Para obter mais informações sobre como usar e entender os caminhos, consulte Entender o caminho da entidade do AWS Organizations.

  • 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 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.

    aws:SourceOrgPaths

    As seguintes integrações de serviços não são compatíveis com essa chave de condição global:

    Serviço que chama (entidade principal do serviço) Serviço chamado (política baseada em recursos) Descrição
    logdelivery.elb.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    Todas as entidades principais do serviço Bot do Amazon Lex Permitir que os Serviços da AWS usem o bot do Amazon Lex
    nota

    Nem todas as integrações de serviços com o AWS Security Token Service (AWS STS) e AWS Key Management Service (AWS KMS) são compatíveis. Consulte a documentação do serviço que faz a chamada para obter mais informações. O uso de aws:SourceOrgPaths nas políticas de chave do KMS para as chaves usadas pelos Serviços da AWS por meio de concessões de chaves do KMS pode causar um comportamento inesperado.

  • Tipo de dados: String (lista)

  • Tipo de valor: valores múltiplos

Você pode usar essa chave de condição para impedir que um produto da AWS seja usado como um confused deputy durante transações entre os serviços. Só use essa chave em políticas baseadas em recursos nas quais a Principal é a entidade principal do AWS service (Serviço da AWS). Defina o valor dessa chave de condição como o caminho da organização do recurso na solicitação. Por exemplo, quando a atualização de um bucket do Amazon S3 aciona a publicação de um tópico do Amazon SNS, o serviço Amazon S3 invoca a operação de API sns:Publish. Na política de tópico que permite a operação sns:Publish, defina o valor da chave de condição como o caminho da organização do bucket do Amazon S3. Para obter informações sobre como e quando essa chave de condição é recomendada, consulte a documentação dos serviços da AWS que você está usando.

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 para essa chave. Para obter mais informações sobre chaves de condição de vários valores, consulte Chaves de contexto de múltiplos valores.

aws:SourceOrgID

Use essa chave para comparar o ID da organização 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 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.

    aws:SourceOrgID

    As seguintes integrações de serviços não são compatíveis com essa chave de condição global:

    Serviço que chama (entidade principal do serviço) Serviço chamado (política baseada em recursos) Descrição
    logdelivery.elb.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket do Amazon S3 Habilitar o registro em log de acesso do Elastic Load Balancing em um bucket do Amazon S3
    Todas as entidades principais do serviço Bot do Amazon Lex Permitir que os Serviços da AWS usem o bot do Amazon Lex
    nota

    Nem todas as integrações de serviços com o AWS Security Token Service (AWS STS) e AWS Key Management Service (AWS KMS) são compatíveis. Consulte a documentação do serviço que faz a chamada para obter mais informações. O uso de aws:SourceOrgID nas políticas de chave do KMS para as chaves usadas pelos Serviços da AWS por meio de concessões de chaves do KMS pode causar um comportamento inesperado.

  • Tipo de dados: String

  • Tipo de valor: valor único

Você pode usar essa chave de condição para impedir que um produto da AWS seja usado como um confused deputy durante transações entre os serviços. Só use essa chave em políticas baseadas em recursos nas quais a Principal é a entidade principal do AWS service (Serviço da AWS). Defina o valor dessa chave de condição como o ID da organização do recurso na solicitação. Por exemplo, quando a atualização de um bucket do Amazon S3 aciona a publicação de um tópico do Amazon SNS, o serviço Amazon S3 invoca a operação de API sns:Publish. 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 organização do bucket do Amazon S3. Para obter informações sobre como e quando essa chave de condição é recomendada, consulte a documentação dos serviços da AWS que você está usando.

aws:UserAgent

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

  • 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. Você pode usá-lo para permitir apenas aplicações cliente específicas, e somente depois de testar sua política.

Outras chaves de condição nos serviços

O AWS STS oferece suporte a chaves de condição de federação baseadas em SAML e chaves de condição entre serviços para federação OIDC. Essas chaves estão disponíveis quando um usuário que foi federado usando SAML executa AWS operações em outros serviços.