View a markdown version of this page

Connect 连接到私有托管的源代码管理 - AWS 安全代理

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Connect 连接到私有托管的源代码管理

重要

AWS 安全代理的私有连接处于预览版,可能会发生变化。

AWS Security Agent 可以连接到在私有网络中运行的源代码控制系统,例如 GitLab Self-Managed 实例和 GitHub 企业服务器。私有连接使用 Amazon VPC Lattice 在 AWS 安全代理和您的私有基础设施之间建立安全的连接,而无需将您的系统暴露在公共互联网上。

私有连接的工作原理

私有连接在 AWS 安全代理和您的 VPC 中的目标资源之间创建了一条安全的网络路径。在幕后,AWS 安全代理使用 Amazon VPC Lattice 来建立这种连接。VPC Lattice 是一项 AWS 应用程序联网服务,用于连接、保护和监控 VPC 和账户间服务之间的流量,而无需您管理底层网络基础设施。

创建私有连接时:

  1. 您提供与目标服务具有网络连接的 VPC、子网和(可选)安全组。

  2. AWS 安全代理创建服务托管资源网关,并在您指定的子网中配置弹性网络接口 (ENI)。

  3. 代理使用资源网关通过私有网络路径将流量路由到目标服务的 IP 地址或 DNS 名称。

Service-managed 与自我管理的私有连接对比

AWS 安全代理支持两种私有连接模式:

Service-managed(建议用于简单设置):

  • AWS 安全代理为您创建和管理 VPC 莱迪思资源网关。

  • 目标服务必须在创建代理空间的同一 AWS 账户中运行。

  • 不能跨越多个 AWS 账户。

Self-managed(适用于高级或跨账户设置):

  • 您可以创建和管理自己的VPC Lattice资源配置。

  • 您提供现有资源配置的 Amazon 资源名称 (ARN)。

  • 支持跨账户访问(客户管理跨账户联网)。

先决条件

在创建私有连接之前,请确认您已经:

  • 活跃的代理空间

  • 使用已知私有 IP 地址GitLab Self-Managed 或 DNS 名称可私密访问的目标服务(或 GitHub 企业服务器)

  • 目标服务必须使用 TLS 最低版本为 1.2 的 HTTPS 流量提供服务

  • 您的 VPC 中的子网(1-20 个子网)。我们建议在多个可用区中选择子网以实现高可用性。

  • (可选)用于控制 ENI 流量的安全组(最多 5 个)

注意

VPC Lattice 不支持以下可用区:use1-az3usw1-az2apne1-az3apne2-az2、、euc1-az2euw1-az4cac1-az3ilc1-az2

注意

私有连接是账户级别的资源。创建私有连接后,可以在需要访问同一主机的多个集成和代理空间中重复使用该连接。

注意

当您为使用 OAuth 身份验证的提供商选择私有连接时,私有连接将同时应用于提供商端点和令牌交换端点。确保私有连接配置的主机地址可以将流量路由到两个端点。

创建私有连接

  1. 在 AWS 安全代理管理控制台中,导航到 “集成”。

  2. 选择 “专用连接” 选项卡。

  3. 选择 “创建私有连接”。

  4. 在 “连接详细信息” 下,输入名称。名称可以包含小写字母、数字和连字符,并且必须以字母或数字开头和结尾。

  5. 连接详情部分,选择 AWS 安全代理如何连接到您的目标服务:

    • 要让 AWS Security Agent 创建和管理连接,请清除 “使用现有资源配置”,然后填写 “资源位置”、“访问控制” 和 “服务目标详情” 部分。

    • 要通过您已经创建的 VPC Lattice 资源配置进行路由,请选择使用现有资源配置,然后完成现有资源配置部分。服务管理部分不适用。

  6. (Service-managed) 在 “资源位置” 下:

    1. 选择您的资源所在的 VPC

    2. 选择一个或多个子网。我们建议在至少两个可用区中选择子网。

    3. (可选)选择 IP 地址类型(IPv4、IPv6 或双堆栈)。

  7. (Service-managed) 在 “访问控制” 下:

    1. 选择与您连接的资源关联的安全组

    2. (可选)在 “高级配置” 下,输入端口范围,例如,最多 11 个以逗号分隔的 TCP 端口或范围。443, 8080-8090

  8. (Service-managed) 在 “服务目标详细信息” 下:

    1. 主机地址字段中,输入目标服务的 DNS 主机名或 IP 地址。

    2. 对于 DNS 解析,对于可公开解析的主机地址,选择在 VPC 中(私有 DNS),选择只能在 VPC 内解析的地址。

    3. (可选)如果您的目标使用自签名证书或私有证书颁发机构,请在 “证书 PEM-encoded 公钥” 字段中输入公钥。这允许 AWS 安全代理信任 TLS 连接。

  9. (Self-managed) 在 “现有资源配置” 下,对于资源配置,从列表中选择 VPC Lattice 资源配置,或者输入资源配置 ID(以开头rcfg-)或其 ARN。该列表显示了当前区域的资源配置。

  10. 选择创建连接

    连接状态更改为 “正在创建”。这一过程耗时最多 10 分钟。完成后,状态将更改为 “可”。

使用私有连接进行集成

注册 GitLab Self-Managed 或 En GitHub terprise Server 集成时,选择 “使用专用连接连接到端点”,然后从 “专用连接” 列表中选择您的连接。AWS 安全代理通过该连接将流量路由到提供商。只有状态为 “可” 的连接才会出现在列表中。

您也可以在注册期间选择 “创建私有连接”。AWS Security Agent 会在您创建连接时保留您的注册草稿,然后将您返回到注册流程。

安全性

  • 没有公开的互联网接触-所有流量都保留在 AWS 网络上。

  • Customer-controlled 安全组-您可以管理入站和出站流量规则。

  • Service-linked 权限最低的角色-AWS 安全代理使用服务相关角色,其范围仅限于标记为的资源。AWSSecurityAgentManaged

注意

如果您的组织有限制VPC Lattice API操作的服务控制策略 (SCP),则服务管理资源网关是通过服务相关角色创建的。确保您的 SCP 允许服务相关角色执行必要的操作。

验证私有连接

私有连接达到 “可用” 状态后,请验证连接:

  • 确保您的目标服务正在运行并接受预期端口上的连接

  • 验证连接到 ENI 的安全组是否允许目标端口上的出站流量

  • 验证您的服务的安全组是否允许来自您的 VPC CIDR 范围内的 VPC Lattice 数据平面 IP 的入站流量

  • 确认子网路由表允许 ENI 子网和您的服务之间的流量

删除私有连接

  1. 在 AWS 安全代理控制台中,导航到 “集成”。

  2. 选择 “专用连接” 选项卡。

  3. 选择要删除的专用连接。

  4. 选择删除

重要

您无法删除集成当前正在使用的私有连接。先移除集成,然后删除私有连接。

后续步骤