View a markdown version of this page

Controle do acesso com políticas do IAM - AWS Identity and Access Management

Controle do acesso com políticas do IAM

O IAM fornece vários tipos de políticas para controlar o acesso ao recurso de federação de identidades de saída. Você pode usar políticas baseadas em identidade para controlar quais entidades principais do IAM podem solicitar tokens e aplicar propriedades específicas de tokens, como público, vida útil e algoritmos de assinatura. As políticas de controle de serviços (SCPs) permitem que você aplique restrições em toda a organização à geração de tokens em todas as contas no seu AWS Organizations. As políticas de controle de recursos (RCPs) controlam o acesso no nível do recurso. Você também pode usar políticas de endpoint da VPC para restringir quais entidades principais podem acessar a API GetWebIdentityToken do AWS STS por meio de seus endpoints da VPC, adicionando controles em nível de rede à sua postura de segurança. Esta seção explica como implementar controles de acesso refinados usando esses tipos de política e chaves de condição.

Para solicitar tokens de identidade, uma entidade principal do IAM deve ter a permissão sts:GetWebIdentityToken. Conceda essa permissão por meio de políticas de identidade anexadas aos usuários ou perfis do IAM. Para permitir que tags (pares de chave/valor) sejam transmitidas para a chamada de GetWebIdentityToken, a entidade principal do IAM deve ter a permissão sts:TagGetWebIdentityToken.

  • Use a chave de condição sts:IdentityTokenAudience para limitar quais serviços externos podem receber tokens.

  • Use a chave de condição sts:DurationSeconds para aplicar a vida útil máxima do token.

  • Use a chave de condição sts:SigningAlgorithm para exigir algoritmos criptográficos específicos.

  • Use a chave de condição aws:RequestTag para comparar o par de chave/valor da tag que foi transmitido na solicitação com o par de tags especificado na política.

  • Use a chave de condição aws:RequestTag para comparar as chaves de tags em uma solicitação com as chaves especificadas na política.

Consulte as chaves de condição do IAM e AWS STS para saber mais sobre as chaves de condição disponíveis nas políticas do IAM.

Esse exemplo de política de identidade combina várias chaves de condição:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTokenGenerationWithRestrictions", "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "https://api1.example.com", "https://api2.example.com" ] }, "NumericLessThanEquals": { "sts:DurationSeconds": 300 }, "StringEquals": { "sts:SigningAlgorithm": "ES384" } } } ] }

Práticas recomendadas

Siga essas recomendações para federar com segurança suas identidades da AWS em serviços externos.

  • Use tokens com vida útil curta: solicite tokens com a vida útil mais curta que atenda às suas necessidades operacionais.

  • Implemente o acesso com privilégio mínimo e restrinja as propriedades do token com as políticas do IAM: conceda a permissão sts:GetWebIdentityToken somente às entidades principais do IAM que a exijam. Use chaves de condição para especificar algoritmos de assinatura, públicos permitidos de tokens e vida útil máxima de tokens, conforme necessário.

  • Valide reivindicações em serviços externos: por questões de segurança, sempre valide as reivindicações relevantes, como subject (“sub”), audience (“aud”) etc. para garantir que elas correspondam aos valores esperados. Valide as reivindicações personalizadas sempre que possível para permitir decisões de autorização detalhadas em serviços externos.