【问题标题】:Restrict IAM users to a single VPC将 IAM 用户限制为单个 VPC
【发布时间】:2020-10-09 19:23:20
【问题描述】:

我的账户中有两个 VPC。一个用于测试,另一个用于生产环境。

我正在尝试为开发人员设置 IAM 用户帐户,具有权限边界,以便开发人员只能访问在测试 VPC 中创建/修改资源。

我该怎么做?你能分享一个示例策略 JSON 吗?

【问题讨论】:

  • 最好设置单独的测试和生产帐户。您可以在 一些 操作上使用条件,但不是全部,开发人员通常需要测试帐户中的广泛权限来识别问题。
  • “只能访问测试 VPC”是什么意思?您是指在 VPC 中创建 EC2 实例的能力,还是指在 VPC 中登录/使用资源的能力?请编辑您的问题以添加更多详细信息,而不是在评论中回复。

标签: amazon-web-services amazon-iam amazon-vpc


【解决方案1】:

Amazon VPC 是一个虚拟网络。

不可能根据“用户”控制对网络的访问,因为网络不了解用户。它只能通过IP地址和协议控制流量。

如果您希望开发人员能够在测试环境而非 Prod 环境中登录实例,则您需要控制实例本身的访问权限(例如,当他们登录 EC2 时)实例),或控制对网络的访问(例如,通过控制对 VPN 连接的访问​​或让开发人员访问具有已知 IP 地址范围的网络上的资源)。

这与控制公司网络的访问权限完全相同——开发人员可以被放置在可以访问测试资源的网络上,而系统管理员可以被放置在可以访问产品资源的网络上。这与他们的计算机如何连接到网络有关,而不是与他们的“身份”有关。

如果您的目标是限制开发人员在 VPC 中创建/更改资源的能力,则可以通过向 IAM 策略添加条件来实现。例如,授予他们在测试 VPC 中启动 EC2 实例的能力。

见:How to Help Lock Down a User’s Amazon EC2 Capabilities to a Single VPC | AWS Security Blog

【讨论】:

  • 我的目标是限制开发人员在 VPC 中创建/更改资源的能力。我期待一个简单的“权限边界”策略,它限制对 VPC 中所有资源(所有类型)的访问,同时提供对同一账户中另一个 VPC 的访问。
  • 不幸的是,这并不容易。您需要在允许他们创建资源的任何命令上添加 Conditions,以便这些资源仅限于特定的 VPC。 VPC 没有“权限边界”。见:How to Help Lock Down a User’s Amazon EC2 Capabilities to a Single VPC | AWS Security Blog
  • 这不仅是最佳实践,而且强烈建议为不同的环境使用不同的帐户。这将为您提供真正的关注点分离。
【解决方案2】:

我得到的是你试图限制用户使用特定 VPC 下的服务。我做了同样的事情来允许用户更新仅在特定 VPC 内的 Lambda 函数。这可以像下面这样完成:

{
  "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAllResources",
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        },
        {
            "Sid": "DenyLambdaUpdatIfNotInsideVPC",
            "Effect": "Deny",
            "Action": [
                "lambda:CreateFunction",
                "lambda:UpdateFunctionConfiguration"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "lambda:VpcIds": "your vpc id"
                }
            }
        }
    ]
}

通过这种方式,您可以通过在拒绝语句中编写服务及其具体操作来限制用户访问您的 VPC 之外的资源。

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2020-01-27
    • 1970-01-01
    • 2016-10-28
    • 2015-11-10
    • 1970-01-01
    • 2022-08-16
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多