Chaves de contexto de condição do IAM e do AWS STS - AWS Identity and Access Management

Chaves de contexto de condição do IAM e do AWS STS

Você pode usar o elemento Condition em uma política JSON para testar o valor das chaves que estão incluídas no contexto de solicitação de todas as solicitações da AWS. Essas chaves fornecem informações sobre a solicitação em si, ou os recursos referenciados pela solicitação. Você pode verificar que as chaves foram especificadas antes de permitir a ação solicitada pelo usuário. Isso oferece a você controle granular sobre quando as instruções de sua política JSON correspondem ou não a uma solicitação recebida. Para obter informações sobre como usar o elemento Condition em uma política JSON, consulte Elementos de política JSON do IAM: Condition.

Este tópico descreve as chaves definidas e fornecidas pelo serviço IAM (com um prefixo iam:) e o serviço AWS Security Token Service (AWS STS) (com um prefixo sts:). Vários outros serviços da AWS também fornecem chaves específicas de serviços que são relevantes para as ações e os recursos definidos por esse serviço. Para obter mais informações, consulte Ações, recursos e chaves de condição de serviços da AWS. A documentação de um serviço que dá suporte a chaves de condição, muitas vezes, tem informações adicionais. Por exemplo, para obter informações sobre chaves que você pode usar em políticas para recursos do Amazon S3, consulte Chaves de política do Amazon S3 no Guia do desenvolvedor do Amazon Simple Storage Service.

Teclas disponíveis para o IAM

Você pode usar as seguintes chaves de condição em políticas que controlam o acesso aos recursos do IAM:

iam:AssociatedResourceArn

Funciona com operadores de nome de recurso da Amazon (ARN).

Especifica o ARN do recurso ao qual essa função será associada no serviço de destino. O recurso geralmente pertence ao serviço ao qual o principal está transmitindo a função. Às vezes, o recurso pode pertencer a um terceiro serviço. Por exemplo, você pode passar uma função para o Amazon EC2 Auto Scaling que seja usada em uma instância do Amazon EC2. Nesse caso, a condição corresponderia ao ARN da instância do Amazon EC2.

Essa chave de condição se aplica somente à ação PassRole em uma política. Ela não pode ser usada para limitar nenhuma outra ação.

Use essa chave de condição em uma política para permitir que uma entidade transmita uma função, mas somente se essa função estiver associada ao recurso especificado. Você pode usar curingas (*) para permitir operações executadas em um tipo específico de recurso sem restringir a região ou o ID do recurso. Por exemplo, você pode permitir que um usuário ou uma função do IAM passe qualquer função para o serviço Amazon EC2 para ser usado com instâncias na região us-east-1 ou us-west-1. O usuário ou a função do IAM não terá permissão para passar funções para outros serviços. Além disso, ele não permite que o Amazon EC2 use a função com instâncias em outras regiões.

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": {"iam:PassedToService": "ec2.amazonaws.com"}, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:us-east-1:111122223333:instance/*", "arn:aws:ec2:us-west-1:111122223333:instance/*" ] } } }
nota

Os serviços da AWS que oferecem suporte ao IAM:PassedToService também oferecem suporte a esta chave de condição.

iam:AWSServiceName

Funciona com operadores de string.

Especifica o serviço da AWS para o qual essa função é anexada.

iam:OrganizationsPolicyId

Funciona com operadores de string.

Verifica se a política com o ID do AWS Organizations especificado corresponde à política usada na solicitação. Para ver um exemplo de política do IAM que use essa chave de condição, consulte IAM: visualizar as informações do último acesso ao serviço para uma política do Organizations.

iam:PassedToService

Funciona com operadores de string.

Especifica o serviço principal do serviço para o qual uma função pode ser transmitida. Essa chave de condição se aplica somente à ação PassRole em uma política. Ela não pode ser usada para limitar nenhuma outra ação.

Ao usar essa chave de condição em uma política, especifique o serviço usando um principal de serviço. Um serviço principal é o nome de um serviço que pode ser especificado no elemento Principal de uma política. Este é o formato normal: SERVICE_NAME_URL.amazonaws.com.

Você pode usar iam:PassedToService para restringir os usuários, para que eles possam passar funções apenas para serviços específicos. Por exemplo, um usuário pode criar uma função de serviço que confia no CloudWatch para gravar dados de log em um bucket do Amazon S3 em seu nome. Em seguida, o usuário deve anexar uma política de permissões e uma política de confiança para a nova função de serviço. Nesse caso, a política de confiança deve especificar cloudwatch.amazonaws.com no elemento Principal. Para visualizar uma política que permite ao usuário passar a função para o CloudWatch, consulte IAM: Passar uma função do IAM para um produto da AWS específico.

Ao usar essa chave de condição, você pode garantir que os usuários criem funções de serviço apenas pelos serviços que você especificar. Por exemplo, se um usuário com a política anterior tentar criar uma função de serviço para o Amazon EC2, a operação falhará. A falha ocorre porque o usuário não tem permissão para passar a função para o Amazon EC2.

Às vezes, você passa uma função para um serviço que, em seguida, passa a função para outro serviço. iam:PassedToService inclui apenas o serviço final que assume a função, não o serviço intermediário que passa a função.

nota

Alguns serviços, como o AWS CodeBuild e o AWS CodeCommit não são compatíveis com essa chave de condição.

iam:PermissionsBoundary

Funciona com operadores de string.

Verifica se a política especificada está anexada como limite de permissões no recurso da entidade de segurança do IAM. Para obter mais informações, consulte . Limites de permissões para entidades do IAM

iam:PolicyARN

Funciona com operadores de nome de recurso da Amazon (ARN).

Verifica o nome de recurso da Amazon (ARN) de uma política gerenciada em solicitações que envolvem uma política gerenciada. Para obter mais informações, consulte Controle de acesso a políticas.

iam:ResourceTag/key-name

Funciona com operadores de string.

Verifica se a tag anexada ao recurso de identidade (usuário ou função) corresponde ao nome e ao valor da chave especificada.

nota

O IAM e o AWS STS são compatíveis com a chave de condição do IAM iam:ResourceTag e a chave de condição global aws:ResourceTag.

Você pode adicionar atributos personalizados aos recursos do IAM na forma de um par de chave-valor. Para obter mais informações sobre etiquetas de recursos do IAM, consulte Recursos de etiquetas do IAM. Você pode usar ResourceTag para controlar o acesso aos recursos da AWS, incluindo recursos do IAM. No entanto, como o IAM não oferece suporte a etiquetas para grupos, você não pode usar etiquetas para controlar o acesso a grupos.

Este exemplo mostra como você pode criar uma política do IAM que permite excluir usuários com a etiqueta status=terminated. Para usar esta política, substitua o texto do espaço reservado em itálico na política de exemplo por suas próprias informações. Em seguida, siga as instruções em criar uma política ou editar uma política.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:DeleteUser", "Resource": "*", "Condition": {"StringLike": {"iam:ResourceTag/status": "terminated"}} }] }

Chaves disponíveis para federação de identidades da web da AWS

É possível usar a federação de identidades da web para fornecer credenciais de segurança temporárias a usuários que foram autenticados por meio de um provedor de identidade (IdP). Exemplos desses provedores incluem Login with Amazon, Amazon Cognito, Google ou Facebook. Nesse caso, chaves de condição adicionais estarão disponíveis quando as credenciais de segurança temporárias forem usadas para fazer uma solicitação. Você pode usar essas chaves para criar políticas que limitam o acesso de usuários federados a recursos associados a um provedor, aplicativo ou usuário específico. Essas chaves são normalmente usadas na política de confiança de uma função.

amr

Funciona com operadores de string.

Exemplo: cognito-identity.amazonaws.com.com:amr

Se você estiver usando o Amazon Cognito para a federação de identidades da web, a chave cognito-identity.amazonaws.com:amr (Referência de métodos de autenticação) incluirá informações de login sobre o usuário. A chave tem vários valores, o que significa que você a testa em uma política usando operadores do conjunto de condições. A chave pode conter os seguintes valores:

  • Se o usuário não estiver autenticado, a chave conterá apenas unauthenticated.

  • Se o usuário estiver autenticado, a chave conterá o valor authenticated e o nome do provedor de login usado na chamada (graph.facebook.com, accounts.google.com ou www.amazon.com).

Por exemplo, a seguinte condição na política de confiança para uma função do Amazon Cognito testa se o usuário não está autenticado:

"Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-2:identity-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } }
aud

Funciona com operadores de string.

Use a chave de condição aud para verificar se o ID do cliente do Google ou o ID do grupo de identidades do Amazon Cognito corresponde ao especificado na política. É possível usar a chave aud com a chave sub para o mesmo provedor de identidade.

Exemplos:

  • accounts.google.com:aud

  • cognito-identity.amazonaws.com:aud

A chave de condição accounts.google.com:aud corresponde aos campos de token de ID do Google a seguir.

  • aud para IDs de cliente do Google do OAuth 2.0 do aplicativo, quando o campo azp não estiver definido. Quando o campo azp estiver definido, o campo aud corresponderá à chave de condição accounts.google.com:oaud.

  • azp quando o campo azp estiver definido. Isso pode acontecer com aplicativos híbridos nos quais um aplicativo web e um aplicativo Android têm um ID de cliente do Google do OAuth 2.0 diferente, mas compartilham o mesmo projeto de APIs do Google.

Para obter mais informações sobre o Google e sobre os campos aud e azp, consulte o guia Google Identity Platform OpenID Connect.

Quando você escreve uma política usando a chave de condição accounts.google.com:aud, é necessário saber se o aplicativo é um aplicativo híbrido que define o campo azp.

azpCampo não definido

O exemplo de política a seguir funciona para aplicativos não híbridos que não definem o campo azp. Nesse caso, o valor do campo aud do token de ID do Google corresponde aos valores da chave de condição accounts.google.com:aud e accounts.google.com:oaud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "aud-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }

azpCampo definido

O exemplo de política a seguir funciona para aplicativos híbridos que definem o campo azp. Nesse caso, o valor do campo aud do token de ID do Google corresponde apenas ao valor da chave de condição accounts.google.com:oaud. O valor do campo azp corresponde ao valor da chave de condição accounts.google.com:aud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "azp-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }
id

Funciona com operadores de string.

Exemplos:

  • graph.facebook.com:app_id

  • graph.facebook.com:id

  • www.amazon.com:app_id

  • www.amazon.com:user_id

Use essas chaves para verificar se o ID do aplicativo (ou site) ou o ID do usuário corresponde àquele especificado na política. Isso funciona para o Facebook ou o Login with Amazon. É possível usar a chave app_id com a chave id para o mesmo provedor de identidade.

oaud

Funciona com operadores de string.

Exemplo: accounts.google.com:oaud

Se você usar o Google para a federação de identidades da web, essa chave especificará o público do Google (aud) ao qual esse token de ID se destina. Ela deve ser um dos IDs de cliente do OAuth 2.0 do aplicativo.

sub

Funciona com operadores de string.

Exemplos:

  • accounts.google.com:sub

  • cognito-identity.amazonaws.com:sub

Use essas chaves para verificar se o ID de usuário corresponde àquele especificado na política. É possível usar a chave sub com a chave aud para o mesmo provedor de identidade.

Mais informações sobre a federação de identidades da Web

Para obter mais informações sobre a federação de identidades da web, consulte o seguinte:

Chaves disponíveis para federação do AWS STS com base em SAML

Se você estiver trabalhando com federação baseada em SAML usando o AWS Security Token Service (AWS STS), poderá incluir chaves de condição adicionais na política.

Políticas de confiança da função do SAML

Na política de confiança de uma função, você pode incluir as seguintes chaves, que ajudam você a estabelecer se o chamador tem permissão para assumir a função. Exceto no caso de saml:doc, todos os valores são derivados da declaração de SAML. Todos os itens da lista estão disponíveis no editor visual do console do IAM quando você cria ou edita uma política com condições. Os itens marcados com [] podem ter um valor que seja uma lista do tipo especificado.

saml:aud

Funciona com operadores de string.

Um URL de endpoint para a qual as declarações de SAML são apresentadas. O valor dessa chave vem do campo SAML Recipient na declaração, nãodo campo Audience.

saml:commonName[]

Funciona com operadores de string.

Esse é um atributo commonName.

saml:cn[]

Funciona com operadores de string.

Esse é um atributo eduOrg.

saml:doc

Funciona com operadores de string.

Isso representa a entidade principal que foi usada para assumir a função. O formato é account-ID/provider-friendly-name, como 123456789012/SAMLProviderName. O valor account-ID se refere à conta que possui o provedor SAML.

saml:edupersonaffiliation[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonassurance[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonentitlement[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonnickname[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonorgdn

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonorgunitdn[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonprimaryaffiliation

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonprimaryorgunitdn

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonprincipalname

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersonscopedaffiliation[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:edupersontargetedid[]

Funciona com operadores de string.

Esse é um atributo eduPerson.

saml:eduorghomepageuri[]

Funciona com operadores de string.

Esse é um atributo eduOrg.

saml:eduorgidentityauthnpolicyuri[]

Funciona com operadores de string.

Esse é um atributo eduOrg.

saml:eduorglegalname[]

Funciona com operadores de string.

Esse é um atributo eduOrg.

saml:eduorgsuperioruri[]

Funciona com operadores de string.

Esse é um atributo eduOrg.

saml:eduorgwhitepagesuri[]

Funciona com operadores de string.

Esse é um atributo eduOrg.

saml:givenName[]

Funciona com operadores de string.

Esse é um atributo givenName.

saml:iss

Funciona com operadores de string.

O emissor, que é representado por um URN.

saml:mail[]

Funciona com operadores de string.

Esse é um atributo mail.

saml:name[]

Funciona com operadores de string.

Esse é um atributo name.

saml:namequalifier

Funciona com operadores de string.

Um valor de hash baseado no nome amigável do provedor SAML. O valor é a concatenação dos seguintes valores, em ordem e separados por um caractere '/':

  1. O valor da resposta Issuer (saml:iss)

  2. O ID da conta da AWS.

  3. O nome amigável (a última parte do ARN) do provedor SAML no IAM

A concatenação do ID da conta e do nome amigável do provedor SAML está disponível para as políticas do IAM como a chave saml:doc. Para obter mais informações, consulte Identificar exclusivamente os usuários na federação baseada em SAML.

saml:organizationStatus[]

Funciona com operadores de string.

Esse é um atributo organizationStatus.

saml:primaryGroupSID[]

Funciona com operadores de string.

Esse é um atributo primaryGroupSID.

saml:sub

Funciona com operadores de string.

Trata-se do assunto da solicitação, que inclui um valor que identifica de forma exclusiva um usuário individual em uma organização (por exemplo, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

saml:sub_type

Funciona com operadores de string.

Essa chave pode ter o valor persistent, transient ou consistir no URI Format completo dos elementos Subject e NameID usados em sua declaração SAML. O valor persistent indica que o valor em saml:sub é o mesmo para um usuário entre as sessões. Se o valor for transient, o usuário terá um valor saml:sub diferente para cada sessão. Para obter mais informações sobre o atributo NameID do elemento Format, consulte Configuração de declarações SAML para a resposta de autenticação.

saml:surname[]

Funciona com operadores de string.

Esse é um atributo surnameuid.

saml:uid[]

Funciona com operadores de string.

Esse é um atributo uid.

saml:x500UniqueIdentifier[]

Funciona com operadores de string.

Esse é um atributo x500UniqueIdentifier.

Para obter informações gerais sobre os atributos do eduPerson e eduOrg, consulte o REFEDS Wiki website (site Wiki do REFEDS). Para obter uma lista de atributos do eduPerson, consulte a eduPerson Object Class Specification (201602) (Especificação da classe de objeto eduPerson (201602)).

As chaves de condição cujo tipo é uma lista pode incluir vários valores. Para criar condições na política para listar os valores, você pode usar operadores definidos (ForAllValues, ForAnyValue). Por exemplo, para permitir qualquer usuário cuja afiliação seja "corpo docente" ou "equipe" (mas não "aluno"), você pode usar uma condição como a seguinte:

"Condition": { "ForAllValues:StringLike": { "saml:edupersonaffiliation":[ "faculty", "staff"] } }

Políticas de permissões de função do SAML

Na política de permissões de uma função para federação SAML que define quais usuários têm permissão de acesso na AWS, você pode incluir as seguintes chaves:

saml:namequalifier

Funciona com operadores de string.

Isso contém um valor de hash que representa a combinação dos valores saml:doc e saml:iss. Ele é usado como um qualificador de namespace; a combinação de saml:namequalifier e saml:sub identifica um usuário de forma exclusiva.

saml:sub

Funciona com operadores de string.

Trata-se do assunto da solicitação, que inclui um valor que identifica de forma exclusiva um usuário individual em uma organização (por exemplo, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

saml:sub_type

Funciona com operadores de string.

Essa chave pode ter o valor persistent, transient ou consistir no URI Format completo dos elementos Subject e NameID usados em sua declaração SAML. O valor persistent indica que o valor em saml:sub é o mesmo para um usuário entre as sessões. Se o valor for transient, o usuário terá um valor saml:sub diferente para cada sessão. Para obter mais informações sobre o atributo NameID do elemento Format, consulte Configuração de declarações SAML para a resposta de autenticação.

Para obter mais informações sobre como usar essas chaves, consulte Sobre a federação baseada em SAML 2.0.

Chaves disponíveis do AWS STS

É possível usar as chaves de condição a seguir nas políticas de confiança de função do IAM para funções que são assumidas usando operações do AWS Security Token Service (AWS STS).

sts:AWSServiceName

Funciona com operadores de string.

Use essa chave para especificar um serviço onde um token de portador pode ser usado. Ao usar essa chave de condição em uma política, especifique o serviço usando um principal de serviço. Um serviço principal é o nome de um serviço que pode ser especificado no elemento Principal de uma política. Por exemplo, codeartifact.amazonaws.com é o principal do serviço AWS CodeArtifact.

Alguns serviços da AWS exigem que você tenha permissão para obter um token de portador do serviço AWS STS para poder acessar seus recursos de forma programática. Por exemplo, o AWS CodeArtifact requer que os principais usem tokens de portador para executar algumas operações. O comando aws codeartifact get-authorization-token retorna um token de portador. Depois, é possível usar o token de portador para executar operações do AWS CodeArtifact. Para obter mais informações sobre tokens de portador, consulte Usar tokens de portador.

Disponibilidade: essa chave está presente em solicitações que recebem um token de portador. Não é possível fazer uma chamada direta ao AWS STS para obter um token de portador. Quando você executa algumas operações em outros serviços, o serviço solicita o token de portador em seu nome.

É possível usar essa chave de condição para permitir que os principais obtenham um token de portador para uso com um serviço específico.

sts:DurationSeconds

Funciona com operadores numéricos.

Use essa chave para especificar a duração (em segundos) que um principal pode usar ao obter um token de portador do AWS STS.

Alguns serviços da AWS exigem que você tenha permissão para obter um token de portador do serviço AWS STS para poder acessar seus recursos de forma programática. Por exemplo, o AWS CodeArtifact requer que os principais usem tokens de portador para executar algumas operações. O comando aws codeartifact get-authorization-token retorna um token de portador. Depois, é possível usar o token de portador para executar operações do AWS CodeArtifact. Para obter mais informações sobre tokens de portador, consulte Usar tokens de portador.

Disponibilidade: essa chave está presente em solicitações que recebem um token de portador. Não é possível fazer uma chamada direta ao AWS STS para obter um token de portador. Quando você executa algumas operações em outros serviços, o serviço solicita o token de portador em seu nome. A chave não está presente para operações assume-role do AWS STS.

sts:ExternalId

Funciona com operadores de string.

Use essa chave para exigir que uma entidade de segurança forneça um identificador específico ao assumir uma função do IAM.

Disponibilidade: essa chave está presente na solicitação quando a entidade de segurança fornece um ID externo enquanto assume uma função usando a AWS CLI ou a API da AWS.

Um identificador exclusivo que pode ser necessário ao assumir uma função em outra conta. Se o administrador da conta à qual a função pertence forneceu um ID externo para você, forneça esse valor no parâmetro ExternalId. Esse valor pode ser qualquer string, como uma frase secreta ou o número de uma conta. A função principal do ID externo é abordar e impedir o problema "confused deputy". Para obter mais informações sobre o ID externo e o problema confused deputy, consulte Como usar um ID externo ao conceder acesso aos seus recursos da AWS a terceiros.

O valor ExternalId deve ter no mínimo 2 e no máximo 1.224 caracteres. O valor deve ser alfanumérico sem espaço em branco. Ele também pode incluir os seguintes símbolos: mais (+), igual (=), vírgula (,), ponto (.), arroba (@), dois pontos (:), barra (/) e hífen (-).

sts:RoleSessionName

Funciona com operadores de string.

Utilize essa chave para comparar o nome da sessão que um principal especifica ao assumir uma função com o valor especificado na política.

Disponibilidade: essa chave está presente na solicitação quando a entidade de segurança assume a função usando o AWS Management Console, qualquer comando de assumir função da CLI ou qualquer operação de API AssumeRole do AWS STS.

Você pode usar essa chave em uma política de confiança de função para exigir que os usuários forneçam um nome de sessão específico quando assumirem uma função. Por exemplo, você pode exigir que os usuários do IAM especifiquem o próprio nome de usuário como nome de sessão. Depois que o usuário do IAM assume a função, a atividade aparece nos logs do AWS CloudTrail com o nome da sessão que corresponde ao seu nome de usuário. Isso torna mais fácil para os administradores diferenciar entre sessões de função quando uma função é usada por diferentes entidades de segurança.

A política de confiança de função a seguir exige que os usuários do IAM na conta 111122223333 forneçam o nome de usuário do IAM como o nome da sessão quando assumem a função. Esse requisito é imposto usando a variável de condição aws:username na chave de condição. Essa política permite que os usuários do IAM assumam a função à qual a política está anexada. Essa política não permite que ninguém que utilize credenciais temporárias assuma a função, porque a variável username está presente apenas para usuários do IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyRequireUsernameForSessionName", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Condition": { "StringLike": {"sts:RoleSessionName": "${aws:username}"} } } ] }

Quando um administrador exibe o log do AWS CloudTrail de uma ação, ele pode comparar o nome da sessão com os nomes de usuário em sua conta. No exemplo a seguir, o usuário chamado matjac executou a operação usando a função chamada MateoRole. O administrador pode entrar em contato com Mateo Jackson, que tem o nome de usuário matjac.

"assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:matjac", "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole/matjac" }

Se você permitir acesso entre contas usando funções, os usuários em uma conta poderão assumir uma função em outra conta. O ARN do usuário da função assumida listado no CloudTrail inclui a conta onde a função existe. Ele não inclui a conta do usuário que assumiu a função. Os usuários são exclusivos apenas dentro de uma conta. Portanto, recomendamos que você use esse método para verificar logs do CloudTrail somente para funções que são assumidas pelos usuários em contas que você administra. Seus usuários podem usar o mesmo nome de usuário em várias contas.

sts:SourceIdentity

Funciona com operadores de string.

Use esta chave para comparar a identidade de origem que uma entidade de segurança especifica ao assumir uma função com o valor que é especificado na política.

Disponibilidade:essa chave está presente na solicitação quando a entidade de segurança fornece uma identidade de origem 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.

Você pode usar essa chave em uma política de confiança de função para exigir que seus usuários definam uma identidade de origem específica ao assumir uma função. Por exemplo, você pode exigir que seu quadro de funcionários ou suas identidades federadas especifiquem um valor para a identidade de origem. Você pode configurar seu provedor de identidade (IdP) para usar um dos atributos associados aos usuários, como um nome de usuário ou e-mail como a identidade de origem. O IdP então passa a identidade de origem como um atributo nas declarações ou reivindicações que envia para a AWS. O valor do atributo de identidade de origem identifica o usuário ou a aplicação que está assumindo a função.

Depois que o usuário assume a função, a atividade aparece nos logs do AWS CloudTrail com o valor de identidade de origem que foi definido. Isso torna mais fácil para os administradores determinar quem ou o que executou ações com uma função na AWS. Você deve conceder permissões para a ação sts:SetSourceIdentity para permitir que uma identidade defina uma identidade de origem.

Ao contrário de sts:RoleSessionName, após a definição da identidade de origem, o valor não pode ser alterado. Ele está presente no contexto de solicitação para todas as ações executadas com a função pela identidade de origem. 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.

Você pode usar a chave de condição global aws:SourceIdentity para controlar ainda mais o acesso a recursos da AWS com base no valor da identidade de origem em solicitações subsequentes.

A política de confiança de função a seguir permite que o usuário do IAMAdminUser assuma uma função na conta 111122223333. Ela também concede permissão para o AdminUser definir uma identidade de origem, desde que o conjunto de identidades de origem seja DiegoRamirez.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdminUserAssumeRole", "Effect": "Allow", "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"} } } ] }

Para saber mais sobre como usar informações de identidade de origem, consulte Monitorar e controlar ações realizadas com funções assumidas.

sts:TransitiveTagKeys

Funciona com operadores de string.

Use esta chave para comparar as chaves de tag de sessão transitiva na solicitação com as especificadas na política.

Disponibilidade: essa chave está presente na solicitação quando você faz uma solicitação usando credenciais de segurança temporárias. Elas incluem credenciais criadas usando qualquer operação assume-role, ou a operação GetFederationToken.

Ao fazer uma solicitação usando credenciais de segurança temporárias, o contexto da solicitação inclui a chave de contexto aws:PrincipalTag. Essa chave inclui uma lista de tags de sessão, tags de sessão transitivas e tags de função. As tags de sessão transitivas são tags que persistem em todas as sessões subsequentes quando você usa as credenciais da sessão para assumir outra função. Assumir uma função de outra é chamado de encadeamento de funções.

Você pode usar essa chave de condição em uma política para exigir a configuração de tags de sessão específicas como transitivas ao assumir uma função ou federar um usuário.