AWS IAM在教室内使用的angular色

我正在尝试在课堂中创buildAWS IAMangular色。

目的是要有一个账户用于集中计费,但是每个学生都有一套凭证,以便将其login到AWS控制台,以便pipe理某些资源。 例如,我希望用户能够根据官方的AMI在大小为t2.micro或t2.small的us-east-1中启动/停止EC2实例。

据我所知,这是从https://d0.awsstatic.com/whitepapers/aws-setting-up-multiuser-environments-education.pdf的情况2。 但是我找不到IAM策略的任何工作示例。

我试图创build一个IAM来覆盖这个场景,但是它并不像预期的那样工作。 当我尝试创build一个接受的实例时,出现了有关创buildVPC的错误。 另一个也可以看到现有的密钥对/安全组。

只有创build实例并查看/pipe理它们的用户才是重要的。

这是我试过的:

{ "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/*" } ] }

我假设帐户是一个特殊的关键字,指的是政策已被应用到帐户。

只有创build实例并查看/pipe理实例的用户才是重要的。

这与用户使用同一个帐户(以及您所链接的白皮书不作任何承诺)是非常困难的。 您可以通过SSH密钥轻松限制实际的实例shell访问,但是AWS级别的实例pipe理片段很难分离。 EC2 IAM权限不提供静态可定义的方式来允许特定用户创build实例,然后成为唯一可以修改或终止该实例的用户。 (只能通过使用实例ID来限制用户对特定实例的实例终止和修改能力,实例ID仅在创build该实例后才创build。)(另外,您也无法限制例如,一个用户可以同时运行的实例数量,同样,AWS也没有提供的function)。

如果你想要这种能力的分离,你需要使用白皮书场景1(你创build并pipe理实例,每个学生只在他们指定的服务器上获得一个唯一的ssh密钥)或者3(每个学生获得一个单独的帐户尽pipe如此,您可能还需要创build和pipe理每个帐户的IAMangular色和实例限制,以防止意外支出)。