Qual é o objetivo do AssumeRolePolicyDocument no IAM?

16

Estou confuso quanto ao objetivo do AssumeRolePolicyDocument.
Parece criar uma função, tudo o que você precisa é um nome pai ao qual você pode anexar políticas. Parece que AssumeRolePolicyDocument é esse nome pai, mas de alguma forma há mais do que isso. O que isso está fazendo?

       "AssumeRolePolicyDocument": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Effect": "Allow",
                        "Principal": {
                            "Service": [
                                "lambda.amazonaws.com"
                            ]
                        },
                        "Action": [
                            "sts:AssumeRole"
                        ]
                    }
                ]
            },
mutant_city
fonte

Respostas:

6

É bastante auto-descritivo. O objetivo do AssumeRolePolicyDocumenté conter a política de relação de confiança que concede permissão a uma entidade para assumir a função.

No seu exemplo, está concedendo ao serviço Lambda a capacidade de assumir

Referências

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html

https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html

kenlukas
fonte
11
Acho que estou confuso sobre o porquê de assumir um papel? Por que uma política não pode ser atribuída a ela?
Mutant_city
@mutant_city, Você precisa permitir a permissão do Lambda para assumir uma função. Sem isso, o Lambda não seria capaz de fazer nada no seu ambiente. A função possui políticas atribuídas a ela que concedem ao Lambda os privilégios necessários para realizar seu trabalho.
Kenlukas #
Está bem. Então você permite que o lambda assuma a função à qual você anexou suas políticas ... basicamente?
Mutant_city
sim, em poucas palavras é isso.
Kenlukas #
5

O objetivo do documento de diretiva de função é conceder permissão a uma entidade do IAM para assumir uma função . Também é conhecido como uma "política de confiança de função".

Em outras palavras, para determinadas permissões definidas, ele permite que usuários de determinadas contas da AWS assumam essa função e acessem essa conta .

É recomendável que você atualize a política de confiança da função para restringir o acesso apenas a usuários autorizados, caso contrário, qualquer conta da AWS poderá assumir a função e acessar essa conta.

Ao especificar Principal usando o Amazon Resource Name (ARN) da conta da AWS, usuário do IAM, função do IAM, usuário federado ou usuário da função assumida, você permite ou nega o acesso para assumir essa função ( sts:AssumeRole).

kenorb
fonte
0

Para quem está coçando a cabeça na convenção de nomenclatura:

AssumeRolePolicyDocument (em CloudFormation yaml) = Relações de confiança (na GUI da web do AWS Console)

Políticas (no CloudFormation yaml) = Permissões (na GUI da web do AWS Console)

Tony Sepia
fonte
0

Eu acho que é muito mais claro quando considerar o usuário que cria uma função não é necessariamente aquele que a anexa para uso em algum lugar:

  • AssumeRolePolicyDocumenté uma restrição colocada pelo usuário que cria a função - por exemplo, possivelmente um administrador. Impede que outros usuários o anexem a qualquer serviço / usuário da AWS que desejarem. Além disso, não diz nada sobre onde é realmente usado. É uma proteção no lado da Função (tratando a Função como um recurso que também deve ser protegido).

  • OTOH, na verdade atribuindo uma função a um serviço / usuário, é feito por usuários que atualmente precisam de algum serviço para ter permissões. E eles só podem fazer isso se a função AssumeRolePolicyDocumentpermitir.

É verdade que, quando você é o único usuário, pode não se importar muito com isso. Porém, adiciona mais segurança e documentos (à força :)) como a função deve ser usada.

yair
fonte