IAM・サービスアカウント・ADC - Google Cloud

最終更新日: 2026-08-27

TOP(About this memo)) > 一覧(Google Cloud) > IAM・サービスアカウント・ADC

IAM (Identity and Access Management)

プリンシパル

ロール

許可ポリシー(IAMポリシー)

利用者の権限はなるべく絞る

ロールや権限の検索・確認

サービスアカウント

サービスアカウントは必要以上に使わない

デフォルトで作成されるサービスアカウント

DISPLAY NAME                     EMAIL                                                       DISABLED
myapp-cloud-run-sa               myapp-cloud-run-sa@[PROJECT_ID].iam.gserviceaccount.com     False
Default compute service account  [PROJECT_NUMBER]-compute@developer.gserviceaccount.com      False

デフォルトのサービスアカウントの扱い

サービスエージェント

サービスアカウントの権限借用(impersonation)

メリット

関連ロール

運用の具体例

IAMの一覧確認

ADC (Application Default Credentials)

  1. GOOGLE_APPLICATION_CREDENTIALS環境変数に設定されたサービスアカウントキー(のファイルパス)

  2. 上記が設定されていない場合は、コードを実行しているリソースに関連付けられているサービスアカウントを使用する。

    • ローカル環境: ~/.config/gcloud/application_default_credentials.jsonに配置されたOAuth2の認証情報。これはgcloud auth application-default loginによって配置される。実行するとブラウザが起動してGoogleアカウントのログインが求められ、ログインしたユーザーの認証情報が配置される。
    • Google Cloud上の環境: 実行している環境(Cloud Run等)に紐付けられたサービスアカウント。
    // 例(Firebase)
    app, err := firebase.NewApp(context.Background(), nil)
    // 例(Cloud Storage)
    storageClient, err := storage.NewClient(ctx)
    
  3. サービスアカウントキーへのファイルパスをプログラムで直接渡す。

    // 例(Firebase)
    opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
    app, err := firebase.NewApp(context.Background(), nil, opt)
    // 例(Cloud Storage)
    client, err := storage.NewClient(ctx, option.WithCredentialsFile(jsonPath))