You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让VPC内的AWS Glue作业跨账户访问AWS CodeArtifact?

解决方案:跨账户VPC端点访问CodeArtifact(Glue VPC内作业场景)

前提条件

  • 已通过AWS Organizations配置跨账户CodeArtifact访问权限(A账户的IAM实体可访问共享服务账户的CodeArtifact仓库)
  • A账户的Glue作业已配置VPC运行基础权限(具备EC2网络接口相关IAM权限)

步骤1:在共享服务账户中配置CodeArtifact VPC端点服务

  1. 创建CodeArtifact接口VPC端点

    • 进入共享服务账户的VPC控制台,创建接口VPC端点,选择服务名称为com.amazonaws.<region>.codeartifact.api和com.amazonaws.<region>.codeartifact.repositories(替换<region>为实际AWS区域)
    • 选择适配的VPC和子网,配置安全组允许443端口入站(后续通过VPC端点服务控制访问范围)
    • 启用私有DNS名称,确保可使用默认CodeArtifact域名访问
  2. 创建VPC端点服务(基于Network Load Balancer)

    • 创建Network Load Balancer(NLB),选择与上述CodeArtifact VPC端点同VPC的子网
    • 为NLB创建目标组,目标类型选网络接口,添加CodeArtifact VPC端点的弹性网络接口(ENI)作为目标,端口设为443
    • 创建VPC端点服务并关联该NLB
    • 在VPC端点服务的允许的主体中添加A账户ARN(格式:arn:aws:iam::<a-account-id>:root)或A账户所在OU/组织的ARN,授权A账户发起连接

步骤2:在A账户中配置VPC端点连接共享服务

  1. 创建接口VPC端点

    • 进入A账户的VPC控制台,创建接口VPC端点,选择其他终端节点服务,输入共享服务账户VPC端点服务的完整名称(格式:com.amazonaws.vpce.<region>.vpce-svc-<service-id>)
    • 选择Glue作业运行的VPC和子网,配置安全组:允许Glue作业使用的安全组访问443端口
    • 启用私有DNS名称,确保Glue作业可通过默认CodeArtifact域名访问
  2. 配置VPC端点策略(可选)

    • 为A账户的VPC端点添加策略,限制仅Glue作业的IAM角色可访问,示例策略:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::<a-account-id>:role/<glue-job-role-name>"
            },
            "Action": "*",
            "Resource": "*"
          }
        ]
      }
      

步骤3:配置Glue作业和验证

  1. 调整Glue作业VPC设置

    • 编辑Glue作业,选择运行的VPC、子网(需包含上述VPC端点的子网)和安全组(需允许访问VPC端点的443端口)
    • 确保Glue作业的IAM角色已具备访问共享服务账户CodeArtifact的权限(如codeartifact:GetAuthorizationToken、codeartifact:ReadFromRepository等,资源指定共享服务账户的CodeArtifact仓库ARN)
  2. 验证配置

    • 在A账户VPC内启动同子网/安全组的EC2实例,测试通过pip install拉取共享服务账户的CodeArtifact包,确认VPC端点生效
    • 运行Glue作业,验证是否可正常访问CodeArtifact拉取私有包

关键注意事项

  • 确保共享服务账户和A账户的VPC都启用DNS支持(enableDnsHostnames和enableDnsSupport设为true),否则私有DNS无法正常解析
  • VPC端点服务的NLB必须与CodeArtifact VPC端点在同一VPC,确保流量内部转发
  • 跨账户权限需同时满足:共享服务账户的CodeArtifact资源策略允许A账户访问,A账户的VPC端点策略允许Glue角色访问,VPC端点服务的允许主体包含A账户

内容的提问来源于stack exchange,提问作者teejay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:05:58