【问题标题】:S3 Integration with Snowflake: Best way to implement multi-tenancy?S3 与 Snowflake 的集成:实现多租户的最佳方式?
【发布时间】:2021-05-19 23:33:12
【问题描述】:

我的团队正计划构建一个涉及 S3 与 Snowflake 集成的数据处理管道。来自 Snowflake 的This article 表明,必须创建 AWS IAM 角色才能让 Snowflake 访问 S3 的数据。

但是,在我们的管道中,我们需要确保用户之间的多租户和数据隔离。例如,假设 Alice 和 Bob 在 S3 中的文件分别位于 "s3://bucket-alice/file_a.csv""s3://bucket-bob/file_b.csv" 下。然后,我们要确保在将 Alice 的数据暂存到 Snowflake 时,Alice 只能访问"s3://bucket-alice",而在"s3://bucket-bob" 下什么也不能访问。这意味着必须为每个用户创建单独的 AWS IAM 角色。

我确实意识到 Snowflake 有自己的access control system,但我的团队希望确保从管道的 S3 到 Snowflake 阶段完全实现数据隔离,而不仅仅是依赖于 Snowflake 的访问控制。

我们担心这将无法扩展,因为 AWS 设置了 a limit of 5000 IAM users,并且在我们扩展产品时这还不够。这是确保数据多租户的唯一方法吗?有人有类似的真实应用示例吗?

【问题讨论】:

  • 嗨 - 在这种情况下,您对多租户的定义是什么?您是否计划让每个租户中的用户有可能访问所有 Snowflake 功能,或者您是否计划限制他们可以做的事情,例如他们只能查询数据,而您作为多租户的所有者,将负责任何数据加载?

标签: amazon-s3 snowflake-cloud-data-platform


【解决方案1】:

您是否探索过利用 Snowflake 的内部舞台?默认情况下,每个用户都有自己的内部阶段,只有他们有权从 Snowflake 内部访问,并且在 Snowflake 外部没有访问权限。 Snowflake 提供了使用 Snowflake 可用的几乎所有驱动程序/连接器将数据移入和移出该内部阶段的能力。也就是说,超过 5000 名用户使用的任何管道/工作流都可以使用这些连接器将数据加载到 Snowflake Internal Stage (S3),而无需任何额外的 AWS IAM 用户。对于您的情况,这是否是一个足够的解决方案?

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2015-08-21
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多