创建亚马逊云存储连接
本步骤的目标是:允许 Lakehouse 集群访问亚马逊云(AWS)的对象存储 S3。为了完成这个目标,可以通过AWS 的身份与访问管理(IAM) 产品提供的两种身份认证方式:访问密钥 和 角色授权。
基于访问密钥
参数:
- TYPE:为对象存储类型,AWS 应填写 S3(大小写不限)
- ACCESS_KEY / SECRET_KEY:为AWS 的访问密钥,获取方式参考:访问密钥
- ENDPOINT: S3 的服务地址,AWS 中国区分为北京区和宁夏区,北京区的S3 的服务地址为
s3.cn-north-1.amazonaws.com.cn
, 宁夏区s3.cn-northwest-1.amazonaws.com.cn
,可参考:中国区终端节点 分别找到北京区域和宁夏区域的终端节点 -> Amazon S3 对应的终端节点 - REGION:AWS 中国区分为北京区和宁夏区,区域值为:北京区
cn-north-1
, 宁夏区cn-northwest-1
,可参考:中国区终端节点
基于角色授权
需要在目标云对象存储 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>
和<perfix>
名称
- 选择 下一步,输入策略名称如,(LakehouseAccess)和描述(选填)
- 点击创建策略完成策略创建
STEP2: AWS侧创建角色 (LakehouseVolumeRole):
- 登录AWS 云平台,进入身份与访问管理(IAM) 产品控制台
- 在 IAM 页面左侧导航栏进入角色 -> 创建角色 -> AWS账户,选择 另一个AWS账户,在 Account ID 输入
028022243208
- 选择下一步,在添加权限(Add permissions)页面,选择STEP1 中创建的策略
LakehouseAccess
后,选择下一步 - 填写 Role name (例:
LakehouseVolumeRole
) 和描述,点击 创建角色 完成角色创建 - 在角色详情页中,获取 Role ARN 的值,用来创建 STORAGE CONNECTION
STEP2: 云器 Lakehouse 侧创建 STORAGE CONNECTION :
- 在 Studio 或者 Lakehouse JDBC 客户端中执行以下命令:
- 在创建存储连接的过程中,Lakehouse 会生成此EXTERNAL ID,可以将此EXTERNAL ID 配置到 STEP2创建的 AWS IAM 角色(
LakehouseVolumeRole
)的 Trust Policy 中,实现附加的访问控制:
- 在AWS IAM 的控制台,左侧导航栏中进入角色 Roles,找到 STEP2 中创建的角色并进入角色详情页面,在 Trust relationships 中将
sts:ExternalId
的值000000
替换为 DESC 结果中的EXTERNAL_ID
。点击更新 完成角色策略更新。
联系我们