【问题标题】:Service account -- limiting access to only big query服务帐户 - 限制仅访问大查询
【发布时间】:2014-12-13 02:31:27
【问题描述】:

有没有办法在只能访问 BigQuery 而不能访问任何其他服务(GCE、App Engine 等)的 Google 云服务上下文中创建服务帐户?或者是否需要创建一个新的“项目”并将帐户放入该项目中?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    有两种方法来确定访问范围:

    1. ACL 和组成员资格允许控制服务帐户有权访问的内容。
    2. OAuth 凭据可以限定为单个服务/api。

    任何一个选项都适合你,这取决于你的最终目标是什么。

    如何使用 ACL 限制对 BigQuery 的访问

    服务帐户是一种身份,就像电子邮件地址是一种身份一样。

    身份访问通过 ACL 控制,无论是在项目上还是在您要管理的单个数据集上。 BigQuery 的访问控制在此处描述:https://cloud.google.com/bigquery/access-control。其他服务和 API 提供自己的 ACL 控件。这些选项一起为您提供了对访问权限的细粒度控制。

    例如,如果您将服务帐号放在项目所有者 ACL 中,那么该服务帐号将可以访问项目所有者拥有的所有内容:BigQuery、Google Storage 等。

    或者,如果您只将该服务帐号放在单个 BigQuery 数据集上,则它只能访问该数据集。 (如果您还希望该服务帐户能够运行 BigQuery 作业,那么它需要是某个项目的成员,因为作业在项目的上下文中运行。如果您需要在其中运行 BigQuery 作业的项目不能是存储 Google Storage 数据的同一个项目,那么您将需要多个项目。)

    如何使用 OAuth 范围限制对 BigQuery 的访问

    为您的服务帐户创建 OAuth 凭据时,您可以指定凭据有效的范围。每个 api 都记录了调用 api 所需的范围。 BigQuery 的范围在此处记录:https://cloud.google.com/bigquery/authorization

    例如,如果您只提供 BigQuery 范围,那么您的代码将只能进行 BigQuery api 调用。尝试使用绑定到 BigQuery 的凭据调用 Google Storage API 将不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多