我不想为我想与之共享 bigquery 数据集的外部用户生成服务帐户 - 这会产生什么影响?
I don't want to generation service accounts for external users I want to share bigquery datasets with- what are the repercussions of this?
我授予用户 Google 帐户访问我的一个数据集的权限。他们正在使用这个 Python 脚本:
def query_Whosebug():
client = bigquery.Client()
query_job = client.query(
"""
SELECT *
FROM `myproject.mydata.mytable`
ORDER BY someColumn DESC
LIMIT 10"""
)
results = query_job.result()
它有效,但他们看到了这个警告:
UserWarning: Your application has authenticated using end user
credentials from Google Cloud SDK without a quota project. You might
receive a "quota exceeded" or "API not enabled" error. We recommend
you rerun gcloud auth application-default login
and make sure a
quota project is added. Or you can use service accounts instead. For
more information about service accounts, see
https://cloud.google.com/docs/authentication/
warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)
我通读了一些文档,但我不明白这是什么意思。这是否意味着 我 应该为我的项目设置配额?我认识这个人并信任他们,但这是否意味着他们可以用完所有 my bq 配额来查询?这似乎也可以通过使用服务帐户来“解决”,所以这个配额是对我无法更改的非服务帐户访问的硬性限制吗?
授予用户 Google 帐户访问权限比创建服务帐户并为他们生成密钥更方便、更安全。
A quota project
被客户端库等用于计费目的。您可以使用 CLI 设置配额项目:
示例命令:
cloud auth application-default set-quota-project my-quota-project
gcloud auth application-default set-quota-project
查看 BigQuery 配额和限制并加以实施。这将提高安全性并将财务风险降至最低。
Google云中有三种主要的授权方法。由 Google 帐户(Gmail、G Suite 等)、服务帐户和 API 密钥创建的用户凭据。
您收到的警告是由于 Google 首选应用程序使用服务帐户而不是用户凭据进行授权。您可以在代码中禁用此警告,但我不建议这样做。相反,创建一个配额项目,创建一个服务帐户,并锁定服务帐户以仅提供用户所需的角色。
在您的问题中,您没有描述您如何使用用户凭据来获取授予 API 访问权限所需的 OAuth 访问令牌。如果您传递令牌,那不是很安全。可以删除服务帐户,可以轮换服务帐户密钥等,从而提供更高级别的安全性。如果你了解Google Cloud,我写了一篇关于如何使用模拟的文章。您可以使用此方法继续使用用户凭据模拟服务帐户,而无需分发密钥。
Google Cloud – Improving Security with Impersonation
PowerShell – Impersonate Google Service Account
用户帐户凭据的 API 调用配额比服务帐户低得多。这可能会导致使用用户帐户生成的访问令牌的软件失败。
我授予用户 Google 帐户访问我的一个数据集的权限。他们正在使用这个 Python 脚本:
def query_Whosebug():
client = bigquery.Client()
query_job = client.query(
"""
SELECT *
FROM `myproject.mydata.mytable`
ORDER BY someColumn DESC
LIMIT 10"""
)
results = query_job.result()
它有效,但他们看到了这个警告:
UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK without a quota project. You might receive a "quota exceeded" or "API not enabled" error. We recommend you rerun
gcloud auth application-default login
and make sure a quota project is added. Or you can use service accounts instead. For more information about service accounts, see https://cloud.google.com/docs/authentication/
warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)
我通读了一些文档,但我不明白这是什么意思。这是否意味着 我 应该为我的项目设置配额?我认识这个人并信任他们,但这是否意味着他们可以用完所有 my bq 配额来查询?这似乎也可以通过使用服务帐户来“解决”,所以这个配额是对我无法更改的非服务帐户访问的硬性限制吗?
授予用户 Google 帐户访问权限比创建服务帐户并为他们生成密钥更方便、更安全。
A quota project
被客户端库等用于计费目的。您可以使用 CLI 设置配额项目:
示例命令:
cloud auth application-default set-quota-project my-quota-project
gcloud auth application-default set-quota-project
查看 BigQuery 配额和限制并加以实施。这将提高安全性并将财务风险降至最低。
Google云中有三种主要的授权方法。由 Google 帐户(Gmail、G Suite 等)、服务帐户和 API 密钥创建的用户凭据。
您收到的警告是由于 Google 首选应用程序使用服务帐户而不是用户凭据进行授权。您可以在代码中禁用此警告,但我不建议这样做。相反,创建一个配额项目,创建一个服务帐户,并锁定服务帐户以仅提供用户所需的角色。
在您的问题中,您没有描述您如何使用用户凭据来获取授予 API 访问权限所需的 OAuth 访问令牌。如果您传递令牌,那不是很安全。可以删除服务帐户,可以轮换服务帐户密钥等,从而提供更高级别的安全性。如果你了解Google Cloud,我写了一篇关于如何使用模拟的文章。您可以使用此方法继续使用用户凭据模拟服务帐户,而无需分发密钥。
Google Cloud – Improving Security with Impersonation
PowerShell – Impersonate Google Service Account
用户帐户凭据的 API 调用配额比服务帐户低得多。这可能会导致使用用户帐户生成的访问令牌的软件失败。