メインコンテンツへスキップ

Google Cloud リソースを接続する

Google Cloud のリソースは階層構造で整理されています。Google Cloud の Identity and Access Management(IAM)システムを使用して、特定のリソースへの詳細なアクセス権を割り当てたり、他のリソースへの不要なアクセスを防止したりできます。IAM ポリシーの階層は、Google Cloud のリソース階層と同じパスに従います。

プラットフォームの全機能を提供するために、Google API にアクセスして監視やアラートのための情報を取得し、必要に応じて推奨事項に基づいて対応できるように、さまざまなレベルでの権限が必要になります。詳細については、セキュリティとデータアクセスのポリシー: 機能権限を参照してください。

必要な権限​

Google Cloud リソースを DoiT コンソールに接続するには、次の要件を満たす必要があります。

  • 使用している DoiT アカウントに Manage Settings 権限が付与されていること。

  • Google Cloud Organization を接続するには、その組織で Organization Role Administrator(roles/iam.organizationRoleAdmin)IAM ロールが付与されている必要があります。このロールは、組織配下のサービスアカウントにカスタムロールを作成して付与するために必要です。

  • 既に接続されている組織に属していない Google Cloud プロジェクト を接続するには、そのプロジェクトで Role Administrator(roles/iam.RoleAdmin)IAM ロールが付与されている必要があります。このロールは、プロジェクト配下のサービスアカウントにカスタムロールを作成して付与するために必要です。

  • BigQuery データセット を接続するには、そのデータセットをホストしているプロジェクトで Role Administrator(roles/iam.RoleAdmin)IAM ロールが付与されている必要があります。このロールは、プロジェクト配下のサービスアカウントにカスタムロールを作成して付与するために必要です。

サービスアカウント認証​

Google Cloud では、サービスアカウント をワークロードの IDとして使用することができます。2023 年 6 月以降、DoiT コンソールのワークロード向けサービスアカウントの推奨認証方式は、サービスアカウントキーに関連するセキュリティリスクを軽減するため、サービスアカウントの偽装(impersonation)に変更されました。

サービスアカウントの偽装には 2 種類のプリンシパルが関与します。

  • 対象リソースにアクセスするために必要な権限を持つ 権限保有サービスアカウント(privilege-bearing service account)

  • 対象リソースへアクセスする必要はあるものの、権限を持たない 呼び出し元(caller)

DoiT ワークロード用の ID を構成する​

DoiT コンソールを接続する際、DoiT ワークロード用の ID を構成するために主に次の 2 つのタスクを実行する必要があります。

  • タスク 1: 対象リソースへアクセスする権限を持つ権限保有サービスアカウントを作成する。

  • タスク 2: DoiT が所有するサービスアカウント [email protected](caller)に ServiceAccountTokenCreator ロールを付与し、権限保有サービスアカウントを偽装できるようにする。

    注意

    GCP の組織ポリシーでドメインによる ID 制限を使用している場合は、DoiT の caller サービスアカウントを必ず allowlist に追加してください。追加する値は、ドメイン制限付き共有を実装する方法によって異なります。

    • Managed constraint(iam.managed.allowedPolicyMembers)を使用している場合: 許可されたプリンシパルセットとして DoiT の Google Cloud 組織 ID 252201914815(//cloudresourcemanager.googleapis.com/organizations/252201914815)を追加します。

    • Legacy constraint(iam.allowedPolicyMemberDomains)を使用している場合: DoiT の Organization Resource ID C03rw2ty2 を追加します。

以下に詳細な設定手順を示します。

  1. DoiT コンソール にサインインし、上部ナビゲーションのメガメニューから Data ingestion and integrations > Google Cloud を選択します。

  2. 対象リソースタイプに応じたセクションに進みます。

    Google Cloud settings empty

組織を接続する​

  1. Connect ドロップダウンから Organization を選択します。

  2. 組織で有効にしたい機能を選択します。機能を展開すると、必要な権限を確認できます。

    Google Cloud settings new organization

  3. Generate gcloud commands を選択します。実行が必要な gcloud コマンドが DoiT コンソールに表示されます。

    Create service account

  4. BigQuery Intelligence データセットの保存場所を選択します。

  5. Google Cloud Shell を起動します。

  6. 次の条件を満たす Google Cloud プロジェクトを選択します。

    • 組織に属しているプロジェクトであること

    • プロジェクトが Google Cloud Billing アカウントに接続されていること(プロジェクトの課金ステータスの確認を参照)

    • 長期的に維持する予定があり、信頼できるメンバーのみにアクセスを制限できるプロジェクトであること

  7. DoiT コンソールで表示されているコマンドを順番に実行して、組織のアクセス制御を構成します。

    1. サービスアカウントをホストする Google Cloud プロジェクトを設定する。

    2. 現在のプロジェクトに新しいサービスアカウントを作成する。

    3. 現在のプロジェクトで service usage API と resource manager API を有効にする。

    4. Google IAM 組織 ID を取得する。

    5. 選択した機能に必要な権限を含むカスタムロール doit_cmp_role を作成し、そのロールを組織配下の新しいサービスアカウントに付与するためにポリシーバインディングを追加する。権限は組織レベルで付与されます。

    6. IAM ポリシーバインディングを追加して、DoiT の caller サービスアカウントにロール roles/iam.serviceAccountTokenCreator を付与し、権限保有サービスアカウントを偽装できるようにする。

  8. Google Cloud コンソールにサインインし、Roles ページに移動して、組織内の DoiT サービスアカウントに関連付けられた doit_cmp_role が作成されていることを確認します。

プロジェクトを接続する​

このセクションは、次のような場合に該当します。

プロジェクトを接続するには、次の手順を実行します。

  1. Connect ドロップダウンから Project を選択します。

  2. プロジェクトで有効にしたい機能を選択します。機能を展開すると、必要な権限を確認できます。

    Google Cloud settings new project

  3. Generate gcloud commands を選択します。実行が必要な gcloud コマンドが DoiT コンソールに表示されます。

    gcloud commands for projects

  4. Google IAM Project ID を取得します。プロジェクトの特定を参照してください。

  5. Google Cloud Shell を起動し、接続したいプロジェクトを選択します。

  6. DoiT コンソールで表示されているコマンドを順番に実行して、プロジェクトのアクセス制御を構成します。

    1. プロジェクト ID を設定する。

    2. プロジェクトに新しいサービスアカウントを作成する。

    3. プロジェクトで service usage API と resource manager API を有効にする。

    4. 選択した機能に必要な権限を含むカスタムロール doit_cmp_role を作成し、そのロールを新しいサービスアカウントに付与するためにポリシーバインディングを追加する。権限はプロジェクトレベルで付与されます。

    5. IAM ポリシーバインディングを追加して、DoiT の caller サービスアカウントにロール roles/iam.serviceAccountTokenCreator を付与し、権限保有サービスアカウントを偽装できるようにする。

    6. サービスアカウントの詳細を doit_cmp_sa_details.json という名前のファイルにダウンロードし、DoiT コンソールで Upload file を選択してファイルをアップロードします。

  7. Google Cloud コンソールにサインインし、Roles ページに移動して、プロジェクト内の DoiT サービスアカウントに関連付けられた doit_cmp_role が作成されていることを確認します。

データセットを接続する​

次の機能では、BigQuery データセットとの接続が必要です。

  • GCP Recommender BigQuery エクスポートからの Insights:インサイトと推奨事項データを含む BigQuery データセットとの接続が必要です。

    次の前提条件をすべて満たしている場合にのみ続行してください。

    • Google Cloud Recommender のインサイトと推奨事項データが BigQuery データセットにエクスポートされている。

    • 組織を接続する際に Core 機能を有効にしている。

    • BigQuery データセットをホストしているプロジェクトを接続する際に Core 機能を有効にしている。

  • PerfectScale for Commitments for Google Cloud:CUD メタデータを含む BigQuery データセットとの接続が必要です。

    CUD メタデータのエクスポートを有効化している場合にのみ続行してください。

データセットを接続するには:

  1. Connect ドロップダウンから Dataset を選択します。

  2. 有効にしたい機能のチェックボックスを選択します。機能を展開すると、必要な権限を確認できます。

    Google Cloud settings new dataset

  3. Generate gcloud commands を選択し、実行が必要な手順と gcloud コマンドを表示します。

    gcloud commands for dataset access

  4. 新しいサービスアカウントを作成するために、データセット名と識別子を指定します。DoiT コンソールに表示されている命名規則に必ず従ってください。

  5. Google IAM プロジェクト ID を取得します。詳細は、プロジェクトの特定を参照してください。

  6. Google Cloud Shell を起動し、データセットをホストしているプロジェクトを選択します。

  7. DoiT コンソールで提供されるコマンドを順番に実行して、BigQuery データセットリソースのアクセス制御を構成します。

    1. プロジェクト ID を設定します。

    2. データセットアクセス用の新しいサービスアカウントを作成します。

    3. プロジェクトレベルの権限を持つ doit_cmp_dataset_project_access_role というカスタムロールを作成し、そのロールをサービスアカウントに付与するために ポリシーバインディングを追加します。

    4. データセットレベルの権限を持つ doit_cmp_dataset_access_role というカスタムロールを作成し、そのロールをサービスアカウントに付与するようにデータセット IAM ポリシーを更新します。

    5. roles/iam.serviceAccountTokenCreator ロールを DoiT 呼び出し元サービスアカウントに付与する IAM ポリシーバインディングを追加し、そのサービスアカウントが権限を持つサービスアカウントをなりすましできるようにします。

  8. サービスアカウントの詳細を doit_cmp_dataset_sa_details.json というファイル名でダウンロードし、DoiT コンソールで Upload file を選択してファイルをアップロードします。

  9. Google Cloud コンソールにサインインし、Roles ページに移動して、プロジェクト内の DoiT サービスアカウントに関連付けられた 2 つのカスタムロール(doit_cmp_dataset_project_access_role と doit_cmp_dataset_access_role)が作成されていることを確認します。

ロールを更新する​

機能を追加する​

リソースに機能を追加するには:

  1. 上部ナビゲーションのメガメニューから Data ingestion and integrations ・ Google Cloud を選択します。

  2. 更新したいリソースの横にあるケバブメニュー(⋮)を選択し、Edit を選択します。

  3. 有効にしたい追加機能を選択します。

  4. Generate gcloud commands を選択します。

  5. サイドパネルに表示される手順に従って、カスタムロールを更新してください。

機能を削除する​

現在、DoiT コンソールでは機能の削除はサポートされていません。機能の権限を削除するには、Google Cloud コンソールで直接カスタムロールを更新する必要があります。

  1. Google Cloud コンソールにサインインし、Roles ページを開きます。

  2. リソースをリンクした際に作成されたカスタムロール(組織やプロジェクトの場合は doit_cmp_role、データセットの場合は doit_cmp_dataset_access_role など)を探します。

  3. ロールを選択し、Edit role を選択します。

  4. 無効にしたい機能に関連付けられた権限を削除します。

  5. Update を選択して変更を保存します。

詳細については、既存のカスタムロールを編集する方法についての Google Cloud ドキュメント(編集する既存のカスタムロール)を参照してください。

ネットワークアクセスと VPC Service Controls​

環境で送信元 IP によってインバウンドアクセスが制限されている場合、または VPC Service Controls を使用している場合は、許可リストに追加する必要がある IP アドレスと VPC-SC の構成手順について、Network access を参照してください。

複数のリソースを接続する​

  • 複数の Google Cloud 組織またはプロジェクトがある場合は、それぞれを個別に接続して、どの組織またはプロジェクトが特定の機能にアクセスできるかを制御してください。

    なお、BigQuery Intelligence は現時点では複数のサービスアカウントをサポートしていません。詳細は、Set up BigQuery Intelligence を参照してください。

  • インサイトと推奨事項用に複数の BigQuery データセットを接続した場合、Insights は接続されているすべてのデータセットのデータに基づいてインサイトを生成します。

接続を削除する​

接続済みの組織、プロジェクト、またはデータセットを削除するには:

  1. 切断したいリソースの横にあるケバブメニュー(⋮)を選択します。

  2. Delete connection を選択します。

サービスアカウントを削除する​

接続済みの組織配下のサービスアカウントを DoiT コンソールから削除し、新しいサービスアカウントを作成する必要がある場合は、次の点に注意してください。

  • DoiT コンソールからサービスアカウントを削除すると、BigQuery Intelligence によって作成された関連データセットとシンクも削除されます。

  • 新しいサービスアカウントに BigQuery Intelligence の権限が付与されると、シンクが再作成され、履歴ジョブの再実行(バックフィル)がトリガーされます。そのため、サービスアカウントのセットアップ中にコストが増加する可能性があります。