获取 AWS IAM Role ARN 和 External ID

在配置 AWS PrivateLink 访问 Lakehouse 网络时,为保障 Lakehouse 能够读取你 AWS 账号内的 VPC Endpoint、Endpoint Service 和连接状态,需要在 AWS 账号中创建一个独立的 IAM Role,并使用 External ID 限制跨账号访问。创建完成后,将 Role ARN 和 External ID 填入 Lakehouse 私网连接白名单。

前提条件

请先在 Lakehouse“私网连接”或“添加白名单”弹窗中复制以下信息:

  • Lakehouse 用于 AssumeRole 的 AWS Principal(可能显示为 AWS 账号主体或完整 Role ARN)。
  • Lakehouse 为本次连接生成的 External ID。
  • Lakehouse 页面要求的 AWS Region 或服务实例信息。

如果页面没有提供这些值,请联系 Lakehouse 技术支持,不要自行填写 AWS 账号或 External ID。

操作步骤

以下操作需要在 AWS 控制台完成。

  1. 创建 IAM Role。进入 IAM > Roles > Create role,选择 Custom trust policy。将

    <LAKEHOUSE_PRINCIPAL>
    <LAKEHOUSE_PRINCIPAL>
    <EXTERNAL_ID_FROM_LAKEHOUSE>
    <EXTERNAL_ID_FROM_LAKEHOUSE>
    替换为 Lakehouse 页面提供的实际值:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "<LAKEHOUSE_PRINCIPAL>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<EXTERNAL_ID_FROM_LAKEHOUSE>" } } } ] }

    如果 Lakehouse 提供的是账号 ID,可将 Principal 写成

    arn:aws:iam::<lakehouse-account-id>:root
    arn:aws:iam::<lakehouse-account-id>:root
    ;如果提供的是完整 Role ARN,应直接使用该 ARN。仅信任 Lakehouse 指定的主体,不要使用
    *
    *

  2. 授予 VPC 只读权限。为该 Role 添加权限策略。推荐先使用自定义最小策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcEndpointConnections", "ec2:DescribeVpcEndpointServiceConfigurations", "ec2:DescribeVpcEndpointServicePermissions", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" } ] }

    这些权限仅用于读取 Endpoint、Endpoint Service、连接状态和 Endpoint Network Interface 信息,不包含创建、修改或删除网络资源的权限。如果 Lakehouse 页面明确要求其他 Describe API,请仅按页面提示补充;也可以使用 AWS 托管的

    AmazonVPCReadOnlyAccess
    AmazonVPCReadOnlyAccess
    ,但其权限范围更大。

  3. 记录 Role ARN。创建 Role 后,进入 Role 详情页复制 ARN,格式通常为:

    arn:aws:iam::<customer-account-id>:role/<role-name>

  4. 在 Lakehouse 添加白名单。回到 Lakehouse 私网连接页面,在“添加白名单”弹窗中填入:

    • AWS Role ARN:上一步复制的 Role ARN;
    • External ID:Lakehouse 弹窗提供的 External ID;
    • AWS 账号、Region 或其他字段:按页面要求填写。

    保存后,Lakehouse 会使用该 Role 读取 AWS Endpoint 或 Endpoint Service 状态。只有在 Role 信任策略、External ID、权限策略和 Region 均正确时,状态读取才会成功。

安全建议

  • 每个 Lakehouse 环境使用独立 Role 和独立 External ID,不要复用给其他第三方。
  • External ID 必须通过 Lakehouse 页面生成或提供;不要把固定示例值直接用于生产环境。
  • Role 不要附加写入、创建、删除 VPC 资源的权限。
  • 定期检查 CloudTrail 中的
    AssumeRole
    AssumeRole
    事件,确认调用主体、External ID 和调用 Region 符合预期。
  • 如果更换 Role ARN 或 External ID,请同步更新 Lakehouse 白名单,否则私网连接状态可能无法继续读取。
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询