0

我想将 API 密钥限制为只能在我的 Elastic Beanstalk 环境中工作。我尝试使用 VPC 条件,但这不起作用,文档说它并不总是可用(所以我猜不在 EB 中)。

在某种程度上,通过将公共 IP 用于我的测试 EC2,我得到了它的工作,但是,随着 EB 的扩展,这并不好前进。

这是我目前适用于单一 IP 限制的关键政策:

{
  "Version": "2012-10-17",
  "Id": "key-consolepolicy-3",
  "Statement": [
    {
      "Sid": "Allow access for Key Administrators",
      <snip>
    },
    {
      "Sid": "Allow use of the key by EB user",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<account_id>:user/<my eb user>"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceIp": "<my test ec2 public ip>"
        }
      }
    }
  ]
}

我怎样才能做到这一点?是否真的可以通过 VPC 进行限制,或者是否有其他方式只允许从我的 EB 环境中访问?

4

1 回答 1

2

我想您可以做的是为您的 VPC 创建一个公共和私有子网。然后将您的公共资源(例如负载均衡器和 NAT)添加到公共子网。在私有子网中启动您的 EC2 实例。然后将 NAT IP 添加到您的条件中,如下所示:

"StringEquals": {
    "aws:SourceIp": ["54.0.0.1", "54.0.0.2"]
}
于 2017-03-15T17:53:25.267 回答