【问题标题】:Google AutoML - Possible to authenticate by service account impersonation?Google AutoML - 可以通过服务帐户模拟进行身份验证吗?
【发布时间】:2020-07-01 17:08:59
【问题描述】:

TL;DR - 我可以通过使用我的应用程序默认凭据 (ADC) 模拟服务帐户 (SA) 来向 AutoML API 进行身份验证,还是我必须实际使用 SA 身份验证?

在对已部署模型进行批量预测时,我希望能够使用 ADC 向 AutoML API 进行身份验证。这仅出于开发目的,不会为每个开发人员和数据科学家创建新的 SA。我知道 AutoML 需要 SA 进行身份验证,所以我想使用 --impersonate-service-account 标志或 auth/impersonate_service_account 设置。我已按照此 Medium 帖子中的说明进行操作,但仍然收到有关使用最终用户凭据的错误。所以我的问题是,我只是做错了什么,还是 AutoML 必须使用真正的 SA 身份验证而不进行模拟?

gcloud config list 的输出是 -

[auth]
impersonate_service_account = abcdefghijklmnop@my-project.iam.gserviceaccount.com
[compute]
region = us-east1
zone = us-east1-b
[core]
account = first.last@domain.com
disable_usage_reporting = False
project = my-project

Your active configuration is: [default]

这是 AutoML 返回的错误 -

google.api_core.exceptions.PermissionDenied: 403 您的应用程序已使用来自 Google Cloud SDK 或 Google Cloud Shell 的最终用户凭据进行身份验证,这些凭据不受 automl.googleapis.com 支持。我们建议在 gcloud 中配置 billing/quota_project 设置或通过 auth/impersonate_service_account 设置使用服务帐户。有关服务帐户以及如何在您的应用程序中使用它们的更多信息,请参阅https://cloud.google.com/docs/authentication/。

来自 AutoML 文档 -
服务帐户是 AutoML API 唯一可用的身份验证选项。

谢谢,
扎克

【问题讨论】:

  • 阅读这篇关于模拟服务帐户的文章。 jhanley.com/google-cloud-improving-security-with-impersonation
  • @JohnHanley 感谢您的评论和文章。在阅读您的文章的过程中,以下命令警告我我正在使用模拟。这向我证实了 AutoML 需要 SA 并且模拟不起作用。感谢您抽出宝贵时间提供帮助。 gcloud 项目 get-iam-policy [PROJECT-ID] \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:[ACCOUNT] "
  • 警告并不意味着那个。 CLI 会提醒您正在使用模拟。
  • 好的,如果是这样,那么为什么模拟对上述命令有效,但对 AutoML 无效?我使用相同的设置来执行两者。

标签: google-cloud-platform service-accounts google-cloud-automl automl


【解决方案1】:

我已经对其他几个服务进行了测试,服务帐户模拟似乎对他们有用。 Google AutoML 似乎需要服务帐户,并且无法进行模拟。

【讨论】:

  • 没有 Google 服务使用 JSON 密钥进行授权。他们使用 OAuth 访问或身份令牌。服务帐户模拟创建这些令牌。你的假设不成立。
【解决方案2】:

您是否尝试过通过运行“gcloud config set auth/impersonate_service_account”来指定用于模拟的服务帐户[1]?

为了模拟,您的原始凭据需要在目标服务帐户[1]上被授予角色/iam.serviceAccountTokenCreator。


[1]https://cloud.google.com/storage/docs/gsutil/addlhelp/CredentialTypesSupportingVariousUseCases

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2016-01-31
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多