Skip to main content

GCP コネクタの認証と権限を設定する

DigiCert​​®​​ Trust Lifecycle Manager で GCP コネクタを追加する前に、認証に使用するのに必要な Google Cloud Platform(GCP)クレデンシャルを準備します。

このコネクタは、以下の 2 つの認証タイプをサポートしています。

  1. サービスアカウントクレデンシャル: Trust Lifecycle Managerコネクタ内で設定された GCP サービスアカウントクレデンシャルを使用して認証します。

  2. 申請のデフォルトクレデンシャル: Google Cloud との統合を管理するネットワーク上のローカルセンサーホストでセットアップされた、GCP アプリケーションのデフォルトクレデンシャルを使用して認証します。

各認証タイプをセットアップする方法は、コネクタのスコープに応じて異なります。

  • 組織スコープ: Google Cloud の組織およびフォルダとその子プロジェクトすべてに接続します。

  • プロジェクトスコープ: Google Cloud 組織内の特定のプロジェクトに接続します。

最初に、使用する認証タイプスコープを選択します。以下のとおり、認証用の GCP クレデンシャルを準備します。

オプション 1: サービスアカウントクレデンシャル

このオプションは、Trust Lifecycle ManagerGCP 統合コネクタ内で設定する GCP サービスアカウントクレデンシャルを認証に使用する場合に選択します。詳細な設定手順については、以下のいずれかのコネクタスコープを選択してください。

コネクタは、組織スコープで設定すると、Google Cloud の組織またはフォルダとその子プロジェクトすべてへのアクセスが提供されます。

組織スコープの場合、コネクタと追加のサービスアカウントを認証してすべての子プロジェクトを管理するために、メインのサービスアカウントを 1 つ作成する必要があります。

Google Cloud で、必要なアカウントと権限を次のように準備します。

コネクタは、プロジェクトスコープで設定すると、Google Cloud 組織の特定のプロジェクトへのアクセスが提供されます。

プロジェクトスコープでは、コネクタの認証に使用されるメインのサービスアカウントを 1 つ作成するだけで十分です。

Google Cloud で、必要なアカウントと権限を次のように準備します。

オプション 2: 申請のデフォルトクレデンシャル

このオプションは、Google Cloud との統合を管理するネットワーク上のローカルセンサーホストでセットアップされた、GCP アプリケーションのデフォルトクレデンシャルを使用して認証する場合に選択します。以下のいずれかの方法を使用して、センサーホストでアプリケーションのデフォルトクレデンシャルへのアクセスを設定できます。

クレデンシャルへのアクセス方法

説明

環境変数

GCP でサービスアカウントをセットアップし、アカウント用の JSON 鍵ファイルをセンサーホストにダウンロードします。この JSON 鍵ファイルへのファイルパスを GOOGLE_APPLICATION_CREDENTIALS 環境変数に設定します。

クレデンシャルは永続的です。

クレデンシャルファイル

gcloud auth application-default login コマンドを使用して、ローカルクレデンシャルファイルを生成し、センサーホストに応じて、以下の既知の場所に保管します。

  • Linux または Docker: $HOME/.config/gcloud/application_default_credentials.json

  • Windows: %APPDATA%\gcloud\application_default_credentials.json

クレデンシャルは 1 時間後にタイムアウトします。デジサートは、クレデンシャルをローテーションし、想定された場所に保管するために、スクリプトなど自動化された方法を使用することを推奨します。

重要

DigiCert センサーはまず、GOOGLE_APPLICATION_CREDENTIALS 環境変数をチェックし、この環境変数が定義されていない場合は、上記の既知の場所でローカルクレデンシャルファイルを探します。

詳細な設定手順については、以下のいずれかのコネクタスコープとクレデンシャルへのアクセス方法の組み合わせを選択してください。

コネクタは、組織スコープで設定すると、Google Cloud の組織またはフォルダとその子プロジェクトすべてへのアクセスが提供されます。

環境変数によるアクセス方法では、コネクタと追加のサービスアカウントを認証してすべての子プロジェクトを管理するために、メインのサービスアカウントを 1 つ作成する必要があります。メインのサービスアカウントを、センサーホストでアプリケーションのデフォルトクレデンシャルとして使用します。

Google Cloud で、必要なアカウントと権限を次のように準備します。

コネクタは、組織スコープで設定すると、Google Cloud の組織またはフォルダとその子プロジェクトすべてへのアクセスが提供されます。

クレデンシャルファイルアクセス方法では、Google Cloud でプリンシパルユーザー ID を準備し、すべての子プロジェクトを管理するためにサービスアカウントを作成する必要があります。gloud CLI を使用してセンサーホストにローカルクレデンシャルファイルを作成します。

Google Cloud で、必要なアカウントと権限を次のように準備します。

  1. 組織の電子メールアドレスに紐付けられていて Google Cloud へのログインに使用される、プリンシパルユーザー ID のクレデンシャルを収集します。

  2. プリンシパルユーザー ID が親組織またはフォルダで Folder Viewer ロールを持っていることを確認します。

  3. 親組織またはフォルダで、以下の「Minimum permissions」のセクションに記載された権限を含むカスタムロールを作成します。

  4. ステップ 3 で作成したカスタムロールをプリンシパルユーザー ID に割り当てます。

  5. 管理対象の個々の Google Cloud プロジェクトすべてに、同じアカウント名を持つサービスアカウントを作成します。これらのサービスアカウントは、親組織またはフォルダ内の個々のプロジェクトにアクセスして管理するために使用されます。

    重要

    このステップで作成するすべてのサービスアカウントに、同じ名前を付ける必要があります。この名前は、Trust Lifecycle Manager でコネクタを構成する際に[なりすましサービスアカウント名]フィールドに指定します。

  6. ステップ 6 で作成した各サービスアカウントに対し、以下の手順を実行します。

    • ステップ 3 で作成したカスタムロールを割り当てます。

    • Service Account Token Creator ロールを割り当て、プリンシパルユーザー ID にマッピングします。

  7. コネクタを介して管理する個々の Google Cloud プロジェクトで、以下の API サービスが有効になっていることを確認します。

    • Certificate Manager API

    • Compute Engine API

    • Cloud Resource Manager API

コネクタは、プロジェクトスコープで設定すると、Google Cloud 組織の特定のプロジェクトへのアクセスが提供されます。

環境変数アクセス方法では、コネクタを認証するために、メインのサービスアカウントを 1 つ作成する必要があります。このサービスアカウントを、センサーホストでアプリケーションのデフォルトクレデンシャルとして使用します。

Google Cloud で、必要なアカウントと権限を次のように準備します。

コネクタは、プロジェクトスコープで設定すると、Google Cloud 組織の特定のプロジェクトへのアクセスが提供されます。

クレデンシャルファイルアクセス方法では、Google Cloud でプリンシパルユーザー ID を準備する必要があります。gloud CLI を使用してセンサーホストにローカルクレデンシャルファイルを作成します。

Google Cloud で、必要なアカウントと権限を次のように準備します。

  1. 組織の電子メールアドレスに紐付けられていて Google Cloud へのログインに使用される、プリンシパルユーザー ID のクレデンシャルを収集します。

  2. Trust Lifecycle Manager コネクタを介して管理する特定の Google Cloud プロジェクトを選択します。

  3. 選択したプロジェクトで、以下の「Minimum permissions」のセクションに記載された権限を含むカスタムロールを作成します。

  4. ステップ 3 で作成したカスタムロールをプリンシパルユーザー ID に割り当てます。

  5. 選択した Google Cloud プロジェクトで以下の API サービスが有効になっていることを確認します。

    • Certificate Manager API

    • Compute Engine API

    • Cloud Resource Manager API

サービスアカウント用 JSON 鍵ファイルの例

Google Cloud で作成してダウンロードするサービスアカウント用 JSON 鍵ファイルは、以下の例のようになっているはずです。

{  
  "type": "my-service-account",  
  "project_id": "my-gcp-project-1",  
  "private_key_id": "0888c80dd415874d2247ab55555b7ac0ee99963b",  
  "private_key": "-----BEGIN PRIVATE KEY-----\n{private key value}\n-----END PRIVATE KEY-----\n",  
  "client_email": "my-service-account@my-org.iam.gserviceaccount.com",  
  "client_id": "111446787751705551234",  
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",  
  "token_uri": "https://oauth2.googleapis.com/token",  
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",  
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-service-account.iam.gserviceaccount.com",  
  "universe_domain": "googleapis.com"
} 

最小権限

必要な権限

Trust Lifecycle Manager の GCP 統合コネクタには、以下に示す Google Cloud の最小権限が必要です。

certificatemanager.certmapentries.create
certificatemanager.certmapentries.get
certificatemanager.certmapentries.list
certificatemanager.certmapentries.update
certificatemanager.certmaps.create
certificatemanager.certmaps.get
certificatemanager.certmaps.list
certificatemanager.certmaps.update
certificatemanager.certmaps.use
certificatemanager.certs.create
certificatemanager.certs.delete
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.update
certificatemanager.certs.use
certificatemanager.locations.get
certificatemanager.locations.list
certificatemanager.operations.cancel
certificatemanager.operations.delete
certificatemanager.operations.get
certificatemanager.operations.list
cloudasset.assets.listComputeSslCertificates
compute.addresses.get
compute.addresses.list
compute.addresses.use
compute.forwardingRules.create
compute.forwardingRules.createTagBinding
compute.forwardingRules.get
compute.forwardingRules.list
compute.forwardingRules.setTarget
compute.forwardingRules.update
compute.forwardingRules.use
compute.globalAddresses.get
compute.globalAddresses.list
compute.globalAddresses.use
compute.globalForwardingRules.create
compute.globalForwardingRules.delete
compute.globalForwardingRules.get
compute.globalForwardingRules.list
compute.globalForwardingRules.setTarget
compute.globalForwardingRules.update
compute.globalOperations.get
compute.regionOperations.get
compute.regionSslCertificates.create
compute.regionSslCertificates.get
compute.regionSslCertificates.list
compute.regionTargetHttpProxies.create
compute.regionTargetHttpProxies.get
compute.regionTargetHttpProxies.list
compute.regionTargetHttpProxies.setUrlMap
compute.regionTargetHttpProxies.use
compute.regionTargetHttpsProxies.create
compute.regionTargetHttpsProxies.get
compute.regionTargetHttpsProxies.list
compute.regionTargetHttpsProxies.setSslCertificates
compute.regionTargetHttpsProxies.setUrlMap
compute.regionTargetHttpsProxies.update
compute.regionTargetHttpsProxies.use
compute.regionTargetTcpProxies.get
compute.regionTargetTcpProxies.list
compute.regionUrlMaps.create
compute.regionUrlMaps.get
compute.regionUrlMaps.use
compute.regions.list
compute.sslCertificates.create
compute.sslCertificates.delete
compute.sslCertificates.get
compute.sslCertificates.list
compute.targetHttpProxies.create
compute.targetHttpProxies.get
compute.targetHttpProxies.list
compute.targetHttpProxies.setUrlMap
compute.targetHttpProxies.update
compute.targetHttpProxies.use
compute.targetHttpsProxies.create
compute.targetHttpsProxies.get
compute.targetHttpsProxies.list
compute.targetHttpsProxies.setCertificateMap
compute.targetHttpsProxies.setSslCertificates
compute.targetHttpsProxies.update
compute.targetHttpsProxies.use
compute.targetSslProxies.create
compute.targetSslProxies.get
compute.targetSslProxies.list
compute.targetSslProxies.setCertificateMap
compute.targetSslProxies.setSslCertificates
compute.targetSslProxies.update
compute.targetSslProxies.use
compute.urlMaps.create
compute.urlMaps.get
compute.urlMaps.list
compute.urlMaps.use

(任意)Secret Manager の権限

GCP Secret Manager を秘密鍵の一時的な保管場所として使用するには、以下の権限を追加します。以下の点に注意してください。

  • これらの権限は任意です。省略した場合、GCP Secret Manager の代わりにDigiCert 管理センサーが一時的な鍵保管に使用されます。

  • 証明書が発行され、秘密鍵と一緒に Google Cloud に配信されたら、一時鍵は自動的に削除されます。

secretmanager.locations.get
secretmanager.locations.list
secretmanager.secrets.create
secretmanager.secrets.delete
secretmanager.secrets.get
secretmanager.secrets.list
secretmanager.secrets.update
secretmanager.versions.access
secretmanager.versions.add
secretmanager.versions.destroy
secretmanager.versions.get

重要

以下のコネクタスコープに応じて、Secret Manager サービスを GCP 組織内の適切なプロジェクトで有効にしてください。

  • 組織スコープ: メインのサービスアカウントまたは認証用のプリンシパルユーザー ID を持つプロジェクトで Secret Manager を有効にします。

  • プロジェクトスコープ: コネクタで管理する特定のプロジェクトで Secret Manager を有効にします。

次の手順

Google Cloud Platform(GCP)で必要なクレデンシャルを設定したら、Trust Lifecycle ManagerGCP 統合コネクタを追加する準備が整います。