Error: googleapi: Error 403: Request had insufficient authentication scopes. の対応
Error: googleapi: Error 403: Request had insufficient authentication scopes. の対応
Terraform
で、GCP
のリソースを管理しようとしたときに発生したエラーの対応方法。
エラー
認証スコープが足りない。
$ terraform apply
# 略
╷
│ Error: googleapi: Error 403: Request had insufficient authentication scopes.
│ Details:
│ [
│ {
│ "@type": "type.googleapis.com/google.rpc.ErrorInfo",
│ "metadata": {
│ "method": "google.iam.credentials.v1.IAMCredentials.GenerateAccessToken",
│ "service": "iamcredentials.googleapis.com"
│ },
│ "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT"
│ }
│ ]
│
│ More details:
│ Reason: insufficientPermissions, Message: Insufficient Permission
│
│
│ with data.google_service_account_access_token.default,
│ on data_google_cloud_platform.tf line 1, in data "google_service_account_access_token" "default":
│ 1: data "google_service_account_access_token" "default" {
│
╵
対応
- スコープ
- https://www.googleapis.com/auth/cloud-platform
- 意味
- Google Cloud Platform サービス全体のデータを表示、管理するためにアクセスします。これは、すべての Cloud Billing API メソッドを呼び出すのに十分な、最も範囲の広いスコープです。このスコープには cloud-billing と cloud-billing.readonly が含まれるため、このスコープがある場合はどちらも必要ありません。
https://www.googleapis.com/auth/cloud-platform
を --scopes
で指定することで解決しました。
$ gcloud auth application-default login --scopes "https://www.googleapis.com/auth/cloud-platform"
BigQuery
で、スプレッドシートのデータを参照する場合
Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials. の対応 - hene.dev を参考に、 スプレッドシートの権限も付与する必要がある。