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

Google Cloud リソースを接続する

Google Cloud のリソースは階層的に構成されています。Google Cloud の Identity and Access Management(IAM)システムを使用して、特定のリソースへのきめ細かいアクセス権を付与し、不要なアクセスを防ぐことができます。IAM ポリシーの階層は、Google Cloud のリソース階層と同じ構造に従います。

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

必要な権限

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

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

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

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

  • Google Cloud Recommender BigQuery Export からのインサイト を表示するために BigQuery データセットを接続する場合は、そのデータセットをホストしているプロジェクトに対して Role Administratorroles/iam.RoleAdmin)IAM ロールが付与されている必要があります。このロールは、プロジェクト配下のサービスアカウントにカスタムロールを作成して付与するために必要です。

サービスアカウント認証

Google Cloud は、service accounts をワークロードの ID として使用することをサポートしています。2023 年 6 月以降、DoiT コンソールのワークロードでサービスアカウントを認証する推奨方法は、サービスアカウントキーに関連するセキュリティリスクを軽減する service account impersonation に変更されます。

サービスアカウントのなりすまし(impersonation)には、次の 2 つのプリンシパルが関与します。

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

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

DoiT ワークロード用の ID を設定する

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

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

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

    注意

    ドメインで ID を制限する GCP 組織ポリシー を使用している場合は、DoiT の caller サービスアカウントの Organization Resource ID C03rw2ty2 を allowlist に追加してください。

以下は、詳細な設定手順です。

  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 請求アカウントに接続されている(プロジェクトの課金ステータスを確認する を参照)。

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

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

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

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

    3. Google IAM 組織 ID を取得します。

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

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

  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. roles/iam.serviceAccountTokenCreator ロールを DoiT の caller サービスアカウントに付与する IAM ポリシーバインディングを追加し、権限保持サービスアカウントになりすませるようにします。

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

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

データセットを接続する

GCP Recommender BigQuery export からのインサイトを有効にするには、インサイトとリコメンデーションのデータを含む BigQuery データセットを接続する必要があります。

Important

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

  • Google Cloud Recommender からのインサイトおよびリコメンデーションのデータが BigQuery データセットにエクスポートされている。

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

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

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

  2. Insights from GCP Recommender BigQuery export のチェックボックスを選択します。機能を展開して、必要な権限を確認できます。

    Google Cloud settings new dataset

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

    gcloud commands for dataset access

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

  5. Google IAM プロジェクト ID を取得します。Identifying projects を参照してください。

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

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

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

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

    3. プロジェクトレベルの権限を持つ doit_cmp_dataset_project_access_role というカスタムロールを作成し、そのロールをサービスアカウントに付与するために、Add a policy binding を実行します。

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

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

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

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

ロールを更新する

リソースに対して機能を追加または削除するには、次の手順に従ってください。

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

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

  3. 必要に応じて機能の選択を変更します。

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

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

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

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

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

  • インサイトとリコメンデーション用に複数の BigQuery データセットを接続した場合、DoiT Insights は接続されているすべてのデータセット内のデータに基づいてインサイトを生成します。

接続を削除する

接続済みの組織、プロジェクト、またはデータセットを削除するには、次の手順に従ってください。

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

  2. Delete connection を選択します。

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

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

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

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