papel do AWS IAM para uso em uma sala de aula

1

Estou tentando criar uma função do AWS IAM para uso em uma sala de aula.

O objetivo é ter uma conta para o faturamento centralizado, mas cada aluno tem um conjunto de credenciais para registrá-los no console da AWS para gerenciar determinados recursos. Por exemplo, quero que os usuários possam iniciar / encerrar instâncias do EC2 em us-east-1 de tamanho t2.micro ou t2.small com base nas AMIs oficiais.

Pelo que entendi, é o cenário 2 do link . No entanto, não consigo encontrar exemplos de trabalho das políticas do IAM.

Eu tentei criar um IAM para cobrir o cenário, mas parece não funcionar como esperado. Quando tento criar uma instância aceita, recebo erros sobre a criação de um VPC. O outro também pode ver grupos de chaves / grupos de segurança existentes.

É importante que apenas os usuários que criam a instância e a visualizem / gerenciem.

Aqui está o que eu tentei:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": [ "arn:aws:ec2:us-east-1:account:instance/*", "arn:aws:ec2:us-east-1:account:key-pair/*", "arn:aws:ec2:us-east-1:account:security-group/*", "arn:aws:ec2:us-east-1:account:network-interface/*", "arn:aws:ec2:us-east-1:account:volume/*" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:us-east-1:account:instance/*", "arn:aws:ec2:us-east-1:account:key-pair/*", "arn:aws:ec2:us-east-1:account:security-group/*", "arn:aws:ec2:us-east-1:account:network-interface/*", "arn:aws:ec2:us-east-1:account:volume/*" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:us-east-1:account:instance:instance/*" ], "Condition": { "StringEquals": { "ec2:InstanceType": "t1.small" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:us-east-1::image/ami-*" ], "Condition": { "StringEquals": { "ec2:Owner": "amazon" } } }, { "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "arn:aws:ec2:us-east-1:account:instance/*" } ] }

Suponho que conta é uma palavra-chave especial que se refere à conta em que a política foi aplicada.

    
por Ben Hall 12.07.2016 / 23:42

1 resposta

1

It's important that only users who create the instance and view/manage them.

Isso é muito difícil de fazer com os usuários na mesma conta (e o whitepaper que você vincula não faz promessas sobre isso). Você pode limitar o acesso real ao shell da instância por meio de chaves SSH, mas as partes de gerenciamento de instância no nível da AWS são mais difíceis de separar. As permissões do EC2 IAM não oferecem uma maneira estaticamente definível para permitir que um usuário específico crie uma instância e, em seguida, seja o único usuário que pode modificar ou encerrar essa instância. (Você só pode limitar o término da instância e a capacidade de modificação de um usuário a uma instância específica usando o ID da instância, que é criado apenas quando a instância é criada.) (Como um aparte, você também não poderá limitar o número de instâncias que um único usuário pode ter ao mesmo tempo, por exemplo. Novamente, um recurso que a AWS simplesmente não oferece.)

Se você quiser esse tipo de separação de habilidades, precisará ir com o cenário 1 do whitepaper (você cria e gerencia as instâncias e cada aluno recebe uma chave ssh exclusiva no servidor atribuído) ou 3 (cada aluno recebe uma conta separada, embora, mais uma vez, você provavelmente deseje criar e gerenciar os papéis do IAM e os limites de instâncias de cada conta para evitar despesas não intencionais).

    
por 13.07.2016 / 08:06