Skip to main content
本指南介绍 ClickHouse Cloud 客户如何利用基于角色的访问控制,通过 Amazon Simple Storage Service (S3) 进行身份验证,并安全地访问其数据。 在开始配置安全的 S3 访问之前,先了解其工作原理非常重要。下面概述了 ClickHouse 服务如何通过承担客户 AWS 账户中的角色来访问私有 S3 存储桶。
采用这种方法后,客户可以在一个位置 (即所承担角色的 IAM 策略) 统一管理对其 S3 存储桶的所有访问,而不必逐个修改各个存储桶策略来添加或移除访问权限。 在下文中,您将了解如何完成此设置。

获取 ClickHouse 服务的 IAM 角色 ARN

  1. 登录到你的 ClickHouse Cloud 账户。
  2. 选择要为其创建集成的 ClickHouse 服务
  3. 选择 Settings 选项卡
  4. 向下滚动到页面底部的 Network security 信息 部分
  5. 复制如下所示该服务的 Service role ID (IAM) 值。

配置 IAM Assume Role

IAM Assume Role 可通过以下两种方式之一进行配置:

通过 CloudFormation stack 部署

  1. 在 Web 浏览器中,使用具有创建和管理 IAM 角色 权限的 IAM 用户登录您的 AWS 账户。
  2. 访问以下 CloudFormation URL,填写 CloudFormation stack。
  3. 在标题为 “ClickHouse Instance Roles” 的输入框中,输入 (或粘贴) 您之前获取的服务 role ID (IAM) 。 您可以直接粘贴其在 Cloud Console 中显示的服务 role ID。
  4. 在标题为 “Bucket Names” 的输入框中输入您的 存储桶 名称。如果您的 存储桶 URL 为 https://ch-docs-s3-bucket.s3.eu-central-1.amazonaws.com/clickhouseS3/,则 存储桶 名称为 ch-docs-s3-bucket
请勿填写完整的 存储桶 ARN,只需填写 存储桶 名称。
  1. 配置 CloudFormation stack。以下是这些参数的更多信息。
  1. 选中 I acknowledge that AWS CloudFormation might create IAM resources with custom names. 复选框
  2. 点击右下角的 Create stack 按钮
  3. 确认 CloudFormation stack 已成功完成且没有报错。
  4. 选择新创建的 Stack,然后选择 CloudFormation stack 的 Outputs 选项卡
  5. 复制此 集成 的 RoleArn 值,这就是访问您的 S3 存储桶 所需的内容。

手动创建 IAM 角色

  1. 使用具有创建和管理 IAM 角色 权限的 IAM 用户,在 Web 浏览器中登录你的 AWS 账户。
  2. 打开 IAM 服务控制台
  3. 使用以下 IAM 策略和信任策略创建一个新的 IAM 角色。将 {ClickHouse_IAM_ARN} 替换为你的 ClickHouse 实例所属的 IAM 角色 ARN。
IAM 策略
  1. 创建完成后,复制新的 IAM Role Arn,访问你的 S3 存储桶时需要用到它。

使用 ClickHouseAccess 角色访问您的 S3 存储桶

ClickHouse Cloud 允许您在 S3 表函数中指定 extra_credentials。 下面是一个示例,说明如何使用上文复制的新建角色运行查询。
下面是一个示例查询,使用 role_session_name 作为共享密钥来查询存储桶中的数据。 如果 role_session_name 不正确,此操作将失败。
我们建议将源 S3 与 ClickHouse Cloud 服务部署在同一区域,以降低数据传输成本。 更多信息,请参阅 S3 定价

高级访问控制

如需实施更严格的访问控制,可以使用 aws:SourceVpce 条件,将存储桶策略限制为仅接受来自 ClickHouse Cloud VPC 端点的请求。要获取所在 ClickHouse Cloud 区域的 VPC 端点,请打开终端并运行:
然后,在 IAM 策略中添加一条拒绝规则,并填入返回的端点:
有关访问 ClickHouse Cloud 服务端点的更多信息,请参阅 Cloud IP 地址
最后修改于 2026年7月3日