Google Workspace の接続
Google Workspace を Tenable One Cloud Exposure に接続することで、関連する資産の完全なインベントリが明らかになります。
- このセクションで取り上げるのは、SSO 経由での クラウドサイバーエクスポージャー コンソールのログインを目的にした IdP の統合ではありません。コンソールにアクセスする必要があるユーザーに対して SSO 経由のログインを有効にする方法の詳細については、シングルサインオンを参照してください。
- Tenable では、Workspace でローカルに定義されていない外部の Google グループとユーザーに関する情報も識別して表示します。
- Google Workspace を使用しない場合でも、同じ手順を使用してクラウドアイデンティティの接続を進める必要があります。コンソール全体で、Google Workspace という用語はクラウドアイデンティティと同じ意味で使用されます。
Tenable を使用して GCP 環境をモニタリングしている場合は、プロジェクト/組織を接続する前に Google Workspace に接続する必要があります。
この統合中に特定のアクセス許可を Tenable に付与する際に生じる可能性のある一般的な質問への回答については、GCP の FAQ を参照してください。
前提条件
始める前に
- Google Cloud コンソールでプロジェクトの作成、サービスアカウントの作成、サービスアカウントの承認を行うユーザーに適切なアクセス許可を付与します。
- Google Workspace 管理コンソールでアクションを実行するユーザーに管理者権限を付与します。
- Tenable が使用するサービスアカウントをホストする Google Workspace ごとに専用のプロジェクトを作成します。
- Google Cloud コンソールで専用プロジェクトの請求を有効にします。手順については、請求の有効化に関する Google のドキュメントを参照してください。
-
Terraform 固有
- Terraform CLI v0.13 以上をインストールしていることを確認します。
- terraform init が既存の設定と競合することなく、Google Cloud プロバイダー v7.11 以上をダウンロードしてインストールできることを確認します。
- API スロットリングの防止。GCP は、プロジェクトレベルで API レート制限を適用します。他のサービスアカウントとプロジェクトを共有すると、制限に達してブロックされるリスクが高まります。
- 経費の分離。 共有プロジェクトでは、請求データや使用状況データが不明瞭になり、Tenable サービスアカウントによって生成されたコストを正確に追跡することが難しくなります。
Workspace の追加
ここで説明されている手順に沿って、クラウドサイバーエクスポージャー に Google Workspace を追加します。このプロセスには以下が含まれます。
- GCP 組織で Tenable のサービスアカウントを作成する
- サービスアカウントにアクセス許可を割り当てる
Google Workspace を追加する方法
- クラウドサイバーエクスポージャー コンソールで、[設定] > [統合] の順に移動し、[統合を追加] をクリックします。
- 統合ライブラリで、[Google Workspace] をクリックします。Google Workspace ウィザードが開きます。
-
ウィザードで次の操作を実行します。
- 統合の名前を入力します。
- 顧客 ID を取得するため、Google 管理コンソールを開き、[Account] > [Account settings] の順に移動し、[Customer ID] の値をコピーします。
[Deployment] で、次のデプロイメントオプションのいずれかを選択して、専用プロジェクトで Tenable のサービスアカウントを作成します。
- Cloud Shell - スクリプトベースのデプロイメント。ウィザードに表示されるスクリプトをコピーし、専用の GCP プロジェクトで実行して、必要なアクセス許可を クラウドサイバーエクスポージャー に付与します。
- Google Cloud コンソールで、Tenable の新しいプロジェクトを作成します。
- 新しく作成されたプロジェクト内で Cloud Shell をアクティブ化します。
- クラウドサイバーエクスポージャー ウィザードに表示されるスクリプトをコピーし、Cloud Shell で実行します。
- スクリプトが正常に完了するまで待機し、出力からサービスアカウントのメールをコピーします。
- Terraform - モジュールベースのデプロイメント。デプロイする前に、Terraform 固有の前提条件を参照してください。
- 管理プロジェクト ID を入力します。これは、この統合のサービスアカウントをホストする前提条件の ID です。
- Google Cloud コンソールで、作成したプロジェクトに移動します。
- [IAM & Admin] > [Labels] に移動し、[+ Add label] をクリックし、クラウドサイバーエクスポージャー ウィザードに表示されるキーと値のペアを追加します。
- クラウドサイバーエクスポージャー ウィザードに表示されるモジュール呼び出しをコピーして Terraform 設定に追加し、terraform apply を実行します。このモジュールはアイデンティティを作成し、環境に接続してスキャンするアクセス許可を Tenable に付与します。
- 手動 - Google Cloud コンソールを使用し、手動で設定します。詳細な手順については、Google Workspace の手動デプロイを参照してください。
警告: 手動デプロイメントが完了したら、ウィザードに戻り、デプロイメント後の手順を完了します。- Cloud Shell - スクリプトベースのデプロイメント。ウィザードに表示されるスクリプトをコピーし、専用の GCP プロジェクトで実行して、必要なアクセス許可を クラウドサイバーエクスポージャー に付与します。
- [デプロイメント後の GCP 設定] で、サービスアカウントのメールアドレスを入力します。前の手順で選択したデプロイメント方法に応じて、次のいずれかの方法でメールを取得します。
- Cloud Shell - スクリプトが正常に完了するまで待機し、生成された出力からサービスアカウントのメールをコピーして貼り付けます。
- Terraform - Terraform の出力からサービスアカウントのメール (tenable_service_account_mail) を取得します。
- 手動 - Google Workspace の手動デプロイを参照してください。
[デプロイメント後の Google Workspace 設定] で、Google ワークスペースへのアクセス許可を Tenable に付与します。
- カスタムロールを使用してアクセス許可を付与する (推奨): クラウドサイバーエクスポージャー 内のすべてのコア機能をサポートします。このオプションは、ほとんどの組織に推奨されます。
- ドメイン全体の委任を使用してアクセス許可を付与する (アドバンス): 高度な IAM 機能を必要とする組織に適しています。詳細については、ドメイン全体の委任による追加機能を参照してください。
これらのアクセス許可が必要な理由についての詳細は、必要なアクセス許可を参照してください。
- [終了] をクリックします。
カスタムロールを使用してアクセス許可を付与する (推奨)
カスタムロールを使用してアクセス許可を Google Workspace に付与します。
この方法は、ジャストインタイムアクセスを含む クラウドサイバーエクスポージャー 内のすべてのコア機能をサポートします。このオプションは、ほとんどの組織に推奨されます。
- Google Admin コンソールで、[Account] > [Admin roles] に移動し、[Create new role] をクリックします。
- [Name] と [Description] を入力してから、[CONTINUE] をクリックします。
-
[Select Privileges] > [Admin API privileges] で、「Required Permissions」 の [2a. Custom role (Recommended)] に一覧表示されている権限を選択します。
注意: オプションの [Groups] > [Update] 権限により、ジャストインタイムアクセスを活用して、Google Workspace グループにユーザーを一時的に追加できます。 - [CONTINUE]、[CREATE ROLE] の順にクリックします。
- 新しく作成されたロールの [管理者ロール] ページで、[サービスアカウントへの割り当て] をクリックします。
- クラウドサイバーエクスポージャー ウィザードのステップ 2 で作成したサービスアカウントのメールアドレスを入力し、[追加] をクリックしてから、[ロールを割り当て] をクリックします。
ドメイン全体の委任を使用してアクセス許可を付与する (アドバンス)
ドメイン全体の委任を使用してアクセス許可を Google Workspace に付与します。
高度な IAM 機能を必要とする組織に適しています。また、ジャストインタイムアクセスもサポートしています。詳細については、ドメイン全体の委任による追加機能を参照してください。
- Google Cloud コンソールで、クラウドサイバーエクスポージャー ウィザードのステップ 2 で作成したサービスアカウントに移動し、[Details] タブで、[Advanced settings] セクションをクリックして展開します。
- クライアント ID をコピーしたら、[Google Workspace 管理コンソールを表示] をクリックします。
- 管理コンソールで、[セキュリティ] > [アクセスとデータコントロール] > [API コントロール] に移動します。
- [ドメイン全体の委任の管理] をクリックし、[新規追加] をクリックします。
- 先ほどコピーしたクライアント ID を貼り付けます。
-
次の OAuth スコープをコピーして貼り付けます。
コピーhttps://www.googleapis.com/auth/cloud-identity.groups.readonly,
https://www.googleapis.com/auth/admin.directory.customer.readonly,
https://www.googleapis.com/auth/admin.directory.group.readonly,
https://www.googleapis.com/auth/admin.directory.orgunit.readonly,
https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly,
https://www.googleapis.com/auth/admin.directory.user.readonly,
https://www.googleapis.com/auth/admin.reports.audit.readonly,
https://www.googleapis.com/auth/cloud-identity.inboundsso.readonly - (オプション) ジャストインタイム (JIT) を利用して、この組織の Google Workspace グループにユーザーを一時的に追加する場合は、OAuth スコープ JIT OAuth scope を追加します。
- [承認] をクリックします。
- クラウドサイバーエクスポージャー ウィザードで、関連する Google 管理コンソールユーザーのユーザーメールを入力します。
- ユーザーにはスーパー管理者ロールが割り当てられる必要があります。
- このロールをユーザーに割り当てる、またはこのロールを持つユーザーを表示するには、[アカウント] > [管理者ロール] に移動し、[スーパー管理者] にカーソルを合わせて、[管理者を割り当て] または [管理者を表示] をクリックします。
- Tenable に実際に付与されるアクセス許可は、以前に付与された OAuth スコープに制限されます。
Google Workspace の手動デプロイ
Google Cloud コンソールを使用して、Workspace を手動でデプロイします。これは、Workspace の追加際にデプロイメントタイプとして手動を選択した場合の手順です。
- Google Cloud コンソールで、Tenable の新しいプロジェクトを作成するか、既存のプロジェクトに移動します (非推奨)。
- 新しく作成されたプロジェクト内で、[IAM & Admin] > [Roles] の順に移動し、[+Create Role] をクリックします。
- [Title]、[Description]、[ID] を入力します。
- [+ Add Permissions] をクリックし、「Required Permissions」 の [Create Service Account] にリストされているアクセス許可を追加します。
- [Create] をクリックしてロールの作成を完了します。
- [Service Accounts] タブをクリックしてから、[+ Create service account] をクリックします。
- [Service account name]、[ID]、[Description] を入力してから、[Create and continue] をクリックします。
- 作成したカスタムロールを選択して、[Continue]、[Done] をクリックします。
-
新しく作成したサービスアカウントをクリックし、[Principals with access] タブに移動して、 [+ Grant access] をクリックします。
重要: アクセス権を付与できない場合は、IAM ポリシーでプリンシパルとして Tenable を選択できないようにするドメイン制限制約を含む組織ポリシーが存在している可能性があります。これにより、Tenable では作成されたサービスアカウントのなりすましが防止されます。この場合は、Tenable を許可されたドメインとして追加するで説明されている手順に従います。 - [New principals] フィールドに [email protected] を挿入し、[Service Account Token Creator] ロールを選択します。[Save] をクリックして終了します。
- 作成したサービスアカウントのメールをコピーして保存します。[IAM & Admin] > [Service Accounts] の [Email] フィールドで確認できます。これは、クラウドサイバーエクスポージャー コンソールに入力する必要があります。
- [IAM & Admin] > [Labels] に移動し、[+ Add label] をクリックし、クラウドサイバーエクスポージャー ウィザードに表示されるキーと値のペアを追加します。
- [Save] をクリックして終了します。
- [APIs & Services] > [Enabled APIs & services] の順に移動し、[Service Usage API] を選択して、[ENABLE] をクリックします。
- [クラウドサイバーエクスポージャー コンソール] ウィザードに戻り、デプロイメント後の GCP 設定を続行します。Workspace の追加を参照してください。
Tenable を許可されたドメインとして追加する
作成したサービスアカウントにアクセス権を付与できない場合は、IAM ポリシーでプリンシパルとして クラウドサイバーエクスポージャー を選択できないようにするドメイン制限制約を含む組織ポリシーが存在している可能性があります。これにより、Tenable では作成されたサービスアカウントのなりすましが防止されます。この場合は、こちらで説明されている手順に従います。
許可されたドメインとして Tenable を追加する方法
-
Google Cloud コンソールのサービスアカウントが作成されたプロジェクト内で、[IAM & Admin] > [Organization Policies] の順に移動します。
注意: すべてのプロジェクトでワークロードスキャンに Tenable を使用する場合は、最上位の組織ポリシーで許可されたドメインとして Tenable を追加する必要があります。 - フィルターで、[Domain restricted sharing] を検索して選択し、ポリシーをクリックして開きます。
- [ポリシーの管理] をクリックします。
- [ルール] セクションで、[ルールを追加] をクリックします。
- [ポリシーの値] で、[カスタム] を選択します。
- [ポリシーの種類] で、[許可] を選択します。
- [カスタム値] で、次の値を入力します。 C00ndl9ht
ドメイン全体の委任による追加の IAM 機能
ドメイン全体の委任でサービスアカウントにアクセス許可を付与する場合、以下の追加の IAM 機能がサポートされます。
注意:
- 組織に適したアクセス許可の付与方法を確認するには、Google Workspace のアクセス許可を参照してください。
- ドメイン全体の委任の詳細については、ドメイン全体の委任 (アドバンス)を参照してください。
- 管理者ロール。Google Workspace 管理者ロールを可視化します。管理者ロールは、管理者が管理できる設定、データ、管理機能など、組織の環境に対する管理者のアクセスと制御のレベルを定義します。ドメイン全体の委任により、以下を表示できます。
- 環境に存在する管理者ロール
- ロールの割り当て (管理アクセスと権限の配布に関するインサイトを提供します)
- SSO プロファイル。ワークスペースの SSO 設定を可視化し、MFA 関連の検出結果の精度を改善します。SSO プロファイルは、多要素認証 (MFA) がサードパーティのアイデンティティプロバイダー (IdP) を通じて適用されているかどうかを示します。
- 「MFA なし」ラベルの挙動。SSO プロファイルが検出されると、クラウドサイバーエクスポージャー は MFA がサードパーティの IdP レベルで適用されていると想定し、影響を受けるアイデンティティに [MFA なし] のラベルを割り当てません。
- 検出結果の深刻度への影響。この可視性がなければ、MFA の適用に関連する検出結果の深刻度の粒度が詳細に行われず、リスク評価に影響する可能性があります。
- 非アクティブなユーザー。本当に非アクティブなユーザーと、API アクセスを通じてアクティブなユーザーを区別することで、非アクティブの検出結果の誤検出を減らします。ドメイン全体の委任を使用することで、以下を行うことができます。
- クラウドサイバーエクスポージャー は、ユーザーが UI にログインしていなくても、API のみのアクティビティを検出できます。
- これにより、本当に非アクティブなプリンシパルのみにフラグが立てられ、非アクティビティ関連の検出結果の関連性と精度が向上します。
統合名の更新
Google Workspace 統合の名前を変更でき、その名前を クラウドサイバーエクスポージャー に表示することができます。特に複数のアイデンティティプロバイダーの統合がある場合、整理や識別に役立ちます。
名前を変更する方法
- クラウドサイバーエクスポージャー コンソールで、[設定] > [統合] の順に移動し、[Google Workspace] をクリックします。
- 関連する統合の横にある三点リーダーをクリックして、[編集] をクリックします。
- ウィザードのステップ 1 (ワークスペースの詳細) に移動し、[名前] フィールドを更新します。
- [次へ] をクリックして最後のステップに移動し、[更新] をクリックします。