Google AutoML-可以通过服务帐户模拟进行身份验证吗?

时间:2020-03-20 14:38:34

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

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

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

谢谢,
扎克

2 个答案:

答案 0 :(得分:0)

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

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


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

答案 1 :(得分:0)

我已经对其他几种服务进行了测试,并且模拟服务帐户似乎也适用于它们。看来Google AutoML需要一个服务帐户,模拟无法使用。