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. Essas credenciais são válidas pela duração especificada, de 900 segundos (15 minutos) até um máximo de 129.600 segundos (36 horas). A duração padrão da sessão é de 43.200 segundos (12 horas). Você pode revogar essas credenciais, mas deverá também alterar as permissões do usuário ou perfil do IAM para impedir o uso de credenciais comprometidas para atividades de conta maliciosas. 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 da AWS. Quando você remove todas as permissões das credenciais, as solicitações da AWS que as usam falham.

Pode levar alguns minutos para que as atualizações da política entrem em vigor. Para sessões de perfil do IAM, você pode revogar as credenciais de segurança temporárias do perfil para forçar todos os usuários que assumirem o perfil a se autenticar novamente e a solicitar novas credenciais. Para obter mais informações, consulte Revogar as credenciais de segurança temporárias do perfil.

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 os procedimentos sobre como alterar as permissões para um usuário do IAM, consulte Alterar permissões de um usuário do IAM.

Para obter os procedimentos sobre como alterar as permissões para um perfil do IAM, consulte Atualizar permissões para um perfil.

Importante

Não é possível editar perfis no IAM que foram criados a partir de conjuntos de permissões do Centro de Identidade do IAM. É necessário revogar a sessão ativa do conjunto de permissões de um usuário no Centro de Identidade do IAM. Para obter mais informações, consulte Revogar sessões ativas de perfil do IAM criadas por conjuntos de permissões, no Guia do usuário do Centro de Identidade do IAM.

Negar acesso a todas as sessões de perfil do IAM associadas a um perfil

Esse procedimento nega permissões para todas as sessões de perfil do IAM associadas a um perfil. Use essa abordagem quando tiver preocupações com relação a acesso suspeito por meio de:

  • Entidades principais de outra conta usando acesso entre contas

  • Identidades de usuários externos com permissões de acesso a recursos da AWS em sua conta

  • Os usuários que foram autenticados em uma aplicação móvel ou Web com um provedor de OIDC

Para alterar ou remover as permissões atribuídas às credenciais de segurança temporárias obtidas chamando as APIs AssumeRole, AssumeRoleWithSAML, AssumeRoleWithWebIdentity, GetFederationToken ou GetSessionToken, você pode editar ou excluir a política baseada em identidade que define as permissões do perfil.

Importante

Se houver uma política baseada em recursos que permita o acesso da entidade principal, você também deverá adicionar uma negação explícita para o recurso. Para mais detalhes, consulte Negar acesso a uma determinada entidade principal com políticas baseadas em identidade.

Para negar acesso a todas as sessões de perfil do IAM associadas a um perfil
  1. Faça login no AWS Management Console e abra o console do IAM.

  2. No painel de navegação, escolha Perfis.

  3. Selecione o nome do perfil a editar. Você pode usar a caixa de pesquisa para filtrar a lista.

  4. Escolha a aba Permissões.

  5. Selecione a política relevante a editar. Antes de editar uma política gerenciada pelo cliente, revise a guia Entidades anexadas para evitar interromper o acesso a outras identidades que tenham a mesma política anexada.

  6. Escolha a guia JSON e atualize a política para negar todos os recursos e ações.

    nota

    Essas permissões são as mesmas da política gerenciada pela AWS AWSDenyAll. Você pode anexar essa política gerenciada pela AWS a qualquer usuário ou perfil do IAM ao qual você queira negar acesso.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAll", "Effect": "Deny", "Action": [ "*" ], "Resource": "*" } ] }
  7. Na página Revisão, revise o Resumo da política e, em seguida, selecione Salvar alterações para salvar seu trabalho.

Quando você atualiza a política, as alterações afetam as permissões de todas as credenciais de segurança temporárias associadas ao perfil, incluindo credenciais emitidas antes da alteração da política de permissões do perfil.

Após atualizar a política, você poderá revogar as credenciais de segurança temporárias do perfil para revogar imediatamente todas as permissões às credenciais emitidas pelo perfil.

Negar acesso a uma determinada sessão de perfil do IAM

Quando você atualiza perfis do IAM com uma política de negação total ou exclui o perfil, todos os usuários que têm acesso ao perfil são afetados. Você pode negar acesso sem afetar as permissões de todas as outras sessões associadas ao perfil.

É possível negar permissões à Principal usando chaves de contexto de condição ou políticas baseadas em recursos.

dica

Você pode encontrar os ARNs de usuários federados usando logs do AWS CloudTrail. Para obter mais informações, consulte  a página How to Easily Identify Your Federated Users by Using AWS CloudTrail.

Negar acesso a sessões de credenciais de segurança temporárias com chaves de contexto de condição

Você pode usar chaves de contexto de condição nas políticas baseadas em identidade quando desejar negar acesso a sessões específicas de credenciais de segurança temporárias sem afetar as permissões do usuário ou perfil do IAM que criou as credenciais. Para perfis do IAM, depois de atualizar a política, você também pode revogar as sessões de credenciais de segurança temporárias do perfil para revogar imediatamente todas as credenciais emitidas.

Para obter mais informações sobre chaves de contexto de condição, consulte Chaves de contexto de condição globais da AWS.

aws:PrincipalArn

Você pode usar a chave de contexto de condição aws:PrincipalArn em uma política baseada em identidade para negar acesso a uma determinada entidade principal por seu nome do recurso da Amazon (ARN). Para fazer isso, especifique o ARN da sessão do usuário do IAM, do perfil ou do usuário federado do AWS STS à qual as credenciais de segurança temporárias estão associadas no elemento de condição de uma política.

Para negar acesso a uma determinada entidade principal por ARN
  1. No painel de navegação do console do IAM, escolha Usuários ou Perfis.

  2. Escolha o nome do usuário ou perfil do IAM a editar. Você pode usar a caixa de pesquisa para filtrar a lista.

  3. Escolha a aba Permissões.

  4. Selecione a política relevante a editar. Antes de editar uma política gerenciada pelo cliente, revise a guia Entidades anexadas para evitar interromper o acesso a outras identidades que tenham a mesma política anexada.

  5. Escolha a guia JSON e adicione uma instrução de negação para o ARN da entidade principal, conforme mostrado no exemplo a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:iam::222222222222:federated-user/USERNAME" ] } } } ] }
  6. Na página Revisão, revise o Resumo da política e, em seguida, selecione Salvar alterações para salvar seu trabalho.

aws:SourceIdentity

Você pode usar a chave de contexto de condição aws:SourceIdentity em uma política baseada em identidade para negar acesso a uma determinada identidade de origem associada a uma sessão de perfil do IAM. Isso se aplica contanto que a sessão de perfil tenha sido emitida definindo o parâmetro de solicitação SourceIdentity quando a entidade principal assumiu um perfil usando qualquer comando assume-role da CLI do AWS STS* ou operações da API AssumeRole do AWS STS*. Faça isso especificando a identidade de origem à qual as credenciais de segurança temporárias estão associadas no elemento Condition de uma política.

Ao contrário da chave de contexto sts:RoleSessionName, após a definição da identidade-fonte, o valor não poderá ser alterado. A chave aws:SourceIdentity estará presente no contexto da solicitação para todas as ações executadas pelo perfil. A identidade-fonte persiste nas sessões de perfil subsequentes quando você usa as credenciais da sessão para assumir outro perfil. Assumir uma função de outra é chamado de encadeamento de funções.

A política a seguir mostra um exemplo de como é possível negar acesso a sessões temporárias de credenciais de segurança usando a chave de contexto de condição aws:SourceIdentity. Se você especificar a identidade-fonte associada a uma sessão de perfil, serão negadas sessões de perfil com a identidade-fonte nomeada sem afetar as permissões da perfil que criou as credenciais. Neste exemplo, a identidade de origem definida pela entidade principal quando a sessão de perfil foi emitida é nikki_wolf@example.com. Qualquer solicitação feita por uma sessão de perfil com a identidade-fonte nikki_wolf@example.com será negada porque a identidade-fonte está incluída na condição da política e a política Efeito está definida como Deny.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringLike": { "aws:SourceIdentity": [ "nikki_wolf@example.com", "<source identity value>" ] } } } ] }

aws:userid

Você pode usar a chave de contexto de condição aws:userid em uma política baseada em identidade para negar acesso a todas ou a determinadas sessões de credenciais de segurança temporárias associadas ao usuário ou perfil do IAM. Isso é feito especificando o identificador exclusivo (ID) da sessão do usuário do IAM, do perfil ou do usuário federado do AWS STS à qual as credenciais de segurança temporárias estão associadas no elemento Condition de uma política.

A política a seguir mostra um exemplo de como é possível negar acesso a sessões temporárias de credenciais de segurança usando a chave de contexto de condição aws:userid.

  • AIDAXUSER1 representa o ID exclusivo de um usuário do IAM. Especificar o ID exclusivo de um usuário do IAM como um valor para a chave de contexto aws:userid negará acesso ao usuário do IAM. Isso inclui todas as sessões de credenciais de segurança temporárias que foram criadas chamando a API GetSessionToken.

  • AROAXROLE1:* representa o ID exclusivo de todas as sessões associadas ao perfil do IAM. Especificar o ID exclusivo de um perfil do IAM e um caractere curinga (*) na porção caller-specified-role-session-name como um valor para a chave de contexto aws:userid negará todas as sessões associadas ao perfil.

  • AROAXROLE2:<caller-specified-role-session-name> representa o ID exclusivo de uma sessão de perfil assumido. Na porção caller-specified-role-session-name do ID exclusivo do perfil assumido, você poderá especificar o nome da sessão do perfil ou um caractere curinga se o operador de condição StringLike for usado. Se você especificar o nome da sessão do perfil, isso negará a sessão do perfil nomeada sem afetar as permissões do perfil que criou as credenciais. Se você especificar um caractere curinga para o nome da sessão do perfil, negará todas as sessões associadas ao perfil.

    nota

    O nome da sessão de perfil especificada pelo chamador, que faz parte do identificador exclusivo de uma sessão de perfil assumida, pode mudar durante o encadeamento de perfis. O encadeamento de perfis ocorre quando um perfil assume outro perfil. O nome da sessão do perfil é definido usando o parâmetro de solicitação RoleSessionName quando a entidade principal assume um perfil usando a operação da API AssumeRole do AWS STS.

  • account-id:<federated-user-caller-specified-name> representa o ID exclusivo de uma sessão de usuário federado do AWS STS. Um usuário do IAM cria essa sessão chamando a API GetFederationToken. Especificar o ID exclusivo de uma sessão de usuário federado do AWS STS nega a sessão de usuário federado nomeada sem afetar as permissões do usuário do IAM que criou as credenciais.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringLike": { "aws:userId": [ "AIDAXUSER1", "AROAXROLE1:*", "AROAXROLE2:<caller-specified-role-session-name>", "account-id:<federated-user-caller-specified-name>" ] } } } ] }

Para exemplos específicos de valores de chave de entidade principal, consulte Valores de chave de principal. Para obter informações sobre os identificadores exclusivos do IAM e como obtê-los, consulte Identificadores exclusivos.

Negar acesso a uma determinada entidade principal com políticas baseadas em identidade

Para restringir o acesso a uma determinada entidade principal com uma política baseada em recurso, você pode usar as chaves de contexto de condição aws:PrincipalArn ou aws:SourceIdentity no elemento Condition. Uma política baseada em recurso é uma política de permissão anexada a um recurso e controla quem pode acessar o recurso e quais ações a pessoa pode executar nele.

Quando usar a chave de contexto aws:PrincipalARN, especifique o ARN da sessão do usuário do IAM, do perfil ou do usuário federado do AWS STS associada às credenciais de segurança temporárias no elemento de condição de uma política. O exemplo de política a seguir demonstra como usar a chave de contexto aws:PrincipalARNem uma política baseada em recurso:

{ "Version": "2012-10-17", "Statement": { "Principal": [ "*" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "ArnEquals": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:sts::222222222222:federated-user/USERNAME" ] } } } }

Quando usar a chave de contexto aws:SourceIdentity, especifique o valor da identidade de origem associada às credenciais de segurança temporárias do perfil no elemento Condition de uma política. Isso se aplica contanto que a sessão de perfil tenha sido emitida definindo o parâmetro de solicitação SourceIdentity quando a entidade principal assumiu um perfil usando qualquer comando assume-role da CLI do AWS STS* ou operações da API AssumeRole do AWS STS*. O exemplo a seguir demonstra como usar a chave de contexto aws:SourceIdentity em uma política baseada em recurso:

{ "Version": "2012-10-17", "Statement": { "Principal": [ "*" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringLike": { "aws:SourceIdentity": [ "nikki_wolf@example.com", "<source identity value>" ] } } } }

Se você atualizar apenas a política baseada em identidade para uma entidade principal, ainda será possível executar as ações permitidas na política baseada em recurso, exceto quando essas ações forem explicitamente negadas na política baseada em identidade.

Para negar acesso a uma determinada entidade principal com uma política baseada em identidade
  1. Consulte Serviços da AWS que funcionam com o IAM para ver se o serviço oferece suporte a políticas baseadas em recursos.

  2. Faça login no AWS Management Console e abra o console do serviço. Cada serviço tem uma localização diferente no console para anexar políticas.

  3. Edite a política baseada em recurso. Adicione uma instrução de política "Deny" para especificar as informações de identificação da credencial:

    1. No elemento Principal, insira o curinga (*). A entidade principal será restringida no elemento Condition.

    2. No elemento Effect, insira “Deny.”

    3. Em Action, insira o namespace do serviço e o nome da ação a ser negada. Para negar todas as ações, use o caractere curinga (*). Por exemplo: "s3:*".

    4. No elemento Resource, insira o ARN do recurso-alvo. Por exemplo: "arn:aws:s3:::amzn-s3-demo-bucket".

    5. No elemento Condition, especifique a chave de contexto aws:PrincipalARN ou aws:SourceIdentity.

      Se você usar a chave de contexto aws:PrincipalARN, insira o ARN da entidade principal à qual negar acesso.

      Se você usar a chave de contexto aws:SourceIdentity, insira o valor da identidade de origem definido na sessão de perfil à qual negar acesso.

  4. Salve seu trabalho.