如何在AWS控制台中按用户组限制AWS实例?

时间:2014-07-06 09:33:24

标签: amazon-web-services

在AWS环境中,我同时拥有开发和生产实例,属于"开发人员的AWS用户" group应该只能看到开发实例,但来自" admin"组应该看到所有实例。我如何制作它以便每个人都能在AWS控制台中看到他们有权访问的内容?

1 个答案:

答案 0 :(得分:1)

您需要创建IAM策略以仅允许访问特定实例。这将需要IAM政策:

{
  "Statement": [
    {
      "Sid": "Stmt1404698512098",
      "Action": "ec2:*",
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:region:account:instance/i-123456"
    }
  ]
}

上述策略允许用户将其应用于对实例i-123456上的所有EC2命令的完全访问权限。您应该阅读IAM Policies for EC2上的文档,以确保您完全理解所有可用的EC2操作,条件等。

如果您尝试将资源完全隔离到特定组,那么管理这样的策略会很快变得非常复杂。如果您开始使用除EC2之外的其他AWS资源,或者即使您刚刚启动并终止大量EC2实例,您的IAM策略也会很快变得非常复杂。如果您使用的是EC2以外的服务,则需要了解IAM如何与每个服务一起使用,并为每个服务创建策略,以根据需要限制每个服务的访问。

您可能想要考虑另一种隔离用户的方法,我们公司已经使用了几年。我们实际上有5个不同的AWS账户,每个账户用于不同的目的。例如,一个帐户适用于开发人员,因此他们可以测试他们想要的任何内容,如果他们破坏某些东西就没什么大不了的。另一个帐户是我们的公司IT部门,IT部门使用它来为公司提供服务,例如我们的维基等。其他AWS账户适用于我们拥有的各种生产环境。唯一可以访问所有这些帐户的人是我们的高级AWS管理员。仅在需要时向其他人提供访问,并且在每个环境中使用IAM以仅在必要时进一步限制访问。我们进一步利用Amazon's consolidated billing service将所有帐户链接在一起,这样就亚马逊而言,它们实际上是一个大帐户。这使我们对AWS资源的管理变得更加容易,因为我们不必尝试在我们使用的所有AWS服务中创建和管理多个IAM策略。