Crie uma Política do IAM que permita tudo, exceto o IAM, exceto o PassRole

6

Estou tentando modificar uma política do IAM para que os usuários possam associar uma função do IAM a instâncias do EC2 que permitam direitos de somente leitura aos nossos buckets do S3.

Nossas equipes fazem um pouco de P & D com a AWS e, por isso, eu odeio restringir o acesso a quaisquer serviços da AWS, exceto o IAM, o que permitiria o escalonamento de privilégios.

Eu usei as informações em esta questão para adicionar o iam: PassRole, mas a política não consegue validar no simulador.

{
"Statement": [
    {
        "Effect": "Allow",
        "NotAction": "iam:*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::ACCOUNTID:role/MYROLE"
    }
]
}

Se eu alterar o recurso da segunda instrução para "Resource": "*" validação for bem-sucedida e o simulador mostrar que PassRole é explicitamente permitido, tudo o mais no IAM é implicitamente negado e tudo no S3 é explicitamente permitido.

O que estou fazendo de errado com o papel nomeado? Quais poderiam ser as implicações de segurança ao permitir o PassRole para todos (suponho que o simulador de políticas não esteja mentindo). Existe uma maneira melhor de conseguir o que eu quero?

    
por Dan Caseley 31.12.2014 / 11:23

1 resposta

3

Para mim, isso parece um bug no Policy Simulator. Mesmo a própria Amazon declara uma política como a sua em um exemplo deles . O simulador reclama, mas na verdade anexar essa política a um usuário funciona bem.

What am I doing wrong with the named role?

Para o melhor do meu conhecimento, nada.

What could the security implications be by allowing PassRole for all (I'm assuming the policy simulator isn't fibbing).

Bem, você permitiria a ação iam:PassRole para qualquer função. Isso significa basicamente que um usuário com essa política seria capaz de iniciar uma instância do EC2 com qualquer função do IAM anexada a ela. Também é explicado no Documentação da AWS que eu vinculei acima :

Alternatively, you could grant IAM users access to all your roles by specifying the resource as "*" in this policy. However, consider whether users who launch instances with your roles (ones that exist or that you'll create later on) might be granted permissions that they don't need or shouldn't have.

    
por 31.12.2014 / 15:37