Provedor de credencial do IAM Identity Center
nota
Para obter ajuda em compreender o layout das páginas de configurações ou interpretar a tabela Compatibilidade com SDKs e ferramentas da AWS a seguir, consulte Entender as páginas de configurações deste guia.
Este mecanismo de autenticação usa o AWS IAM Identity Center para acesso com autenticação única (SSO) para os Serviços da AWS para seu código.
nota
Na documentação da API do AWS SDK, o provedor de credenciais do IAM Identity Center é chamado de provedor de credenciais SSO.
Depois de habilitar o IAM Identity Center, você define um perfil para suas configurações no seu arquivo compartilhado config da AWS. Este perfil é usado para se conectar ao portal de acesso do IAM Identity Center. Quando um usuário se autentica com sucesso no IAM Identity Center, o portal retorna credenciais de curto prazo para o perfil do IAM associado a esse usuário. Para saber como o SDK obtém credenciais temporárias da configuração e as usa para solicitações do AWS service (Serviço da AWS), consulte Como a autenticação do IAM Identity Center é resolvida para SDKs e ferramentas da AWS.
Há duas maneiras de configurar o IAM Identity Center por meio do arquivo config:
-
(Recomendado) Configuração do provedor de token SSO: durações de sessão estendidas. Inclui compatibilidade com durações de sessão personalizadas.
-
Configuração legada não atualizável: usa uma sessão fixa de oito horas.
Em ambas as configurações, você precisa entrar novamente quando sua sessão expirar.
Os dois guias a seguir contêm informações adicionais sobre o IAM Identity Center:
Para saber mais detalhes sobre como os SDKs e as ferramentas usam e atualizam as credenciais usando esta configuração, consulte Como a autenticação do IAM Identity Center é resolvida para SDKs e ferramentas da AWS.
Pré-requisitos
É necessário primeiro habilitar o IAM Identity Center. Para obter detalhes sobre como habilitar a autenticação do IAM Identity Center, consulte Enabling AWS IAM Identity Center no AWS IAM Identity Center User Guide.
nota
Como alternativa, para obter os pré-requisitos completos e a configuração do arquivo config compartilhado necessário que são detalhados nesta página, consulte as instruções guiadas para a configuração do Usar o IAM Identity Center para autenticar o SDK e as ferramentas da AWS.
Configuração do provedor de token do SSO
Quando você usa a configuração do provedor de token SSO, o SDK ou a ferramenta da AWS atualizam automaticamente a sessão até o período de sessão estendido. Para obter mais informações sobre a duração da sessão e a duração máxima, consulte Configure the session duration of the AWS access portal and IAM Identity Center integrated applications no AWS IAM Identity Center User Guide.
A seção do sso-session do arquivo config é usada para agrupar variáveis de configuração para adquirir tokens de acesso do SSO, que podem então ser usados para adquirir credenciais da AWS. Para obter mais detalhes sobre essa seção em um arquivo config, consulte Formato do arquivo de configuração.
O exemplo de arquivo compartilhado config a seguir configura o SDK ou a ferramenta usando um perfil dev para solicitar credenciais do IAM Identity Center.
[profiledev] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole[sso-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/startsso_registration_scopes =sso:account:access
Os exemplos anteriores mostram que você define uma sessão do sso-session e a associa a um perfil. Normalmente, sso_account_id e sso_role_name devem ser definidos na seção profile para que o SDK possa solicitar credenciais da AWS. sso_region, sso_start_url e sso_registration_scopes devem ser definidos na seção sso-session.
No entanto, sso_account_id e sso_role_name não são necessários para todos os cenários de configuração do token do SSO. Se sua aplicação usa apenas os Serviços da AWS compatíveis com a autenticação do portador, as credenciais tradicionais da AWS não são necessárias. A autenticação do portador é um esquema de autenticação HTTP que usa tokens de segurança chamados tokens de portador. Nesse cenário, sso_account_id e sso_role_name não são obrigatórios. Consulte o guia do AWS service (Serviço da AWS) individual para determinar se o serviço é compatível com a autorização com token de portador.
Os escopos de registro são configurados como parte de um sso-session. O escopo é um mecanismo no OAuth 2.0 para limitar o acesso de um aplicativo à conta de um usuário. O exemplo anterior define sso_registration_scopes para fornecer o acesso necessário para listar contas e perfis.
O exemplo a seguir mostra como é possível reutilizar a mesma configuração sso-session em vários perfis.
[profiledev] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole[profile prod] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole2[sso-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/startsso_registration_scopes =sso:account:access
O token de autenticação é armazenado em cache no disco sob o diretório ~/.aws/sso/cache com um nome de arquivo baseado no nome da sessão.
Configuração herdada não atualizável
A atualização automática de tokens não é compatível usando a configuração herdada não atualizável. Em vez disso, recomendamos usar Configuração do provedor de token do SSO.
Para usar a configuração legada não atualizável, você deve especificar as seguintes configurações no seu perfil:
-
sso_start_url -
sso_region -
sso_account_id -
sso_role_name
Você especifica o portal do usuário para um perfil com as configurações sso_start_url e sso_region. Você especifica as permissões com as configurações sso_account_id e sso_role_name.
O exemplo a seguir define os quatro valores necessários no arquivo config.
[profilemy-sso-profile] sso_start_url =https://my-sso-portal.awsapps.com/startsso_region =us-west-2sso_account_id =111122223333sso_role_name =SSOReadOnlyRole
O token de autenticação é armazenado em cache no disco sob o diretório ~/.aws/sso/cache com um nome de arquivo baseado no sso_start_url.
Configurações do provedor de credenciais do IAM Identity Center
Configure essa funcionalidade usando o seguinte:
sso_start_url: configuração de arquivoconfigda AWS compartilhado-
A URL que aponta para a URL do emissor do IAM Identity Center ou para a URL do portal de acesso da sua organização. Para obter informações consulte Sign in to the AWS access portal no AWS IAM Identity Center User Guide.
Para encontrar esse valor, abra o console do IAM Identity Center
, visualize o painel e encontre a URL do portal de acesso da AWS. -
Como alternativa, a partir da versão 2.22.0 do AWS CLI, você pode usar o valor do URL do emissor da AWS.
-
sso_region: configuração de arquivoconfigda AWS compartilhado-
A Região da AWS que contém o host do portal do IAM Identity Center; ou seja, a região que você selecionou antes de habilitar o IAM Identity Center. Isso é independente da sua região padrão da AWS e pode ser diferente.
Para obter uma lista completa das Regiões da AWS e seus códigos, consulte Endpoints regionais na Referência geral da Amazon Web Services. Para encontrar esse valor, abra o console do IAM Identity Center
, visualize o painel e encontre a região. sso_account_id: configuração de arquivoconfigda AWS compartilhado-
O ID numérico da Conta da AWS que foi adicionado por meio do serviço AWS Organizations para uso na autenticação.
Para ver a lista de contas disponíveis, acesse o console do IAM Identity Center
e abra a página de Contas da AWS. Você também pode ver a lista de contas disponíveis usando o método da API ListAccounts na Referência da API do portal do AWS IAM Identity Center. Por exemplo, você pode chamar o método da AWS CLI list-accounts . sso_role_name: configuração de arquivoconfigda AWS compartilhado-
O nome de um conjunto de permissões provisionado como um perfil do IAM que define as permissões resultantes do usuário. O perfil deve existir na Conta da AWS especificada pelo
sso_account_id. Use o nome do perfil, não o nome do recurso da Amazon (ARN) do perfil.Os conjuntos de permissões têm políticas do IAM e políticas de permissões personalizadas anexadas a eles e definem o nível de acesso que os usuários têm às suas Contas da AWS atribuídas.
Para ver a lista de conjuntos de permissões disponíveis por Conta da AWS, acesse o console do IAM Identity Center
e abra a página Contas da AWS. Escolha o nome correto do conjunto de permissões listado na tabela Contas da AWS. Você também pode ver a lista de conjuntos de permissões disponíveis usando o método da API ListAccountRoles na Referência da API do portal do AWS IAM Identity Center. Por exemplo, você pode chamar o método da AWS CLI list-account-roles . sso_registration_scopes: configuração de arquivoconfigda AWS compartilhado-
Uma lista delimitada por vírgulas de escopos a serem autorizados para
sso-session. Um aplicativo pode solicitar um ou mais escopos, e o token de acesso emitido para o aplicativo está limitado aos escopos concedidos. Um escopo mínimo desso:account:accessdeve ser concedido para recuperar um token de atualização do serviço IAM Identity Center. Para obter a lista de opções de escopo de acesso disponíveis, consulte Access scopes no AWS IAM Identity Center User Guide.Esses escopos definem as permissões solicitadas para serem autorizadas para o cliente OIDC registrado e os tokens de acesso recuperados pelo cliente. Os escopos autorizam o acesso aos endpoints autorizados portadores do token do IAM Identity Center.
Esta configuração não é aplicável à configuração legada não atualizável. Os tokens emitidos usando a configuração legada estão limitados ao escopo
sso:account:accessimplícito.
Compatibilidade com SDKs e ferramentas da AWS
Os SDKs a seguir são compatíveis com os recursos e configurações descritos neste tópico. Quaisquer exceções parciais estão anotadas. As configurações de propriedade do sistema de JVM são compatíveis apenas como o AWS SDK para Java e o AWS SDK para Kotlin.
| SDK | Compatível | Notas ou mais informações |
|---|---|---|
| AWS CLI v2 da2 | Sim | |
| SDK para C++ | Sim | |
| SDK para Go V2 (1.x) |
Sim | |
| SDK para Go 1.x (V1) | Sim | Para usar as configurações do arquivo config compartilhado, você deve ativar o carregamento do arquivo de configuração; consulte Sessões. |
| SDK para Java 2.x | Sim | Valores de configuração também compatíveis no arquivo credentials. |
| SDK para Java 1.x | Não | |
| SDK para JavaScript 3.x | Sim | |
| SDK para JavaScript 2.x | Sim | |
| SDK para Kotlin | Sim | |
| SDK para .NET 4.x | Sim | |
| SDK para .NET 3.x | Sim | |
| SDK para PHP 3.x | Sim | |
| SDK para Python (Boto3) |
Sim | |
| SDK para Ruby 3.x | Sim | |
| SDK para Rust | Parcial | Somente configuração herdada não atualizável. |
| SDK para Swift | Sim | |
| Ferramentas para PowerShell V5 | Sim | |
| Ferramentas para PowerShell V4 | Sim |