Assumir um perfil com identidade de web ou OpenID Connect para autenticar SDKs e ferramentas da AWS
Assumir um perfil envolve o uso de um conjunto de credenciais temporárias de segurança para acessar recursos da AWS aos quais você talvez não tenha acesso de outra forma. Essas credenciais de segurança temporárias consistem em um ID de chave de acesso, uma chave de acesso secreta e um token de segurança. Para saber mais sobre as solicitações de API AWS Security Token Service (AWS STS), consulte Ações na Referência da API doAWS Security Token Service.
Para configurar seu SDK ou ferramenta para assumir um perfil, você deve primeiro criar ou identificar um perfil específico a ser assumido. Os perfis do IAM são identificados exclusivamente por um perfil do nome do recurso da Amazon (ARN). Os perfis estabelecem as relações de confiança com uma outra entidade. A entidade de confiança que usa o perfil pode ser um provedor de identidades de web ou OpenID Connect (OIDC), ou uma federação SAML. Para saber mais sobre perfis do IAM, consulte Métodos para assumir um perfil no Guia do usuário do IAM.
Depois que o perfil do IAM é configurado no SDK, se esse perfil estiver configurado para confiar no provedor de identidades, você poderá continuar a configurar o SDK para assumir esse perfil a fim de obter credenciais temporárias da AWS.
nota
É uma prática recomendada da AWS usar endpoints regionais sempre que possível e também para configurar a Região da AWS.
Federar com identidade web ou OpenID Connect
Você pode usar JSON Web Tokens (JWTs) de provedores de identidade públicos, como Login With Amazon, Facebook, Google, para obter credenciais temporárias da AWS usando AssumeRoleWithWebIdentity. Dependendo de como são usados, esses JWTs podem ser chamados de tokens de ID ou tokens de acesso. Você também pode usar JWTs emitidos por provedores de identidades (IdPs) compatíveis com o protocolo de descoberta do OIDC, como EnRAID ou PingFederate.
Se você estiver usando o Amazon Elastic Kubernetes Service, esse atributo permite especificar diferentes perfis do IAM para cada uma das suas contas de serviço no cluster do Amazon EKS. Esse atributo do Kubernetes distribui JWTs para seus pods, que serão usados por esse provedor de credenciais para obter credenciais temporárias da AWS. Para obter mais informações sobre essa configuração do Amazon EKS, consulte Perfis do IAM para contas de serviço no Guia do usuário do Amazon EKS. No entanto, como uma opção mais simples, recomendamos que você use o Amazon EKS Pod Identities se seu SDK for compatível.
Etapa 1: Configurar um provedor de identidades e um perfil do IAM
Para configurar uma federação com um IdP externo, crie um provedor de identidades do IAM para informar a AWS sobre o IdP externo e sua configuração. Isso estabelece confiança entre sua Conta da AWS e o IdP externo. Antes de configurar o SDK para usar o JSON Web Token (JWT), você deve primeiro configurar o provedor de identidades (IdP) e o perfil do IAM usado para acessá-lo. Para configurá-los, consulte Criar um perfil para identidades da Web ou federação do OpenID Connect (console) no Guia do usuário do IAM.
Etapa 2: Configurar o SDK ou a ferramenta
Configure o SDK ou a ferramenta para usar um JSON Web Token (JWT) do AWS STS para autenticação.
Quando isso é especificado em um perfil, o SDK ou ferramenta faz automaticamente a chamada de API AssumeRoleWithWebIdentity do AWS STS correspondente para você. Para recuperar e usar credenciais temporárias usando a federação de identidades da web, é possível especificar os valores de configuração a seguir em um arquivo compartilhado config da AWS. Para obter mais detalhes sobre cada uma dessas configurações, consulte a seção Assuma as configurações do provedor de credenciais do perfil.
-
role_arn: a partir do perfil do IAM que você criou na Etapa 1 -
web_identity_token_file: do IdP externo -
(Opcional)
duration_seconds -
(Opcional)
role_session_name
Veja a seguir um exemplo de uma configuração de arquivo config compartilhado para assumir um perfil com a identidade da web:
[profileweb-identity] role_arn=arn:aws:iam::123456789012:role/my-role-nameweb_identity_token_file=/path/to/a/token
nota
Para aplicações móveis, recomendamos o uso do Amazon Cognito. O Amazon Cognito atua como um agente de identidades e realiza a maioria do trabalho de federação para você. No entanto, o provedor de identidade do Amazon Cognito não está incluído nas bibliotecas principais de SDKs e ferramentas, como outros provedores de identidade. Para acessar a API do Amazon Cognito, inclua o cliente do serviço Amazon Cognito na compilação ou nas bibliotecas do seu SDK ou ferramenta. Para uso com AWS SDKs, consulte Exemplos de código no Guia do desenvolvedor do Amazon Cognito.
Para obter mais detalhes sobre todas as configurações do provedor de credenciais para assumir o perfil, consulte este guia Assuma o perfil de provedor de credenciais.