我在 AWS 上有一个 SQL Server 实例,我已通过更改我的安全组以允许从"Everywhere"进行访问来打开该实例以供外部访问。
+-------------+----------+------------+--------------------------+
| Type | Protocol | Port Range | Source |
+-------------+----------+------------+--------------------------+
| MSSQL | TCP | 1433 | Custom 0.0.0.0/0 |
| MSSQL | TCP | 1433 | Custom ::/0 | †
+-------------+----------+------------+--------------------------+
我想限制对此数据库的访问,尽管不是通过 IP 地址,因为我将用于访问它的服务没有静态 IP。
如何加强对此数据库的入站访问,以便与外部服务(例如 Firebase 函数或 NodeJS 应用程序(一起使用?
† 在安全组入站规则部分中选择"无处不在"和"MSSQL"时生成的 AWS 安全组规则
> AFAIK,在不知道静态 IP 或您需要访问 EC2 实例的 IP 范围(托管 SQL Server 的位置(的情况下,没有直接的方法可以实现这一点。
但。。。
您可以将实例包含在 API 网关后面,然后在 API 网关中为 API 方法启用 IAM 身份验证。然后使用 IAM 策略(以及资源策略(为 API 的用户指定权限。
更多: https://aws.amazon.com/premiumsupport/knowledge-center/iam-authentication-api-gateway/
没有直接的限制方法。
AWS云 - 解决方案 (AWS中的所有服务/实例(
如果您的 NodeJS 应用程序在 AWS 上运行,或者您使用的是 AWS Lambda 服务,则可以允许在同一 VPC 中单独跨安全组进行访问。(如果使用多个账户 - 可以完成 VPC 对等连接(
对于您想要限制对可公开访问的数据库的访问的情况,就像其他人所说的那样,除了普通的旧VPN解决方案之外,我想不出其他方法。客户端通过 VPN 连接到数据库,并将数据库实例移动到私有子网。但我不确定你实施它的可行性如何。