Google CLI を使用した秘密鍵の作成

GCP に対する VSB プランを作成するには、UDP コンソールで秘密鍵が必要です。

新しい鍵を作成するには、gcloud CLI をインストールして初期化する必要があります。下記のリンクに記載されている手順に従って、管理者権限で CLI ツールをインストールおよび初期化してください。

同じ環境で gcloud をインストールして初期化した後、以下の手順に従って手動で鍵を作成するか、Windows PowerShell スクリプト gcp_auth_key_create.ps1 を実行します。

  1. gcloud ツールをインストールして初期化したら、以下を行います。
    1. コマンド「gcloud --version」を使用してバージョンを確認し、gcloud ツールが正常にインストールされていることを確認します。
    2. 初期化中に、組織を完全に制御できる管理者アカウントを使用して gcloud で認証を行い、特定のプロジェクトに接続します。
    3. コマンド「gcloud config set project PROJECT_ID」を使用して、VSB インスタンスを作成する必要があるプロジェクトを設定します。ここで、PROJECT_ID は組織で使用可能な有効なプロジェクトです。
  2. gcloud を使用して、VSB 関連のタスクを許可するカスタムの役割をプロジェクト用に作成して、ユーザのプロジェクトへのアクセスを設定します。
  3. サービス アカウントを作成するには、以下の値を置き換えて、下記のコマンドを実行します。
  4. gcloud iam service-accounts create SA_NAME --display-name="DISPLAY_NAME"

  5. サービス アカウントの電子メール アドレスを取得し、以下のコマンドを実行します。
  6. gcloud iam service-accounts list --filter "displayName=DISPLAY_NAME"

  7. 以下を置き換えます。
  8. DISPLAY_NAME: 手順 3 で指定した表示名。
  9. 上記のコマンドの出力から、サービス アカウントの電子メール アドレスを書き留めます。形式は以下のとおりで、残りの手順では SA_EMAIL と表記されています。
  10. SA_NAME@PROJECT_ID.iam.gserviceaccount.com
  11. JSON キー ファイルを作成してダウンロードするには、以下の値を置き換えて、下記のコマンドを実行します。
  12. gcloud iam service-accounts keys create KEY_FILE --iam-account=SA_EMAIL

  13. JSON キー ファイルには、後で UDP コンソール内で必要な秘密鍵が含まれています。
  14. VSB タスクに必要な下記の 69 個の権限を含むカスタムの役割を作成するには、以下の値を置き換えて下記のコマンドを実行します。
  15. gcloud iam roles create ROLE_NAME --project PROJECT_ID –permissions=
    compute.addresses.list,compute.addresses.use,compute.disks.create,compute.disks.createSnapshot,
    compute.disks.delete,compute.disks.get,compute.disks.use,compute.firewallPolicies.create,compute.firewallPolicies.delete,
    compute.firewallPolicies.get,compute.firewallPolicies.list,compute.firewallPolicies.update,compute.firewallPolicies.use,
    compute.firewalls.create,compute.firewalls.delete,compute.firewalls.get,compute.firewalls.list,compute.firewalls.update,
    compute.globalOperations.get,compute.images.useReadOnly,compute.instances.addAccessConfig,
    compute.instances.attachDisk,compute.instances.create,compute.instances.delete,compute.instances.deleteAccessConfig,
    compute.instances.detachDisk,compute.instances.list,compute.instances.setMetadata,compute.instances.setServiceAccount,
    compute.instances.start,compute.instances.stop,compute.instances.update,compute.instances.updateDisplayDevice,compute.machineTypes.list,compute.networks.access,
    compute.networks.create,compute.networks.delete,compute.networks.get,compute.networks.getEffectiveFirewalls,compute.networks.list,compute.networks.update,
    compute.networks.use,compute.networks.useExternalIp,compute.regionOperations.get,compute.snapshots.create,compute.snapshots.delete,compute.snapshots.get,
    compute.snapshots.useReadOnly,compute.subnetworks.create,compute.subnetworks.delete,compute.subnetworks.get,compute.subnetworks.list,compute.subnetworks.update,
    compute.subnetworks.use,compute.subnetworks.useExternalIp,compute.zoneOperations.get,compute.zones.list,iam.serviceAccounts.actAs,iam.serviceAccounts.get,iam.serviceAccounts.list,
    resourcemanager.projects.get,serviceusage.services.use,storage.buckets.create,storage.buckets.enableObjectRetention,storage.buckets.list,storage.objects.create,storage.objects.delete,
    storage.objects.get,storage.objects.list

  16. このコマンドによって、ROLE_NAME というカスタムの役割がプロジェクトで作成されて、インスタンスを作成および管理する権限が付与されます。上記のコマンドの出力として、役割の完全な名前が表示されます。役割名の形式は、projects/PROJECT_ID/roles/ROLE_NAME です。
  17. : 役割は権限の集合です。ユーザに権限を直接割り当てることはできません。代わりに、ユーザに役割を付与します。ユーザに役割を付与すると、その役割に含まれるすべての権限が付与されます。

  18. カスタムの役割 ROLE_NAME をサービス アカウント SA_NAME にバインドさせるには、以下の値を置き換えて、下記のコマンドを実行します。
  19. gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:SA_EMAIL --role=ROLE_FULL_NAME

  20. UDP コンソールで、手順 5 でダウンロードしたこのサービス アカウントの JSON キー ファイルを使用して、GCP に対する VSB プランを作成します。