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

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 Administrator (roles/iam.organizationRoleAdmin) IAM ロールが付与されている必要があります。このロールは、組織配下のサービスアカウントに対してカスタムロールを作成して付与するために必要です。

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

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

サービスアカウント認証

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

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

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

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

DoiT ワークロード用のアイデンティティを構成する

DoiT コンソールを接続する際には、DoiT ワークロード用のアイデンティティを構成するために、主に次の 2 つの作業を行う必要があります。

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

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

    注意

    GCP の Organization Policy でドメインによるアイデンティティの制限を使用している場合は、Organization Resource ID C03rw2ty2 を使用して DoiT の caller サービスアカウントを必ず許可リストに登録してください。

以下に詳細な構成手順を示します。

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

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

    Google Cloud settings empty

Organization を接続

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

  2. Organization で有効にしたい機能を選択します。必要な権限を表示するには機能を展開します。

    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 コンソールに表示されているコマンドを順番に実行し、Organization のアクセス制御を構成します。

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

    2. 現在のプロジェクトで Service Usage API と Resource Manager API を有効にします。

    3. Google IAM の Organization ID を取得します。

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

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

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

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

データセットを接続する

GCP Recommender BigQuery エクスポートからのインサイトを有効にするには、インサイトと推奨事項のデータを含む 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 Project 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. DoiT 呼び出し元サービスアカウントが権限を持つサービスアカウントを代行できるようにするため、roles/iam.serviceAccountTokenCreator ロールを DoiT 呼び出し元サービスアカウントに付与する IAM ポリシーバインディングを追加します。

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

  9. Google Cloud console にサインインし、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. サイドパネルに表示される手順に従ってカスタムロールを更新してください。

機能を削除する

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

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

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

  3. ロールを選択してから Edit role を選択します。

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

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

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

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

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

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

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

接続を削除する

接続されている組織、プロジェクト、またはデータセットを削除するには、次のようにします。

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

  2. Delete connection を選択します。

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

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

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

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