Uso de funções do IAM - AWS Identity and Access Management

Uso de funções do IAM

Antes que um usuário, uma aplicação ou um serviço possa usar um perfil que você criou, você deve conceder permissões para alternar para esse perfil. É possível usar qualquer política anexada a grupos ou usuários para conceder as permissões necessárias. Esta seção descreve como conceder aos usuários permissão para usar uma função. Ela também explica como o usuário pode alternar para uma função no AWS Management Console, no Tools for Windows PowerShell, no AWS Command Line Interface (AWS CLI) e na API AssumeRole.

Importante

Ao criar uma função de forma programática, em vez de no console do IAM, você tem a opção de adicionar um Path de até 512 caracteres além do RoleName, que pode ter até 64 caracteres. No entanto, se você pretende usar uma função com o recurso Switch Role (Alternar função) no AWS Management Console, o Path e o RoleName combinados não podem exceder 64 caracteres.

Você pode mudar funções no AWS Management Console. Você pode assumir uma função chamando uma operação da AWS CLI ou da API, ou usando um URL personalizado. O método que você usa determina quem pode assumir a função e por quanto tempo a sessão da função pode durar. Ao usar o código AssumeRole* das operações da API, o perfil do IAM que você assume é o de recursos. O usuário ou perfil que chama operações da API AssumeRole* é a entidade principal.

Comparação de métodos para usar funções
Método de assumir a função Quem pode assumir a função Método para especificar a vida útil da credencial Vida útil da credencial (mín.|máx.|padrão)
AWS Management Console Usuário (mudando perfis) Maximum session duration (Duração máxima da sessão) na página Resumo Role (Função) 15 min|Configuração de duração máxima da sessão²|1 h
Operação da CLI assume-role ou da API AssumeRole Usuário ou perfil¹ Parâmetro da CLI duration-seconds ou da API DurationSeconds 15 min|Configuração de duração máxima da sessão²|1 h
Operação da CLI assume-role-with-saml ou da API AssumeRoleWithSAML Qualquer usuário autenticado usando SAML Parâmetro da CLI duration-seconds ou da API DurationSeconds 15 min|Configuração de duração máxima da sessão²|1 h
Operação da CLI assume-role-with-web-identity ou da API AssumeRoleWithWebIdentity Qualquer usuário autenticado usando um provedor OIDC Parâmetro da CLI duration-seconds ou da API DurationSeconds 15 min|Configuração de duração máxima da sessão²|1 h
URL do console construído com AssumeRole Usuário ou perfil Parâmetro HTML SessionDuration no URL 15 min|12 h|1 h
URL do console construído com AssumeRoleWithSAML Qualquer usuário autenticado usando SAML Parâmetro HTML SessionDuration no URL 15 min|12 h|1 h
URL do console construído com AssumeRoleWithWebIdentity Qualquer usuário autenticado usando um provedor OIDC Parâmetro HTML SessionDuration no URL 15 min|12 h|1 h

¹ O uso de credenciais de uma função para assumir uma função diferente é chamado de encadeamento de funções. Quando você usa o encadeamento de funções, suas novas credenciais são limitadas a uma duração máxima de uma hora. Quando você usa funções para conceder permissões a aplicativos executados em instâncias do EC2, esses aplicativos não estão sujeitos a essa limitação.

² Essa configuração pode ter um valor de 1 hora a 12 horas. Para obter detalhes sobre como modificar a configuração de duração máxima da sessão, consulte Modificar uma função. Essa configuração determina a duração máxima da sessão que você pode solicitar ao obter as credenciais da função. Por exemplo, quando você usa as operações da API AssumeRole* para assumir uma função, você pode especificar um tamanho de sessão usando o parâmetro DurationSeconds. Use este parâmetro para especificar o tamanho da sessão da função de 900 segundos (15 minutos) até o valor configurado da duração máxima da sessão para a função. Os usuários do IAM que trocam de perfis no console recebem a duração máxima da sessão ou o tempo restante na sessão de usuário, o que for menor. Suponha que você defina uma duração máxima de 5 horas em uma função. Um usuário do IAM conectado ao console por 10 horas (do máximo padrão de 12) alterna para a função. A duração da sessão de função disponível é de 2 horas. Para saber como visualizar o valor máximo para sua função, consulte Visualizar a configuração de duração máxima da sessão para uma função mais adiante nesta página.

Observações
  • A configuração da duração máxima da sessão não limita as sessões assumidas por produtos da AWS.

  • As credenciais do perfil do IAM do Amazon EC2 não estão sujeitas às durações máximas de sessão configuradas no perfil.

  • Para permitir que os usuários assumam novamente o perfil atual em uma sessão de perfil, especifique o ARN do perfil ou o ARN da Conta da AWS como entidade principal na política de confiança do perfil. Os Serviços da AWS que fornecem recursos computacionais, como o Amazon EC2, Amazon ECS, Amazon EKS e Lambda, fornecem credenciais temporárias e atualizam automaticamente essas credenciais. Isso garante que você tenha sempre um conjunto de credenciais válido. Nesses serviços, não é necessário assumir novamente a função atual para obter credenciais temporárias. Porém, se pretender passar tags de sessão ou uma política de sessão, você precisará assumir novamente a função atual. Para saber como modificar uma política de confiança de função para adicionar o ARN da função de entidade principal ou o ARN da Conta da AWS, consulte Modificação de uma política de confiança de função (console).

Visualizar a configuração de duração máxima da sessão para uma função

Você pode especificar a duração máxima da sessão para uma função usando o AWS Management Console, a AWS CLI ou a API da AWS. Quando usa uma operação da AWS CLI ou da API para assumir uma função, você pode especificar um valor para o parâmetro DurationSeconds. Você pode usar este parâmetro para especificar a duração da sessão de função, de 900 segundos (15 minutos) até a configuração de duração máxima da sessão para a função. Antes de especificar o parâmetro, você deve verificar essa configuração para sua função. Se você especificar um valor para o parâmetro DurationSeconds que seja maior do que o valor máximo, a operação falhará.

Para visualizar a duração máxima da sessão de uma função (console)
  1. No painel de navegação do console do IAM, escolha Perfis.

  2. Escolha o nome da função que você deseja visualizar.

  3. Ao lado de Maximum session duration (Duração máxima da sessão), visualize a duração máxima da sessão concedida para a função. Esta é a duração máxima da sessão que você pode especificar na sua AWS CLI ou na operação da API.

Para visualizar a configuração de duração máxima da sessão de uma função (AWS CLI)
  1. Se você não souber o nome da função que deseja assumir, execute o seguinte comando para listar as funções em sua conta:

  2. Para visualizar a duração máxima da sessão da função, execute o comando a seguir. Em seguida, verifique o parâmetro de duração máxima da sessão.

Para visualizar a configuração de duração máxima da sessão de uma função (API da AWS)
  1. Se você não souber o nome da função que deseja assumir, chame a seguinte operação para listar as funções em sua conta:

  2. Para visualizar a duração máxima da sessão da função, execute a operação a seguir. Em seguida, verifique o parâmetro de duração máxima da sessão.