是否有专门允许访问 AWS KMS 的 AWS 安全组规则?

Is there an AWS security group rule specifically allowing access to AWS KMS?

我在 EC2 中有一个 node.js 服务器 运行,它使用 AWS KMS 来 encrypt/decrypt 数据。 我可以使用

成功使用 aws-sdk 执行我的任务
const AWS = require('aws-sdk');
const kms = new AWS.KMS();
kms.decrypt( ... )

我现在想使用安全组来锁定我的基础设施。 我无法确定使用什么规则允许此服务器访问 AWS KMS 资源而没有传出规则允许任何地方的所有流量:

Outbound rules:
Type        | Protocol | Port range | Destination
All traffic | All      | All        | 0.0.0.0/0 
All traffic | All      | All        | ::/0 

这可能有点过分,但是有没有我可以使用的规则专门允许出站访问 AWS KMS 服务

A CIDR block, a security group ID or a prefix list has to be specified,所以我无法使用来自 KMS 服务对象的端点主机名或 href:

kms Service {
  ...
  isGlobalEndpoint: false,
  endpoint: Endpoint {
    protocol: 'https:',
    host: 'kms.eu-west-2.amazonaws.com',
    port: 443,
    hostname: 'kms.eu-west-2.amazonaws.com',
    pathname: '/',
    path: '/',
    href: 'https://kms.eu-west-2.amazonaws.com/'
  },
  ...
}

检查 https://kms.eu-west-2.amazonaws.com/ 的远程地址提供了 52.94.48.24:443 的 IP 地址。在特定规则中使用它会间歇性地工作,但我找不到任何 AWS 文档表明此 IP 地址是固定的。我想应该不是。

Type        | Protocol | Port range | Destination
HTTPS       | TCP      | 443        | 52.94.48.24/32

非常感谢任何指导!

谢谢,A.

我假设通过锁定您的基础设施,我们了解到您将 EC2 实例作为 KMS 服务的 private subnet. In this case you should create a VPC Endpoint

VPC 端点将在您的子网中有一个网络接口,它将为每个子网提供一个私有 IP 地址以及潜在的私有 DNS 主机名(如果 VPC 启用了此 属性)。

此外,您可以根据安全组(无需指定 IP)允许 EC2 实例和 VPC 端点之间的流量。