サービス アカウントの使用の制限

Resource Manager に備わっている制約を組織のポリシーで使用すると、Cloud Identity and Access Management サービス アカウントの使用を制限できます。

こうした制約を設定すると、将来のサービス アカウントの作成および変更に適用されます。こうした制約は遡って適用されることはなく、以前に作成されて構成されたサービス アカウントには影響しません。

サービス アカウント作成の無効化

iam.disableServiceAccountCreation ブール制約を使用して、新しいサービス アカウントの作成を無効にすることができます。これにより、デベロッパーがプロジェクトに対して持つその他の権限を制限することなく、サービス アカウントの管理を集中化できます。

サービス アカウント キー作成の無効化

iam.disableServiceAccountKeyCreation ブール制約を使用して、新しいサービス アカウント キーの作成を無効にすることができます。これにより、サービス アカウントに関する、管理されない長期認証情報の使用を制御できます。この制約を設定すると、制約の影響を受けるプロジェクト内でサービス アカウント用のユーザー管理認証情報を作成できなくなります。

ポリシーの設定

サービス アカウント制限の制約は、ブール型制約の一種です。

この制約を設定するには、組織のポリシーを変更する権限が必要です。たとえば、resourcemanager.organizationAdmin 役割には組織のポリシーの制約を設定する権限があります。組織レベルでポリシーを管理する方法の詳細については、制約の使用ページをご覧ください。

Console

サービス アカウント キーの作成を無効にするための制約を含む組織のポリシーを設定するには:

  1. Google Cloud Console の [組織のポリシー] ページに移動します。

    [組織のポリシー] ページに移動

  2. ページの上部にある「組織の選択」プルダウン リストをクリックして、組織を選択します。
  3. [サービス アカウントの作成を無効化] または [サービス アカウント キーの作成を無効化] をクリックします。
  4. [編集] ボタンをクリックします。
  5. [対象] で、[カスタマイズ] を選択します。
  6. [適用] で、[オン] を選択します。
  7. [保存] をクリックします。ポリシーが更新されたことを確認する通知が表示されます。

gcloud

ポリシーは、gcloud コマンドライン ツールで設定できます。

サービス アカウントの作成を無効にするには、次のコマンドを実行します。

gcloud alpha resource-manager org-policies enable-enforce \
    --organization 'ORGANIZATION_ID' \
    iam.disableServiceAccountCreation

サービス アカウント キーの作成を無効にするには、次のコマンドを実行します。

gcloud alpha resource-manager org-policies enable-enforce \
    --organization 'ORGANIZATION_ID' \
    iam.disableServiceAccountKeyCreation

ポリシーを無効にするには、同じコマンドを

disable-enforce
コマンドと一緒に実行します。

組織のポリシーで制約を使用する方法については、制約の使用をご覧ください。

ポリシーの例

次のコード スニペットは、サービス アカウントの作成を無効にする制約を含む組織ポリシーを示しています。

resource: "organizations/842463781240"
policy {
  constraint: "constraints/iam.disableServiceAccountCreation"
  etag: "\a\005L\252\122\321\946\334"
  boolean_policy {
  enforced: true
  }
}

次のコード スニペットは、サービス アカウント キーの作成を無効にする制約を含む組織のポリシーを示しています。

resource: "organizations/842463781240"
policy {
  constraint: "constraints/iam.disableServiceAccountKeyCreation"
  etag: "\a\005L\252\122\321\946\334"
  boolean_policy {
  enforced: true
  }
}

サービス アカウント キーのアップロードを制限する

iam.allowedPublicCertificateTrustedRootCA リスト制約を使用して、サービス アカウントにアップロードできる公開鍵を制限できます。この制約を使用すると、発行済の公開証明書を Cloud Identity and Access Management サービス アカウントにアップロードできる、信頼できる認証局のセットを定義できます。また、このリスト制約を Deny All に設定して、サービス アカウント キーのアップロードを完全に無効にすることもできます。

ポリシーの設定

サービス アカウントのアップロード制限の制約は、リスト制約の一種です。

この制約を設定するには、組織のポリシーを変更する権限が必要です。たとえば、resourcemanager.organizationAdmin 役割には組織のポリシーの制約を設定する権限があります。組織レベルでポリシーを管理する方法の詳細については、制約の使用をご覧ください。

Console

サービス アカウント キーのアップロードに対する制約を含む組織のポリシーを設定するには:

  1. Google Cloud Console の [組織のポリシー] ページに移動します。

    [組織のポリシー] ページに移動

  2. ページの上部にある「組織」プルダウン リストをクリックして、組織を選択します。
  3. [許可するルート認証局を定義してください] をクリックします。
  4. [編集] ボタンをクリックします。
  5. [対象] で、[カスタマイズ] を選択します。
  6. [ポリシーの値] で [カスタム] を選択します。
  7. [カスタム値] テキスト ボックスに認証局を入力します。
    1. 複数の値を入力するには、[新しいポリシーの値] をクリックし、1 行に 1 つの認証局を入力します。
  8. [保存] をクリックします。ポリシーが更新されたことを確認する通知が表示されます。

gcloud

ポリシーは、gcloud コマンドライン ツールで設定できます。

サービス アカウント キーのアップロードに対して許可された認証局を設定するには、次のコマンドを実行します。

gcloud alpha resource-manager org-policies allow \
    iam.allowedPublicCertificateTrustedRootCA \
    'ALLOWED_VALUE' \
    --organization 'ORGANIZATION_ID' \

許可されていない認証局を設定するには、次のコマンドを使用して、同じコマンドを発行できます。

gcloud alpha resource-manager org-policies deny \
    iam.allowedPublicCertificateTrustedRootCA \
    'DENIED_VALUE' \
    --organization 'ORGANIZATION_ID' \

組織のポリシーで制約を使用する方法については、制約の使用をご覧ください。

組織のポリシーの例

次のコード スニペットは、許可された認証局を含む組織のポリシーを示しています。

resource: "organizations/842463781240"
policy {
  constraint: "constraints/iam.allowedPublicCertificateTrustedRootCA"
  etag: "\a\005L\252\122\321\946\334"
  list_policy {
  allowed_values: "issuer=C = AU, ST = Some-State, O = Internet Widgits Pty Ltd"
  }
}

公開鍵証明書から認証局を取得する

公開鍵証明書の認証局は、次のコマンドを使用して取得できます。

openssl x509 -noout -in $PUBLIC_KEY_CERT_PATH -issuer

このコマンドは X509 PEM 形式の公開鍵証明書でのみ使用できます。

エラー メッセージ

サービス アカウント作成の無効化

iam.disableServiceAccountCreation が適用されると、サービス アカウントの作成は次のエラーで失敗します。

FAILED_PRECONDITION: Service account creation is not allowed on this project.

サービス アカウント キー作成の無効化

iam.disableServiceAccountKeyCreation が適用されると、サービス アカウントの作成は次のエラーで失敗します。

FAILED_PRECONDITION: Key creation is not allowed on this service account.

既知の問題のトラブルシューティング

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

iam.disableServiceAccountCreation 制約を適用すると、そのプロジェクトでサービス アカウントを作成できなくなります。次のように、この制限が有効になると、プロジェクトでデフォルトのサービス アカウントを自動的に作成する Google Cloud サービスにも影響を及ぼします。

  • Compute Engine
  • GKE
  • App Engine
  • Dataflow

iam.disableServiceAccountCreation 制約が適用されている場合、デフォルト サービス アカウントを作成できないため、こうしたサービスを有効にしようとすると失敗します。

この問題を解決するには:

  1. iam.disableServiceAccountCreation 制約を一時的に削除します。
  2. 目的のサービスを有効にします。
  3. その他の目的のサービス アカウントを作成します。
  4. 最後に、制約を再適用します。