采用这种方法后,客户可以在一个位置 (即所承担角色的 IAM 策略) 统一管理对其 S3 存储桶的所有访问,而不必逐个修改各个存储桶策略来添加或移除访问权限。 在下文中,您将了解如何完成此设置。
获取 ClickHouse 服务的 IAM 角色 ARN
- 登录到你的 ClickHouse Cloud 账户。
- 选择要为其创建集成的 ClickHouse 服务
- 选择 Settings 选项卡
- 向下滚动到页面底部的 Network security 信息 部分
- 复制如下所示该服务的 Service role ID (IAM) 值。
配置 IAM Assume Role
通过 CloudFormation stack 部署
- 在 Web 浏览器中,使用具有创建和管理 IAM 角色 权限的 IAM 用户登录您的 AWS 账户。
- 访问以下 CloudFormation URL,填写 CloudFormation stack。
- 在标题为 “ClickHouse Instance Roles” 的输入框中,输入 (或粘贴) 您之前获取的服务 role ID (IAM) 。 您可以直接粘贴其在 Cloud Console 中显示的服务 role ID。
-
在标题为 “Bucket Names” 的输入框中输入您的 存储桶 名称。如果您的 存储桶 URL 为
https://ch-docs-s3-bucket.s3.eu-central-1.amazonaws.com/clickhouseS3/,则 存储桶 名称为ch-docs-s3-bucket。
请勿填写完整的 存储桶 ARN,只需填写 存储桶 名称。
- 配置 CloudFormation stack。以下是这些参数的更多信息。
- 选中 I acknowledge that AWS CloudFormation might create IAM resources with custom names. 复选框
- 点击右下角的 Create stack 按钮
- 确认 CloudFormation stack 已成功完成且没有报错。
- 选择新创建的 Stack,然后选择 CloudFormation stack 的 Outputs 选项卡
- 复制此 集成 的 RoleArn 值,这就是访问您的 S3 存储桶 所需的内容。
手动创建 IAM 角色
- 使用具有创建和管理 IAM 角色 权限的 IAM 用户,在 Web 浏览器中登录你的 AWS 账户。
- 打开 IAM 服务控制台
-
使用以下 IAM 策略和信任策略创建一个新的 IAM 角色。将
{ClickHouse_IAM_ARN}替换为你的 ClickHouse 实例所属的 IAM 角色 ARN。
- 创建完成后,复制新的 IAM Role Arn,访问你的 S3 存储桶时需要用到它。
使用 ClickHouseAccess 角色访问您的 S3 存储桶
extra_credentials。
下面是一个示例,说明如何使用上文复制的新建角色运行查询。
role_session_name 作为共享密钥来查询存储桶中的数据。
如果 role_session_name 不正确,此操作将失败。
我们建议将源 S3 与 ClickHouse Cloud 服务部署在同一区域,以降低数据传输成本。
更多信息,请参阅 S3 定价
高级访问控制
aws:SourceVpce 条件,将存储桶策略限制为仅接受来自 ClickHouse Cloud VPC 端点的请求。要获取所在 ClickHouse Cloud 区域的 VPC 端点,请打开终端并运行: