Desabilitar permissões de credenciais de segurança temporárias - AWS Identity and Access Management

Desabilitar permissões de credenciais de segurança temporárias

As credenciais de segurança temporárias são válidas até que expirem e não podem ser revogadas. No entanto, como as permissões são avaliadas sempre que uma solicitação da AWS é feita usando as credenciais, você pode revogar as credenciais, alterando as permissões para as credenciais, mesmo depois de terem sido emitidas. Se você remover todas as permissões das credenciais de segurança temporárias, haverá falha das solicitações da AWS subsequentes que usam essas credenciais. Os mecanismos para alterar ou remover as permissões atribuídas às credenciais de segurança temporárias são explicadas nas seções a seguir.

nota

Quando você atualiza permissões de políticas existentes ou aplica uma nova política a um usuário ou recurso, poderá levar alguns minutos para que as atualizações da política entrem em vigor.

Negar acesso ao criador das credenciais de segurança temporárias

Para alterar ou remover as permissões atribuídas às credenciais de segurança temporárias, altere ou remova as permissões associadas ao criador das credenciais. O criador das credenciais é determinado pela API do AWS STS usada para obter as credenciais. Os mecanismos para alterar ou remover as permissões associadas a esse criador são explicadas nas seções a seguir.

Negar acesso às credenciais criadas por AssumeRole, AssumeRoleWithSAML ou AssumeRoleWithWebIdentity

Para alterar ou remover permissões atribuídas a credenciais de segurança temporárias obtidas chamando as operações de API AssumeRole, AssumeRoleWithSAML ou AssumeRoleWithWebIdentity, edite ou exclua a política de permissão de função que define as permissões para a função assumida. As credenciais de segurança temporárias obtidas assumindo uma função nunca podem ter mais permissões do que as definidas na política de permissões da função assumida e as permissões atribuídas às credenciais de segurança temporárias são avaliadas cada vez que são usadas para fazer uma solicitação do AWS. Quando você edita ou exclui a política de permissões de uma função, as alterações afetam as permissões de todas as credenciais de segurança temporárias associadas a essa função, incluindo credenciais emitidas antes da alteração da política de permissões da função. Você pode revogar imediatamente todas as permissões para uma sessão, seguindo as etapas em Revogação das credenciais de segurança temporárias da função do IAM.

Para obter mais informações sobre como editar uma política de permissões de função, consulte Modificar uma função.

Negar acesso às credenciais criadas por GetFederationToken ou pelo GetSessionToken

Para alterar ou remover as permissões atribuídas às credenciais de segurança temporárias obtidas chamando as operações de API GetFederationToken ou GetSessionToken, edite ou exclua as políticas anexadas ao usuário do IAM cujas credenciais foram usadas para chamar GetFederationToken ou GetSessionToken. As credenciais de segurança temporárias que foram obtidas chamando GetFederationToken ou GetSessionToken nunca podem ter mais permissões do que o usuário do IAM cujas credenciais foram usadas para obtê-las. Além disso, as permissões atribuídas às credenciais de segurança temporárias são avaliadas cada vez que são usadas para fazer um solicitação da AWS. É importante observar que, quando você edita ou exclui as permissões de um usuário do IAM as alterações afetam o usuário do IAM, bem como todas as credenciais de segurança temporárias criadas por esse usuário.

Importante

Não é possível alterar as permissões para um usuário raiz da Conta da AWS. Da mesma forma, você não pode alterar as permissões para as credenciais de segurança temporárias criadas chamando GetFederationToken ou GetSessionToken enquanto estiver conectado como usuário raiz. Por esse motivo, recomendamos que você não chame o GetFederationToken nem o GetSessionToken como usuário raiz.

Para obter mais informações sobre como alterar ou remover as políticas associadas ao usuário do IAM cujas credenciais foram usadas para chamar GetFederationToken ou GetSessionToken, consulte Gerenciamento de políticas do IAM.

Negar acesso às credenciais de segurança temporárias por nome

Você pode negar acesso às credenciais de segurança temporárias sem afetar as permissões do usuário ou função do IAM que criaram as credenciais. Faça isso, especificando o nome de recurso da Amazon (ARN) das credenciais de segurança temporárias no elemento Principal de uma política baseada em recursos. (Apenas alguns serviços da AWS oferecem suporte para políticas baseadas em recursos.)

Negar acesso a usuários federados

Por exemplo, imagine que você tenha um usuário do IAM chamado token-app cujas credenciais são usadas para chamar GetFederationToken. A chamada de API do GetFederationToken resultou em credenciais de segurança temporárias associadas a um usuário federado chamado Bob (o nome de usuário federado é obtido a partir do parâmetro Name da chamada de API). Para negar acesso ao usuário federado Bob em um bucket S3 chamado EXAMPLE-BUCKET, anexe a seguinte política de bucket de exemplo EXAMPLE-BUCKET. É importante observar que isso afeta apenas as permissões do Amazon S3 do usuário federado, quaisquer outras permissões concedidas ao usuário federado permanecem intactas.

{ "Version": "2012-10-17", "Statement": { "Principal": {"AWS": "arn:aws:sts::account-id:federated-user/Bob"}, "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::EXAMPLE-BUCKET" } }

Você pode especificar o ARN do usuário do IAM cujas credenciais foram usadas para chamar GetFederationToken no elemento Principal da política de bucket, em vez de especificar o usuário federado. Neste caso, o elemento Principal da política anterior seria assim:

"Principal": {"AWS": "arn:aws:iam::account-id:user/token-app"}

É importante observar que, especificar o ARN do usuário do IAM token-app na política, resultará em acesso negado a todos os usuários federados criados pelo token-app, não apenas o usuário federado chamado Bob.

Negar acesso a usuários da função assumida

Também é possível especificar o ARN das credenciais de segurança temporárias criadas assumindo uma função. A diferença é a sintaxe usada no elemento Principal da política baseada em recursos. Por exemplo, um usuário assume uma função chamada Accounting-Role e especifica um RoleSessionName de Mary (RoleSessionName é um parâmetro da chamada de API do AssumeRole). Para negar acesso às credenciais de segurança temporárias que resultaram da chamada de API, o elemento Principal da política baseada em recursos seria assim:

"Principal": {"AWS": "arn:aws:sts::account-id:assumed-role/Accounting-Role/Mary"}

Você também pode especificar o ARN da função do IAM no elemento Principal de uma política baseada em recurso, como no exemplo a seguir. Nesse caso, a política resultará em acesso negado a todas as credenciais de segurança temporárias associadas à função chamada Accounting-Role.

"Principal": {"AWS": "arn:aws:iam::account-id:role/Accounting-Role"}

Negar acesso às credenciais de segurança temporárias emitidas antes de um período específico

É possível negar acesso apenas às credenciais de segurança temporárias criadas antes de uma hora e data específicas. Faça isso, especificando um valor para a chave do aws:TokenIssueTime no elemento Condition de uma política. A política a seguir mostra um exemplo. Anexe uma política semelhante ao exemplo a seguir para o usuário do IAM que criou as credenciais de segurança temporárias. A política nega todas as permissões, mas somente quando o valor do aws:TokenIssueTime é anterior à data e hora especificadas. O valor do aws:TokenIssueTime corresponde ao tempo exato em que as credenciais de segurança temporárias foram criadas. O valor aws:TokenIssueTime está presente apenas no contexto de solicitações da AWS assinadas com credenciais de segurança temporárias, portanto, a instrução Deny na política não afetará as solicitações assinadas com as credenciais de longo prazo do usuário do IAM.

A política a seguir também pode ser anexada a uma função. Neste caso, a política afeta somente as credenciais de segurança temporárias que foram criadas pela função antes da data e hora especificadas. Se as credenciais foram criadas pela função após a data e hora especificadas, o elemento Condition na política será avaliado como falso, para que a declaração Deny não tenha efeito.

exemplo Exemplo de política que nega todas as permissões para credenciais temporárias por tempo de emissão

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": {"DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"}} } }

Os usuários válidos cujas sessões são revogadas dessa forma devem adquirir credenciais temporárias para uma nova sessão para continuar a trabalhar. Observe que a AWS CLI armazena em cache as credenciais até que elas expirem. Para forçar a CLI a excluir e atualizar credenciais de cache que não são mais válidas, execute um dos seguintes comandos:

Linux, MacOS ou Unix

$ rm -r ~/.aws/cli/cache

Windows

C:\> del /s /q %UserProfile%\.aws\cli\cache