创建亚马逊云存储连接

本步骤的目标是:允许 Lakehouse 集群访问亚马逊云(AWS)的对象存储 S3。为了完成这个目标,可以通过AWS 的身份与访问管理(IAM) 产品提供的两种身份认证方式:访问密钥角色授权

基于访问密钥

CREATE STORAGE CONNECTION aws_bj_conn TYPE S3 ACCESS_KEY_ID = 'AKIAQNBSBP6EIJE33***' SECRET_ACCESS_KEY = '7kfheDrmq***************************' ENDPOINT = 's3.cn-north-1.amazonaws.com.cn' REGION = 'cn-north-1';

参数:

  • TYPE:为对象存储类型,AWS 应填写 S3(大小写不限)
  • ACCESS_KEY_ID / SECRET_ACCESS_KEY:为AWS 的访问密钥,获取方式参考:访问密钥
  • ENDPOINT: S3 的服务地址,AWS 中国区分为北京区和宁夏区,北京区的S3 的服务地址为
    s3.cn-north-1.amazonaws.com.cn
    s3.cn-north-1.amazonaws.com.cn
    , 宁夏区
    s3.cn-northwest-1.amazonaws.com.cn
    s3.cn-northwest-1.amazonaws.com.cn
    ,可参考:中国区终端节点 分别找到北京区域和宁夏区域的终端节点 -> Amazon S3 对应的终端节点
  • REGION:AWS 中国区分为北京区和宁夏区,区域值为:北京区
    cn-north-1
    cn-north-1
    , 宁夏区
    cn-northwest-1
    cn-northwest-1
    ,可参考:中国区终端节点。国际站请参考:Amazon Simple Storage Service endpoints and quotas

基于角色授权

需要在目标云对象存储 S3 所属的账号,在 IAM 中创建一个权限策略角色:权限策略代表访问AWS S3 数据的规则,将这个策略授权给创建的角色。云器 Lakehouse 通过扮演这个角色来实现与 S3 中数据的读写操作。

STEP1: AWS侧创建权限策略 (LakehouseAccess ):

  • 登录AWS 云平台,进入身份与访问管理(IAM) 产品控制台
  • 在 IAM 页面左侧导航栏进入 账户设置,在 Security Token Service (STS) 中的 终端节点 列表中,找到当前实例对应云器Lakehouse 的区域,如果 STS 状态 的状态为未开启请开启。
  • 在 IAM 页面左侧导航栏进入 策略,在 策略 界面选择 创建策略,在策略编辑器中选择 JSON 方式
  • 将要添加允许云器Lakehouse 访问 S3 bucket 和目录的策略。下面是策略的样例,请用实际的bucket 和路径前缀名称替换
    <bucket>
    <bucket>
    <perfix>
    <perfix>
    名称

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::<bucket>/<prefix>/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::<bucket>", "Condition": { "StringLike": { "s3:prefix": [ "<prefix>/*" ] } } } ] }

  • 选择 下一步,输入策略名称如,(LakehouseAccess)和描述(选填)
  • 点击创建策略完成策略创建

STEP2: AWS侧创建角色 (LakehouseVolumeRole):

  • 登录AWS 云平台,进入身份与访问管理(IAM) 产品控制台
  • 在 IAM 页面左侧导航栏进入角色 -> 创建角色 -> AWS账户,选择 另一个AWS账户,在 Account ID 输入
    028022243208(中国站) / 014617434350(国际站)
    028022243208(中国站) / 014617434350(国际站)

  • 选择下一步,在添加权限(Add permissions)页面,选择STEP1 中创建的策略
    LakehouseAccess 
    LakehouseAccess
    ,选择下一步
  • 填写 Role name (例:
    LakehouseVolumeRole
    LakehouseVolumeRole
    ) 和描述,点击 创建角色 完成角色创建
  • 在角色详情页中,获取 Role ARN 的值,用来创建 STORAGE CONNECTION

STEP3: 云器 Lakehouse 侧创建 STORAGE CONNECTION :

  • 在 Studio 或者 Lakehouse JDBC 客户端中执行以下命令:

CREATE STORAGE CONNECTION aws_bj_conn_arn TYPE S3 REGION = 'cn-north-1' ROLE_ARN = 'arn:aws-cn:iam::02802*******:role/LakehouseVolumeRole';

  • 在创建存储连接的过程中,Lakehouse 会生成此EXTERNAL ID,可以将此EXTERNAL ID 配置到 STEP2创建的 AWS IAM 角色(
    LakehouseVolumeRole
    LakehouseVolumeRole
    )的 Trust Policy 中,实现附加的访问控制:

-- 查看 EXTERNAL ID DESC CONNECTION aws_bj_conn_arn;

  • 在AWS IAM 的控制台,左侧导航栏中进入角色 Roles,找到 STEP2 中创建的角色并进入角色详情页面,在 Trust relationships 中将
    sts:ExternalId 
    sts:ExternalId
    的值
     000000 
    000000
    替换为 DESC 结果中的
     EXTERNAL_ID
    EXTERNAL_ID
    。点击更新 完成角色策略更新。
联系我们
预约咨询
微信咨询
电话咨询