IAP OAuth Admin API から移行する

Identity-Aware Proxy(IAP)OAuth Admin API のサポートが終了しました。このガイドでは、既存の OAuth クライアントを Google 管理の OAuth クライアントに移行する方法について説明します。IAP OAuth Admin API を使用していない場合、この変更による影響はありません。

プロジェクトで OAuth Admin API が使用されているかどうかを確認するには、OAuth Admin API の使用状況を確認するをご覧ください。プロジェクトで OAuth Admin API を使用している場合は、このドキュメントの移行手順に沿って移行する必要があります。または、OAuth Admin API の代替手段を使用することもできます。

変更内容

IAP OAuth Admin API は非推奨になります。これには、手動の OAuth クライアントとブランド管理用の次の API と gcloud CLI コマンド グループが含まれます。

IAP OAuth Admin API を使用してカスタム OAuth クライアントを作成または管理することはできなくなりました。IAP は、OAuth 2.0 クライアントを手動で管理する代わりに、Google が管理する OAuth クライアントを使用します。これにより、OAuth クライアント管理が簡素化され、手動エラーが減り、デプロイ プロセスが効率化されます。

カスタム ブランディングを引き続き提供するには、カスタム OAuth クライアントを構成することをおすすめします。

変わらない点

IAP OAuth Admin API を使用していない場合、この変更による影響はありません。

このサポート終了は、Compute Engine API、App Engine API、または Google Cloud コンソールを使用して手動で構成した OAuth クライアントには影響しません。また、IAP アクセス ポリシー、設定、TCP 転送を管理する他の IAP API や gcloud CLI コマンド グループ(alpha リリース トラックと beta リリース トラックを含む)にも影響しません。たとえば、gcloud iap web(get-iam-policy や remove-iam-policy-binding など)、gcloud iap settings、gcloud iap tcp などです。これらのコマンドは、非推奨の IdentityAwareProxyOAuthService API ではなく IdentityAwareProxyAdminService API を使用するためです。

引き続き新しい OAuth ブランドとクライアント構成を作成し、 Google Cloud コンソールを使用して管理できます。既存の OAuth クライアントを移行する必要はありません。IAP OAuth Admin API ではなく、Google Cloud コンソールを使用して、引き続き使用および管理できます。

IAP OAuth Admin API の使用状況を確認する

プロジェクトで IAP OAuth Admin API が使用されているかどうかを確認するには、次の操作を行います。

  1. Google Cloud コンソールで、[IAP API の使用状況] ページに移動します。

    [IAP API の使用状況] に移動

  2. IAP OAuth Admin API の使用状況を確認するプロジェクトを選択します。

  3. [グラフを選択] リストで [API メソッド別のトラフィック量] を選択し、[OK] をクリックします。

  4. [メソッド] セクションで、接頭辞 google.cloud.iap.v1.IdentityAwareProxyOAuthService が付いたメソッドを探します。これは、プロジェクトで IAP OAuth Admin API が使用されていることを示します。

詳細な説明

2025 年 1 月 22 日をもって、IAP OAuth 2.0 クライアントの作成に使用される IAP OAuth 2.0 Admin API は非推奨になりました。IAP は、デフォルトで、または OAuth 2.0 クライアントが明示的に構成されていない場合に、Google が管理する OAuth クライアントをブラウザ アクセスに使用するようになりました。Google が管理する OAuth 2.0 クライアントは、ブラウザを通じて IAP 対応アプリケーションにアクセスするとき、同じ組織内のユーザーへのアクセスを制限します。

Identity-Aware Proxy(IAP)OAuth 2.0 Admin API のサポート終了に伴い、この API を使用して OAuth クライアントを作成または管理することはできなくなりました。このサポート終了前に作成された OAuth クライアントは無効になりません。以前に作成した OAuth クライアントを引き続き使用し、 Google Cloud コンソールを使用してそれらのクライアントを管理できます。

IAP 2.0 Admin API などを使用して作成された OAuth クライアントで構成されたアプリケーションがある場合、それらのアプリケーションは引き続き動作します。アプリケーションに変更を加える必要はありません。ただし、自動化スクリプトまたは Infrastructure as Code(IaC)ツールで IAP OAuth 2.0 Admin API を使用して新しいクライアントを構成したり、既存のクライアントのクライアント シークレットを取得したりしている場合は、IAP OAuth 2.0 Admin API を使用しないようにスクリプトを更新する必要があります。

既存のユーザー管理クライアントを引き続き使用するか、Google 管理オプションへの切り替えを検討するかは、ブランディングと外部アクセスの要件によって異なります。機能の違いの詳細については、Google 管理の OAuth クライアントとカスタム OAuth クライアントの比較表をご覧ください。アプリケーションでブランディングまたは外部アクセスにカスタム クライアント ID が必要な場合は、 Google Cloud コンソールを使用してクライアント ID を作成します。カスタム OAuth クライアントの詳細については、OAuth 構成をカスタマイズして IAP を有効にするをご覧ください。

アプリケーション用に Google 管理の OAuth 2.0 クライアントを構成する方法については、プログラムによるアクセスをご覧ください。

Google 管理の OAuth 2.0 クライアントで満たされない要件がある場合は、1 つの OAuth クライアントを複数の IAP アプリケーションと共有することで、新しいアプリケーションごとにクライアントを手動で作成する必要がなくなります。

Marketplace チャネルの

  • 自動化スクリプトを更新する

    Terraform、gcloud CLI(gcloud iap oauth-brands、gcloud iap oauth-clients、alpha、beta など)、またはその他のツールを使用して IAP の構成を自動化し、IAP OAuth 2.0 Admin API を使用する場合は、事前に作成されたクライアントを使用するか、IAP で Google 管理の OAuth クライアントを使用するように自動化スクリプトを更新する必要があります。

  • Google が管理する OAuth 2.0 クライアントを使用してアプリケーションのプログラムによるアクセスを構成する

    IAP で保護されているアプリケーションがすでにあり、Google が管理する OAuth 2.0 クライアントを使用してそれらを移行する場合は、OAuth 2.0 クライアントを許可リストに登録することで、これらのアプリケーションのプログラムによるアクセスを構成できます。

IAP 対応リソースを移行する

Google が管理する OAuth 2.0 クライアントを使用するようにリソースを移行するには、移行するリソースのタイプ(Compute Engine リソースなど)の手順に沿って操作します。

IAP 対応の App Engine リソースを移行する

このセクションの手順を完了して、IAP が有効で OAuth 2.0 クライアントが構成されている App Engine リソースを移行します。

gcloud

手順に進む前に、最新バージョンの gcloud CLI がインストールされていることを確認してください。gcloud CLI のインストール手順については、gcloud CLI をインストールするをご覧ください。

  1. Google Cloud CLI を使用して認証します。

    gcloud auth login
    
  2. 表示された URL をクリックしてログインします。

  3. ログインしたら、表示される確認コードをコピーしてコマンドラインに貼り付けます。

  4. 次のコマンドを実行して、IAP で引き続き保護するアプリケーションを含むプロジェクトを指定します。

    gcloud config set project PROJECT_ID
    
  5. 次のコマンドを実行して、構成済みの OAuth 2.0 クライアント ID を取得します。

    gcloud app describe --format="value(iap.oauth2ClientId)"
    

    プログラムによるアクセスを許可する場合は、前のコマンドで取得したクライアント ID を保存します。

  6. プログラムによるアクセスのために OAuth 2.0 クライアントを許可リストに登録するには、IAP 設定 API で読み取り、更新、書き込みオペレーションを実行します。

    gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
    
  7. settings.yaml ファイルを更新し、次の例に示すように、以前に取得した OAuth 2.0 クライアント ID を programmaticClients の下に追加します。

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. App Engine アプリケーションに新しい設定を適用する

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. アプリを移行するには、次のコマンドを実行します。

    gcloud iap web enable --resource-type=app-engine
    

API

  1. 次のコマンドを実行して、構成済みの OAuth 2.0 クライアント ID を取得します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://appengine.googleapis.com/v1/apps/PROJECT_ID?fields=iap"
    
  2. 次のコマンドを実行して、既存の IAP 設定を settings.json ファイルに取得します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings" > settings.json
    
  3. settings.json ファイルを更新して、以前に保存した CLIENT_ID をプログラム クライアントとして追加します。

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 次のコマンドを実行して、IAP 設定を更新します。

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings"
    
  5. 次のコマンドを実行して settings.json ファイルを準備します。

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. 次のコマンドを実行して、アプリを移行します。

      curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -d @settings.json \
      "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

IAP 対応の Compute Engine リソースを移行する

このセクションの手順を完了して、IAP が有効で OAuth 2.0 クライアントが構成されている Compute Engine リソースを移行します。

gcloud

手順に進む前に、最新バージョンの gcloud CLI がインストールされていることを確認してください。gcloud CLI のインストール手順については、gcloud CLI をインストールするをご覧ください。

  1. Google Cloud CLI を使用して認証します。

    gcloud auth login
    
  2. 表示された URL をクリックしてログインします。

  3. ログインしたら、表示される確認コードをコピーしてコマンドラインに貼り付けます。

  4. 次のコマンドを実行して、IAP で引き続き保護するアプリケーションを含むプロジェクトを指定します。

    gcloud config set project PROJECT_ID
    
  5. 次のコマンドを実行して、構成済みの OAuth 2.0 クライアント ID を取得します。

    グローバル スコープ

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --global \
    --format="value(iap.oauth2ClientId)"
    

    リージョン スコープ

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --region REGION_NAME \
    --format="value(iap.oauth2ClientId)"
    

    プログラムによるアクセスを許可する場合は、前のコマンドのクライアント ID を保存します。

  6. OAuth 2.0 クライアントにプログラムによるアクセス権を付与するには、IAP 設定 API で読み取り、更新、書き込みオペレーションを実行します。

    グローバル スコープ

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    リージョン スコープ

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. settings.yaml ファイルを更新し、次の例に示すように、以前に取得した OAuth 2.0 クライアント ID を programmaticClients の下に追加します。

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Compute Engine アプリケーションに新しい設定を適用します。

    グローバル スコープ

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME

    リージョン スコープ

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
  9. アプリケーションを移行するには、次のコマンドを実行します。OAuth クライアント ID と OAuth シークレットを消去するには、コマンドで引用符で囲まれた単一のスペース(" ")を渡します。バックエンド サービスは、Google 管理の OAuth クライアントを使用します。

    グローバル スコープ

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    リージョン スコープ

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. OAuth クライアント ID と OAuth クライアント シークレットが削除され、バックエンド サービスが Google 管理の OAuth クライアントを使用していることを確認するには、gcloud compute backend-services describe を実行します。移行中にこれらのフィールドをクリアするために、gcloud compute backend-services update コマンドは単一のスペース(" ")を使用します。Compute Engine API は、これを oauth2ClientId 値と oauth2ClientSecret 値を削除する指示として解釈します。

    グローバル スコープ

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    リージョン スコープ

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

    describe コマンドを実行したら、出力の iap セクションを確認します。移行が成功すると、oauth2ClientId フィールドに 1 つのスペース(' ')が表示され、oauth2ClientSecret フィールドに 1 つのスペースの SHA256 ハッシュ(36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068)が含まれます。

API

  1. 次のコマンドを実行して、構成済みの OAuth 2.0 クライアント ID を取得します。

    グローバル スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    

    リージョン スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    
  2. 次のコマンドを実行して、既存の IAP 設定を settings.json ファイルに取得します。

    グローバル スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    

    リージョン スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    
  3. settings.json ファイルを更新して、以前に保存した CLIENT_ID をプログラム クライアントとして追加します。

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 次のコマンドを実行して、IAP 設定を更新します。

    グローバル スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
    

    リージョン スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
    
  5. 次のコマンドを実行して settings.json ファイルを準備します。

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. 次のコマンドを実行して、IAP リソースを移行します。

    グローバル スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    リージョン スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    
  7. OAuth クライアント ID が設定されていないことを確認するには、次のグローバル スコープまたはリージョン スコープのコマンドを実行します。コマンドを実行したら、出力で OAuth クライアント ID フィールドが空であることを確認します。

    グローバル スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    リージョン スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    

Terraform

既存の IAP 対応リソースを Google 管理の OAuth クライアントを使用するように移行する場合は、oauth2_client_id フィールドと oauth2_client_secret フィールドを明示的に設定解除する必要があります。フィールドの設定を解除するには、次の例に示すように、値を 1 つの空白文字に更新します。

resource "google_compute_backend_service" "default" {
  name                  = "tf-test-backend-service-external"
  protocol              = "HTTP"
  load_balancing_scheme = "EXTERNAL"
  iap {
    oauth2_client_id     = " "
    oauth2_client_secret = " "
  }
}

oauth2_client_id フィールドと oauth2_client_secret フィールドは省略可能です。新しい IAP 対応リソースを使用している場合は、無視してかまいません。

Google Cloudで Terraform を使用する方法については、Terraform のドキュメントをご覧ください。

IAP 対応の Cloud Run リソースを移行する

このセクションの手順を完了して、IAP が有効で OAuth 2.0 クライアントが構成されている Cloud Run リソースを移行します。

gcloud

手順に進む前に、最新バージョンの gcloud CLI がインストールされていることを確認してください。gcloud CLI のインストール手順については、gcloud CLI をインストールするをご覧ください。

  1. 認証するには、Google Cloud CLI を使用して次のコマンドを実行します。

    gcloud auth login
    
  2. 表示された URL をクリックしてログインします。

  3. ログインしたら、表示される確認コードをコピーしてコマンドラインに貼り付けます。

  4. 次のコマンドを実行して、IAP で引き続き保護するアプリケーションを含むプロジェクトを指定します。

    gcloud config set project PROJECT_ID
    
  5. 次のコマンドを実行して、構成済みの OAuth 2.0 クライアント ID を取得します。

    グローバル スコープ

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global \
        --format="value(iap.oauth2ClientId)"
    

    リージョン スコープ

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
      --region REGION_NAME \
      --format="value(iap.oauth2ClientId)"
    

    プログラムによるアクセスを許可する場合は、前のコマンドのクライアント ID を保存します。

  6. プログラムによるアクセスのために OAuth 2.0 クライアントを許可リストに登録するには、IAP 設定 API で読み取り、更新、書き込みオペレーションを実行します。

    グローバル スコープ

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    リージョン スコープ

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. settings.yaml ファイルを更新し、次の例に示すように、以前に取得した OAuth 2.0 クライアント ID を programmaticClients に追加します。

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Compute Engine アプリケーションに新しい設定を適用します。

    グローバル スコープ

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME
    

    リージョン スコープ

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
    
  9. リソースを移行するには、グローバル スコープまたはリージョン スコープのコマンドを実行します。

    グローバル スコープ

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    リージョン スコープ

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. OAuth クライアント ID が設定されていないことを確認するには、次のグローバル スコープまたはリージョン スコープのコマンドを実行します。コマンドを実行したら、出力で OAuth クライアント ID フィールドが空であることを確認します。

    グローバル スコープ

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    リージョン スコープ

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

API

  1. 次のコマンドを実行して、構成済みの OAuth 2.0 クライアント ID を取得します。

    グローバル スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    

    リージョン スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    
  2. 次のコマンドを実行して、既存の IAP 設定を settings.json ファイルに取得します。

    グローバル スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    

    リージョン スコープ

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    
  3. settings.json ファイルを更新して、以前に保存した CLIENT_ID をプログラム クライアントとして追加します。

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 次のコマンドを実行して、IAP 設定を更新します。

    グローバル スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
    

    リージョン スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
    
  5. 次のコマンドを実行して settings.json ファイルを準備します。

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. 次のコマンドを実行して、リソースを移行します。

    グローバル スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    リージョン スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    
  7. OAuth クライアント ID が設定されていないことを確認するには、次のグローバル スコープまたはリージョン スコープのコマンドを実行します。コマンドを実行したら、出力で OAuth クライアント ID フィールドが空であることを確認します。

    グローバル スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    リージョン スコープ

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    

IAP 対応の Google Kubernetes Engine リソースを移行する

次の IAP ブロックを BackendConfig カスタム リソース定義(CRD)に追加します。これにより、Google 管理の OAuth 2.0 クライアントで IAP が有効になります。

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: config-default
  namespace: my-namespace
spec:
  iap:
    enabled: true

サービス アカウントの JWT を使用して IAP に対する認証を行う

サービス アカウント JWT を使用すると、非推奨の OAuth Admin API を使用せずに IAP の認証を行うことができます。

OAuth クライアント シークレットを取得する

Google Cloud コンソールでカスタム OAuth クライアントを作成すると、クライアント シークレットはその時点でのみ表示されます。このシークレットは安全に保存する必要があります。OAuth クライアント シークレットを安全に保存するには、Secret Manager を使用することをおすすめします。

Secret Manager を使用して OAuth クライアント シークレットを保存する場合は、シークレット バージョンにアクセスするでクライアント シークレットを取得する方法をご覧ください。

IAP OAuth Admin API を使用しているかどうかを確認する

プロジェクトで IAP OAuth Admin API が使用されているかどうかを確認するには、OAuth Admin API の使用状況を確認するをご覧ください。

OAuth Admin API を使用しない方法

OAuth API を使用せずに OAuth クライアント認証情報を取得する必要がある場合は、次の方法を使用できます。

  • Google Cloud コンソール: [認証情報] ページで OAuth 認証情報を手動で取得できます。

  • Secret Manager: Secret Manager を使用してシークレットを保存、取得できます。Terraform で Secret Manager を使用する方法については、google_secret_manager_secret をご覧ください。

  • サービス アカウントの JWT: 認証にサービス アカウントの JSON Web Token(JWT)を使用します。サービス アカウントの JWT を使用する場合、OAuth クライアントを使用する必要はありません。