Criar uma função para um provedor de identidade de terceiros (federação) - AWS Identity and Access Management

Criar uma função para um provedor de identidade de terceiros (federação)

Você pode usar provedores de identidade em vez de criar usuários do IAM em sua conta da AWS. Com um provedor de identidade (IdP), você pode gerenciar as identidades de usuários fora da AWS e fornecer a essas identidades de usuários externos permissões para acessar recursos da AWS na sua conta. Para obter mais informações sobre federação e provedores de identidade, consulte Provedores de identidade e federação.

Criar uma função para usuários federados (console)

Os procedimentos para criar uma função para usuários federados dependem de sua opção de provedores de terceiros:

Criar uma função para acesso federado (AWS CLI)

As etapas para criar uma função para provedores de identidade (OIDC ou SAML) na AWS CLI são idênticas. A diferença está no conteúdo da política de confiança que você cria nas etapas obrigatórias. Comece seguindo as etapas na seção Pré-requisitos para o tipo de provedor que você está usando:

A criação de uma função a partir da AWS CLI envolve várias etapas. Quando o console é usado para criar uma função, muitas das etapas são concluídas por você, mas com a AWS CLI, é necessário executar explicitamente cada etapa. Você deve criar a função e atribuir uma política de permissões à função. Opcionalmente, você também pode definir o limite de permissões para sua função.

Para criar uma função para a federação de identidades (AWS CLI)

  1. Criar uma função: aws iam create-role

  2. Anexar uma política de permissões à função: aws iam attach-role-policy

    ou

    Criar uma política de permissões em linha para a função: aws iam put-role-policy

  3. (Opcional) Adicione atributos personalizados à função anexando tags: aws iam tag-role

    Para obter mais informações, consulte Gerenciar etiquetas em funções do IAM (AWS CLI ou API da AWS).

  4. (Opcional) Definir o limite de permissões para a função: aws iam put-role-permissions-boundary

    Um limite de permissões controla o número máximo de permissões que uma função pode ter. Os limites de permissões são um recurso avançado da AWS.

O exemplo a seguir mostra as duas primeiras e as etapas mais comuns para a criação de uma função de provedor de identidade em um ambiente simples. Este exemplo permite que qualquer usuário na conta 123456789012 assuma a função e visualize o bucket example_bucket do Amazon S3. Este exemplo também supõe que você esteja executando a AWS CLI em um computador Windows e já tenha configurado a AWS CLI com suas credenciais. Para obter mais informações, consulte Configuração da AWS Command Line Interface.

Neste exemplo, inclua a seguinte política de confiança no primeiro comando ao criar a função. A política de confiança permite que os usuários na conta 123456789012 assumam a função usando a operação AssumeRole, mas apenas se o usuário fornecer autenticação MFA usando os parâmetros SerialNumber e TokenCode. Para obter mais informações sobre MFA, consulte Uso de autenticação multifator (MFA) na AWS.

A política de confiança do exemplo a seguir será designada para um aplicativo móvel se o usuário fizer login usando o Amazon Cognito. Neste exemplo, us-east:12345678-ffff-ffff-ffff-123456 representa o ID do grupo de identidades atribuído pelo Amazon Cognito.

{ "Version": "2012-10-17", "Statement": { "Sid": "RoleForCognito", "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}} } }

A política de permissões a seguir permite que qualquer pessoa que assuma a função execute apenas a ação ListBucket no bucket example_bucket do Amazon S3.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

Para criar essa função Test-Cognito-Role, você deve primeiro salvar a política de confiança anterior com o nome trustpolicyforcognitofederation.json e a política de permissões anterior com o nome permspolicyforcognitofederation.json na pasta policies na unidade C: local. Você pode usar os comandos a seguir para criar a função e anexar a política em linha.

# Create the role and attach the trust policy that enables users in an account to assume the role. $ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json # Attach the permissions policy to the role to specify what it is allowed to do. aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json

Criar uma função para acesso federado (API da AWS)

As etapas para criar uma função para provedores de identidade (OIDC ou SAML) na AWS CLI são idênticas. A diferença está no conteúdo da política de confiança que você cria nas etapas obrigatórias. Comece seguindo as etapas na seção Pré-requisitos para o tipo de provedor que você está usando:

Para criar uma função para a federação de identidades (API da AWS)

  1. Criar uma função: CreateRole

  2. Anexar uma política de permissões à função: AttachRolePolicy

    ou

    Criar uma política de permissões em linha para a função: PutRolePolicy

  3. (Opcional) Adicione atributos personalizados ao usuário anexando tags: TagRole

    Para obter mais informações, consulte Gerenciamento de etiquetas em usuários do IAM (AWS CLI ou API da AWS).

  4. (Opcional) Definir o limite de permissões para a função: PutRolePermissionsBoundary

    Um limite de permissões controla o número máximo de permissões que uma função pode ter. Os limites de permissões são um recurso avançado da AWS.