サービス ID で認証する

Google Distributed Cloud(GDC)エアギャップのサービス ID は、ワークロードまたはサービスに専用の ID を提供し、リソースやマイクロサービスにプログラムで安全にアクセスできるようにします。これらは、ユーザーではなく、アプリケーションやワークロードで使用される特別な ID であり、ユーザーのログインには使用できません。ユーザー アカウントと同様に、サービス ID に権限とロールを付与して、アクセスを許可する対象を定義します。

このコンセプトには 2 つの用語が使用されています。GDC コンソールでは主にサービス ID という用語が使用されますが、gdcloud コマンドと API のやり取りではサービス アカウントがよく使用されます。後者は、基盤となる Kubernetes カスタム リソース ProjectServiceAccount の名前を反映しています。どちらの用語も同じものを指します。つまり、ワークロードの人間以外の ID です。このドキュメントでは、サービス ID を主な用語として使用します。

サービス ID は、次のような GDC インフラストラクチャの管理に役立ちます。

  • 内部 Distributed Cloud サービスとワークロードが Distributed Cloud コントロール プレーン アプリケーション プログラミング インターフェース(API)に安全にアクセスできるようにします。たとえば、データベース サービスが Kubernetes API とやり取りしてデータベースを作成、削除します。
  • Distributed Cloud のお客様のワークロードが Distributed Cloud サービスにアクセスし、承認されたアプリケーション プログラミング インターフェース(API)呼び出しを行う。たとえば、サービス ID は、Vertex AI Workbench ノートブックを使用して Speech-to-Text API で音声ファイルを文字変換する顧客を管理できます。
  • Distributed Cloud と連携する外部ワークロード。たとえば、サービス ID は、ドキュメントをデジタル化する Distributed Cloud の外部のアプリケーションを管理できますが、光学式文字認識(OCR)API を使用して現在の OCR エンジンを置き換える必要があります。
  • Distributed Cloud サービスまたはシステム コントローラが、顧客リソースまたはユーザー クラスタに安全にアクセスできるようにします。たとえば、サービス ID は、管理クラスタで実行されているサービス コントローラが、お客様が管理するユーザー クラスタ内でワークロードを実行する必要がある認証と認可のワークフローを管理できます。

サービス ID の管理には、サービス ID(ProjectServiceAccount リソースで表される)と、それに関連付けられた認証情報(公開鍵と秘密鍵のペア)の両方が含まれます。サービス ID のアカウントは、GDC コンソール、gdcloud CLI、または API を使用して管理できます。gdcloud CLI では、サービス ID 機能はグローバル ProjectServiceAccount API に基づいて構築されています。ProjectServiceAccount リソースはグローバルに構成されるため、gdcloud ユニバースのすべてのゾーンで動作します。

始める前に

このドキュメントのタスクを完了するには、プロジェクトが必要です。プロジェクトの作成方法については、プロジェクトを作成するをご覧ください。

また、必要な権限を付与し、環境を準備する必要があります。

IAM ロールをリクエストする

プロジェクト内でサービス ID を作成、更新、削除するには、IAM 組織管理者または IAM プロジェクト管理者に連絡して、IAM プロジェクト管理者(project-iam-admin)ロールをリクエストしてください。

IAM 組織管理者は、組織内の任意のプロジェクトにこのロールを付与できます。IAM プロジェクト管理者は、特定のプロジェクトのスコープ内でこのロールを付与できます。

環境を準備する

コマンドライン ツールを使用してサービス ID を管理するには、次の設定を完了します。

サービス ID を作成する

サービス ID の作成には、アカウントとそれに関連付けられた認証情報の作成が含まれます。

アカウントを作成

サービス ID のアカウントを作成するには、GDC コンソール、gdcloud CLI、または API を使用して、プロジェクトに ProjectServiceAccount リソースを作成します。

コンソール

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで、[ID とアクセス] > [サービス ID] を選択します。
  3. [ サービス ID を作成] をクリックします。[サービス ID の詳細] ページが開きます。
  4. [サービス ID 名] フィールドに、サービス ID の名前を入力します。例: testserviceidentity。
  5. [作成] をクリックします。

gdcloud

アカウントを作成する:

gdcloud iam service-accounts create NAME \
    --project=PROJECT

次の値を置き換えます。

  • NAME: ProjectServiceAccount の名前。名前はプロジェクトの名前空間内で一意である必要があります。
  • PROJECT: サービス ID を作成するプロジェクト。gdcloud init がすでに設定されている場合は、--project フラグを省略します。

このコマンドは、Management API サーバーのプロジェクト Namespace に ProjectServiceAccount を作成します。

API

  1. ProjectServiceAccount カスタム リソース YAML ファイル(my-project-sa.yaml など)を作成します。

    apiVersion: resourcemanager.global.gdc.goog/v1
    kind: ProjectServiceAccount
    metadata:
      name: NAME
      namespace: PROJECT
    spec:
      keys:
      - algorithm: ALGORITHM
        id: KEY_ID
        key: BASE64_ENCODED_KEY
        validAfter: "START_TIME"
        validBefore: "EXPIRATION_TIME"
    

    次の変数を置き換えます。

    • NAME: ProjectServiceAccount リソースの名前。名前はプロジェクトの名前空間内で一意である必要があります。
    • PROJECT: サービス ID を作成するプロジェクト。
    • ALGORITHM: 鍵のアルゴリズム。ES256 鍵のみがサポートされています。
    • KEY_ID: 鍵の固有識別子。この ID は、検証に使用する鍵を決定するために使用されます。
    • BASE64_ENCODED_KEY: 検証対象の PEM 形式の Base64 エンコード公開鍵。この公開鍵の生成に使用される秘密鍵は、ECDSA P256 PEM 形式であることが想定されています。
    • START_TIME: 鍵が有効になる開始時刻(例: 2025-02-07T00:59:34Z)。
    • EXPIRATION_TIME: 鍵の有効期限(2026-02-07T00:59:34Z など)。
  2. ProjectServiceAccount カスタム リソースをグローバル API サーバーに適用します。

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f my-project-sa.yaml
    

    GLOBAL_API_SERVER_KUBECONFIG 変数は、グローバル API サーバーの kubeconfig ファイルのパスに置き換えます。

認証情報を作成

ワークロードまたはアプリケーションがサービス ID(作成したアカウントで表される)として認証できるようにするには、認証情報を生成する必要があります。認証情報の作成では、暗号化用の秘密鍵と公開鍵のペアを生成し、公開鍵をサービス ID に関連付けます。

サービス ID の認証情報を作成するには、GDC コンソール、gdcloud CLI、または API を使用します。

コンソール

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで、[ID とアクセス] > [サービス ID] を選択します。
  3. 鍵に追加するサービス ID の名前をクリックします。
  4. [新しい鍵を作成] をクリックします。
  5. 新しい鍵が [鍵] リストに表示され、鍵が正常に作成されたことを確認するダイアログが表示されます。

gdcloud

gdcloud コマンドは、アプリケーションのデフォルト認証情報の JSON ファイルと、公開鍵と秘密鍵のペアを作成します。

gdcloud iam service-accounts keys create APPLICATION_DEFAULT_CREDENTIALS_FILENAME \
    --project=PROJECT \
    --iam-account=NAME \
    --ca-cert-path=CA_CERTIFICATE_PATH

次の値を置き換えます。

  • APPLICATION_DEFAULT_CREDENTIALS_FILENAME: JSON ファイルの名前。
  • PROJECT : 鍵を作成するプロジェクトを選択します。gdcloud init がすでに設定されている場合は、--project フラグを省略できます。
  • NAME: 鍵を追加するサービス ID の名前。
  • CA_CERTIFICATE_PATH: 省略可。認証エンドポイントを検証する認証局(CA)の証明書パス。このパスを指定しない場合は、システム CA 証明書が使用されます。CA をシステム CA 証明書にインストールする必要があります。

Distributed Cloud は、秘密鍵が署名する JSON ウェブトークン(JWT)の検証に使用する ProjectServiceAccount 鍵に公開鍵を追加します。秘密鍵は、アプリケーションのデフォルト認証情報の JSON ファイルに書き込まれます。

次の例は、アプリケーションのデフォルト認証情報の JSON ファイルを示しています。

{
"type": "gdch_service_account",
"format_version": "1",
"project": "project_name",
"private_key_id": "abcdef1234567890",
"private_key": "-----BEGIN PRIVATE KEY-----\nETC\n-----END PRIVATE KEY-----\n",
"name": "service_identity_name",
"ca_cert_path": "/path/to/ca.crt",
"token_uri": "https://service-identity.<Domain>/authenticate"
}

この例では次の値を使用します。

  • project: 組織内のプロジェクトの名前空間。
  • private_key_id: 鍵に割り当てられた ID。
  • private_key: CLI が生成する PEM 形式の ECDSA P256 秘密鍵。
  • name: サービス ID の名前。
  • ca_cert_path: 認証エンドポイントの検証に使用される認証局(CA)証明書のパス。
  • token_uri: 認証エンドポイントのアドレス。

API

  1. 公開鍵と秘密鍵のペアを生成します。次のコマンドでは、この目的でよく使用されるツールである openssl を例として使用しています。

    openssl ecparam -name prime256v1 -genkey -noout -out "key.pem"
    openssl ec -in "key.pem" -pubout > "pub.pem"
    
  2. 公開鍵を Base64 でエンコードし、その鍵 ID を取得します。

    KEY_ID=$(openssl pkey -in key.pem -pubout -outform der | openssl dgst -sha256 | sed 's/^.* //')
    BASE64_ENCODED_KEY=$(cat pub.pem | base64)
    
  3. 前の手順で生成された鍵情報を含む ProjectServiceAccount カスタム リソース YAML ファイルを作成または更新します。

    apiVersion: resourcemanager.global.gdc.goog/v1
    kind: ProjectServiceAccount
    metadata:
      name: NAME
      namespace: PROJECT
    spec:
      keys:
      - algorithm: ALGORITHM
        id: KEY_ID
        key: BASE64_ENCODED_KEY
        validAfter: "START_TIME"
        validBefore: "EXPIRATION_TIME"
    

    次の変数を置き換えます。

    • NAME: ProjectServiceAccount リソースの名前。名前はプロジェクトの名前空間内で一意である必要があります。
    • PROJECT: 鍵を作成するプロジェクト。
    • ALGORITHM: 鍵のアルゴリズム。ES256 鍵のみがサポートされています。
    • KEY_ID: 鍵の固有識別子。この ID は、検証に使用する鍵を決定するために使用されます。
    • BASE64_ENCODED_KEY: 検証対象の PEM 形式の Base64 エンコード公開鍵。この公開鍵の生成に使用される秘密鍵は、ECDSA P256 PEM 形式であることが想定されています。
    • START_TIME: 鍵が有効になる開始時刻(例: 2025-02-07T00:59:34Z)。
    • EXPIRATION_TIME: 鍵の有効期限(2026-02-07T00:59:34Z など)。
  4. ProjectServiceAccount カスタム リソースをグローバル API サーバーに適用します。

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f my-project-sa.yaml
    

    GLOBAL_API_SERVER_KUBECONFIG 変数は、グローバル API サーバーの kubeconfig ファイルのパスに置き換えます。

  5. 秘密鍵を含むアプリケーションのデフォルト認証情報の JSON ファイルを作成します。JSON ファイルの KEY_ID 変数が、ProjectServiceAccount 仕様で使用した KEY_ID 変数と同じ値に設定されていることを確認します。

    cat <<EOF > "key_file.json"
    {
      "format_version": "1",
      "name": "NAME",
      "private_key": "$(tr '\n' '\t' < "key.pem" | sed 's/\t/\\n/g')",
      "private_key_id": "KEY_ID",
      "project": "PROJECT",
      "token_uri": "AUTH_URL",
      "type": "gdch_service_account"
    }
    EOF
    

    次の変数を置き換えます。

    • NAME: サービス ID の名前。
    • KEY_ID: 鍵の固有識別子。この ID は、検証に使用する鍵を決定するために使用されます。ProjectServiceAccount 仕様で使用されている KEY_ID 値と一致する必要があります。
    • PROJECT: 組織内のプロジェクトの名前空間。
    • AUTH_URL: 認証エンドポイントのアドレス。

生成されたキーファイルを使用してこのサービス ID として認証する方法については、サービス ID を認証して使用するをご覧ください。このセクションでは、gdcloud CLI で鍵を使用する方法と、クライアント ライブラリを使用してプログラムで鍵を使用する方法について説明します。

サービス ID を表示する

このセクションでは、サービス ID とそれに関連付けられた公開鍵を表示する方法について説明します。

サービス ID のリストを表示する

プロジェクト内のサービス ID のリストを表示するには、GDC コンソールまたは gdcloud CLI を使用します。

コンソール

  1. GDC コンソールにログインします。
  2. プロジェクトを選択します。
  3. ナビゲーション メニューで、[ID とアクセス] > [サービス ID] をクリックして、プロジェクトのサービス ID のリストを表示します。

gdcloud

プロジェクトのサービス ID アカウントを一覧表示します。

gdcloud iam service-accounts list \
    --project=PROJECT

PROJECT をプロジェクト ID で置き換えます。

サービス ID の公開鍵のリストを表示する

プロジェクトのサービス ID アカウントに登録されている公開鍵を一覧表示します。

gdcloud iam service-accounts keys list \
    --project=PROJECT \
    --iam-account=NAME

次のように置き換えます。

  • PROJECT: プロジェクト ID。
  • NAME: 使用するサービス ID アカウントの名前。

サービス ID に権限を付与する

サービス ID に権限を付与するには、GDC コンソールまたは gdcloud CLI を使用してロール バインディングを作成し、1 つ以上のロールを割り当てます。

コンソール

  1. GDC コンソールにログインします。
  2. プロジェクトを選択します。
  3. ナビゲーション メニューで、[Identity & Access] > [Access] を選択します。
  4. [メンバー] リストで、[メンバーを追加] をクリックします。[ユーザーとロール] ページが表示されます。
  5. [メンバータイプ] リストで [サービス ID] を選択します。
  6. [サービス ID] リストで、ロール バインディングを割り当てるサービス ID を選択します。
  7. [ロール] リストで、サービス ID に割り当てるロール([バックアップ作成者] など)を選択します。
  8. 省略可: 別のロールを追加するには、[別のロールを追加] をクリックします。追加のロールを選択します。
  9. [追加] をクリックします。

gdcloud

サービス ID アカウントは、プロジェクトの名前空間内のロールまたは別の名前空間のロールにバインドできます。

  • アカウントをプロジェクトの名前空間内のロールにバインドします。

    gdcloud iam service-accounts add-iam-policy-binding \
        --project=PROJECT \
        --role=ROLE \
        --iam-account=NAME
    

    次のように置き換えます。

    • PROJECT: ロール バインディングを作成するプロジェクト。gdcloud init がすでに設定されている場合は、--project フラグを省略できます。
    • ROLE: アカウントに割り当てる事前定義ロール。ロールは Role/name の形式で指定します。ここで、Role は Kubernetes タイプ IAMRole、name は事前定義ロールの名前です。たとえば、プロジェクト閲覧者のロールを割り当てるには、ロールを IAMRole/project-viewer に設定します。
    • NAME: 使用するサービス ID アカウントの名前。
  • アカウントを別の Namespace 内のロールにバインドします。

    gdcloud iam service-accounts add-iam-policy-binding \
        --role=ROLE \
        --role-namespace=ROLE_NAMESPACE \
        --iam-account=NAME
    

    次のように置き換えます。

    • ROLE: アカウントに割り当てる事前定義ロール。ロールは Role/name の形式で指定します。ここで、Role は Kubernetes タイプ IAMRole、name は事前定義ロールの名前です。たとえば、プロジェクト閲覧者のロールを割り当てるには、ロールを IAMRole/project-viewer に設定します。
    • ROLE_NAMESPACE: プロジェクトの名前空間以外の、アカウントにバインドするロールの名前空間。
    • NAME: 使用するサービス ID アカウントの名前。

サービス ID を認証して使用する

サービス ID を作成してキーファイルを生成すると、キーファイルを使用して GDC サービスとクラスタを認証できます。認証により、API 呼び出し用の有効期間の短いアクセス トークンを取得したり、クラスタ アクセスを構成したりできます。

サービス ID で認証するには、次の 2 つの方法があります。

gdcloud CLI を使用して認証する

サービス ID でアクションを実行するには、まずそのキーファイルを有効にする必要があります。有効化すると、gdcloud CLI を使用してトークンを取得したり、kubeconfig ファイルを生成したりできます。

鍵を使用してサービス ID を認可する

gdcloud auth activate-service-account コマンドは、サービス ID を使用して gdcloud CLI を認証します。これにより、ユーザー アカウントではなく、サービス ID アカウントの権限を使用して、Distributed Cloud リソースに対してアクションを実行できます。

鍵を使用してサービス ID を認可します。

  1. 認証情報キーファイルを作成します(まだ作成していない場合)。

  2. 次のコマンドを実行して、サービス ID を有効にします。

    gdcloud auth activate-service-account --key-file=KEY_FILE
    

    KEY_FILE は、認証情報キーファイルのパスに置き換えます。通常は JSON 形式です。

    有効化が成功すると、gdcloud はユーザー認証情報の代わりにサービス ID の認証情報を使用します。

サービス ID を認可したら、gdcloud を使用してアクセス トークンを出力できます。このトークンは、HTTP リクエストを認証するための署名なしトークンとして使用できます。このトークンは、AUDIENCES パラメータで定義されているサービスへのアクセスを許可します。

指定されたサービス ID アカウントの ID トークンを出力します。

gdcloud auth print-identity-token --audiences=AUDIENCES

AUDIENCES は、トークンの対象となる受信者またはサービスに置き換えます。指定できるオーディエンスは 1 つのみです。

kubeconfig ファイルを生成する

サービス ID を認可したら、kubeconfig ファイルを生成して Kubernetes クラスタを認証できます。

  1. gdcloud core/organization_console_url プロパティを設定します。

    gdcloud config set core/organization_console_url
    https://GDC_URL
    

    GDC_URL は、組織の URL に置き換えます。

  2. アクティブなサービス ID を使用してクラスタにアクセスするための kubeconfig ファイルを生成します。

    • ゾーンクラスタの場合:

      export KUBECONFIG=KUBECONFIG_PATH
      gdcloud clusters get-credentials CLUSTER_NAME --zone ZONE
      

      次のように置き換えます。

      • KUBECONFIG_PATH: 生成された kubeconfig ファイルを保存するパス。
      • CLUSTER_NAME: ゾーンクラスタの名前。

      • ZONE: クラスタが配置されているゾーンの名前。

    • グローバル API サーバーの場合:

      export KUBECONFIG=KUBECONFIG_PATH
      gdcloud clusters get-credentials global-api
      

      KUBECONFIG_PATH は、生成された kubeconfig ファイルを保存するパスに置き換えます。

kubeconfig ファイルが生成され、サービス ID として認証するように構成されます。YAML ファイルの例を次に示します。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <REDACTED>
    server: <REDACTED>
  name: cluster-name
contexts:
- context:
    cluster: cluster-name
    user: gdch_console-<REDACTED>_cluster-name
  name: cluster-name-gdch_console-<REDACTED>_cluster-name
current-context: cluster-name-gdch_console-gdc1-staging-gpcdemolabs-com_cluster-name
kind: Config
preferences: {}
users:
- name: gdch_console-<REDACTED>_cluster-name
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1
      args:
      - --audience=<REDACTED>
      command: gdcloud-k8s-auth-plugin
      env: null
      installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use
        plugin
      interactiveMode: Never
      provideClusterInfo: false

クライアント ライブラリを使用してプログラムで認証する

次の例は、標準の Google Cloud クライアント ライブラリを使用して、GDC API に対してプログラムで認証する方法を示しています。これらのライブラリは、生成されたサービス アカウント キーファイルを使用して、Security Token Service(STS)アクセス トークンを生成するか、サービス ID の認証情報を使用してサービス クライアントを構成します。このメソッドでは、事前に gdcloud 認可を行う必要はありません。

Python

import google.auth
from google.auth.transport import requests
import requests as reqs

api_endpoint = "https://console.org-1.zone1.google.gdch.test"

# Load the GDC credentials (via GOOGLE_APPLICATION_CREDENTIALS or default path)
creds, project_id = google.auth.default()

# Apply the required audience for the GDC Management API
creds = creds.with_gdch_audience(api_endpoint)

def fetch_gdch_token():
    sesh = reqs.Session()
    # Note: Set verify to False only if bypassing self-signed cert verification.
    # Otherwise, rely on the "ca_cert_path" present in your gdch_credentials.json
    sesh.verify = False
    req = requests.Request(session=sesh)

    # Refresh the credentials to fetch the STS access token
    creds.refresh(req)

    print("Access Token:", creds.token)

fetch_gdch_token()

Java

import com.google.auth.oauth2.GdchCredentials;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.FileInputStream;
import java.io.InputStream;

public class GdchAuthExample {
    public static void main(String[] args) throws Exception {
        // Path to your service account JSON file
        String credentialsPath = "/path/to/gdch/credentials.json";
        String apiAudience = "https://console.org-1.zone1.google.gdch.test";

        try (InputStream credentialsStream = new FileInputStream(credentialsPath)) {
            // Load the generic Google credentials from the stream
            GoogleCredentials credentials = GoogleCredentials.fromStream(credentialsStream);

            // Verify it loaded as GdchCredentials
            if (credentials instanceof GdchCredentials) {
                // Cast and attach the targeted GDC audience
                GdchCredentials gdch = ((GdchCredentials) credentials).createWithGdchAudience(apiAudience);

                // Force negotiation with the GDC Auth Server to fetch the token
                gdch.refreshIfExpired();

                System.out.println("Access Token: " + gdch.getAccessToken().getTokenValue());
            } else {
                System.err.println("The provided file is not a valid GdchCredentials format.");
            }
        }
    }
}

Go

package main

import (
  "context"
  "fmt"
  "log"

  "cloud.google.com/go/auth/credentials"
)

func main() {
  ctx := context.Background()
  apiEndpoint := "https://console.org-1.zone1.google.gdch.test"

  // Load default credentials. The STSAudience parameter is specifically
  // required for the GDC auth flow to correctly negotiate the token.
  creds, err := credentials.DetectDefault(&credentials.DetectOptions{
    STSAudience: apiEndpoint,
  })
  if err != nil {
    log.Fatalf("Failed to detect credentials: %v", err)
  }

  // Fetch an access token
  token, err := creds.Token(ctx)
  if err != nil {
    log.Fatalf("Failed to retrieve token: %v", err)
  }

  fmt.Printf("Access Token: %s\n", token.Value)
}

C++

[](std::string const& keyfile, std::string const& audience) {
  auto is = std::ifstream(keyfile);
  is.exceptions(std::ios::badbit);  // Minimal error handling in examples
  auto contents = std::string(std::istreambuf_iterator<char>(is.rdbuf()), {});
  auto options =
      google::cloud::Options{}.set<google::cloud::UnifiedCredentialsOption>(
          google::cloud::MakeGDCHServiceAccountCredentials(contents, audience));
  return google::cloud::speech_v1::AdaptationClient(
      google::cloud::speech_v1::MakeAdaptationConnection(options));
}

サービス ID を削除する

サービス ID を削除すると、ProjectServiceAccount とそれに関連付けられた公開鍵が削除され、既存の秘密鍵が無効になり、アプリケーションはサービス ID を使用してプロジェクト リソースにアクセスできなくなります。

サービス ID を削除するには、GDC コンソールまたは gdcloud CLI を使用します。

コンソール

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで、[ID とアクセス] > [サービス ID] を選択します。
  3. 削除するサービス ID のチェックボックスをオンにします。
  4. [削除] をクリックします。
  5. 確認ダイアログが表示されます。[削除を確定するには、次の内容を入力してください] フィールドに「remove」と入力します。
  6. [削除] をクリックします。

gdcloud

次のコマンドを実行して、サービス ID アカウントを削除します。

gdcloud iam service-accounts delete NAME \
    --project=PROJECT

次のように置き換えます。

  • NAME: 削除するサービス ID アカウントの名前。
  • PROJECT: プロジェクト ID。

認証情報を削除

サービス ID アカウント全体を削除せずに特定の鍵ペアを無効にする場合は、サービス ID のアカウントから公開鍵を削除します。この操作により、対応する秘密鍵が無効になります。

公開鍵を削除するには、GDC コンソールまたは gdcloud CLI を使用します。

コンソール

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで、[ID とアクセス] > [サービス ID] を選択します。
  3. 削除する鍵を持つサービス ID の名前をクリックします。
  4. [削除] をクリックします。
  5. 確認ダイアログで [削除] をクリックします。

gdcloud

プロジェクトのサービス ID アカウントから、鍵 ID を持つ公開鍵を削除します。

gdcloud iam service-accounts keys delete KEY_ID \
    --project=PROJECT \
    --iam-account=NAME

次のように置き換えます。

  • KEY_ID: 鍵の固有識別子。
  • PROJECT: プロジェクト ID。
  • NAME: サービス ID アカウントの名前。