【问题标题】:AWS IAM Access ManagementAWS IAM 访问管理
【发布时间】:2017-05-13 06:29:51
【问题描述】:

我知道您可以设置 IAM 政策来限制对服务的访问。但是,是否可以设置策略以允许访问服务的一部分。

例如我是两个 EC2 实例。我需要创建两个用户,以便他们可以访问 AWS 控制台,但每个用户只能访问一个 EC2 实例。

【问题讨论】:

    标签: amazon-web-services amazon-iam


    【解决方案1】:

    是的,您可以使用 Resource-Level Permissions for EC2 进行此操作

    资源的结构声明in the documentation如下:

    arn:aws:[service]:[region]:[account]:resourceType/resourcePath
    

    以下是您为每个用户构建 IAM 策略的方式:

    用户 1

    {
       "Version": "2012-10-17",
       "Statement": [{
          "Effect": "Allow",
          "Action": "ec2:*",
          "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/InstanceIdOne"
        }
       ]
    }
    

    用户 2

    {
       "Version": "2012-10-17",
       "Statement": [{
          "Effect": "Allow",
          "Action": "ec2:*",
          "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/InstanceIdTwo"
        }
       ]
    }
    

    【讨论】:

      【解决方案2】:

      无法访问 EC2:DescribeInstance 的策略将不起作用。您需要允许 DescribeInstances 访问所有资源,并根据需要管理其他访问权限,例如修改、删除特定实例。

      简而言之,允许所有用户执行所有基本操作,如描述标签、实例、网络ACL、图像等,并允许特定的破坏性操作,如修改和删除来选择用户。

      EC2 操作列表供您参考 http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html

      所以你有两个选择-

      1. 创建一个如下所示的策略并将相同的策略附加到两个用户

        {
          "Version": "2012-10-17",
          "Statement": [{
          "Effect": "Allow",
          "Action": "ec2:*Describe*",
          "Resource":"*",
          },
          {
            "Effect": "Allow",
            "Action": [
                 "ec2:*Modify*",
                 "ec2:*Delete*"
            ],
            "Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/**user-name-1**" },
            "Resource": "arn:aws:ec2:us-east-1:AWS-account-ID:instance/**InstanceIdOne**"
         },
         {
            "Effect": "Allow",
            "Action": [
               "ec2:*Modify*",
               "ec2:*Delete*"
         ],
            "Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/**user-name-2**" },
            "Resource": "arn:aws:ec2:us-east-1:AWS-account-ID:instance/**InstanceIdTwo**"
         }
        ]}
        
      2. 创建 2 个不同的策略。以下示例

        {
          "Version": "2012-10-17",
          "Statement": [{
          "Effect": "Allow",
          "Action": "ec2:*Describe*",
          "Resource":"*",
          },
          {
             "Effect": "Allow",
             "Action": [
                 "ec2:*Modify*",
                 "ec2:*Delete*"
             ],
             "Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/**user-name-1**" },
             "Resource": "arn:aws:ec2:us-east-1:AWS-account-ID:instance/**InstanceIdOne**"
         }
        ]}
        

      【讨论】:

        猜你喜欢
        • 2018-05-04
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        • 2022-06-30
        • 1970-01-01
        • 2023-03-27
        • 2013-02-27
        • 2021-06-17
        相关资源
        最近更新 更多