Google Cloud Recommender
このドキュメントでは、 Google CloudRecommender を Google Security Operations と構成して統合するためのガイダンスを提供します。
前提条件
統合を構成する前に、前提条件の手順をすべて完了してください。
IAM ロールを作成して構成する
Google Cloud コンソールで、[IAM ロール] ページに移動します。
[ロールを作成] をクリックして、統合に必要な権限を持つカスタムロールを作成します。
新しいカスタムロールの場合は、タイトル、説明、一意の ID を指定します。
[ロールのリリース段階] を [一般提供] に設定します。
作成したロールに次の権限を付与します。
iam.roles.createiam.roles.deleteiam.roles.getiam.roles.listiam.roles.undeleteiam.roles.updateiam.serviceAccounts.createiam.serviceAccounts.deleteiam.serviceAccounts.disableiam.serviceAccounts.enableiam.serviceAccounts.getiam.serviceAccounts.getIamPolicyiam.serviceAccounts.listiam.serviceAccounts.setIamPolicyiam.serviceAccounts.undeleteiam.serviceAccounts.updaterecommender.iamPolicyInsights.getrecommender.iamPolicyInsights.listrecommender.iamPolicyLateralMovementInsights.getrecommender.iamPolicyLateralMovementInsights.listrecommender.iamPolicyRecommendations.getrecommender.iamPolicyRecommendations.listrecommender.iamPolicyRecommendations.updaterecommender.iamServiceAccountInsights.getrecommender.iamServiceAccountInsights.listrecommender.locations.getrecommender.locations.listresourcemanager.folders.getresourcemanager.folders.getIamPolicyresourcemanager.folders.setIamPolicyresourcemanager.organizations.getresourcemanager.organizations.getIamPolicyresourcemanager.organizations.setIamPolicyresourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.listresourcemanager.projects.setIamPolicysecuritycenter.assets.listsecuritycenter.findings.groupsecuritycenter.findings.listsecuritycenter.findings.listFindingPropertyNamessecuritycenter.findings.setMutesecuritycenter.findings.setStatesecuritycenter.sources.getsecuritycenter.sources.listsecuritycenter.userinterfacemetadata.get
[作成] をクリックします。
サービス アカウントを作成する
サービス アカウントを作成するには、サービス アカウントの作成の手順に沿って操作します。
サービス アカウントを作成したら、JSON ファイルとしてダウンロードします。統合パラメータを構成するときに、ダウンロードした JSON ファイルの内容を指定する必要があります。
Google Cloud Recommender を Google SecOps と統合する
Google SecOps SOAR で統合を構成する手順の詳細については、統合を構成するをご覧ください。
統合の入力
統合を構成するには、次のパラメータを使用します。
| パラメータ | |
|---|---|
API Root |
必須
Google Cloud Recommender サービスの API ルート。 デフォルト値は |
Organization ID |
省略可 Google CloudRecommender 統合で使用する組織 ID。 |
User's Service Account |
必須
Google Cloud Recommender サービス アカウントのコンテンツ。 サービス アカウントの作成時にダウンロードしたサービス アカウントの JSON ファイルの内容をすべて提供してください。 |
Verify SSL |
省略可 オンにすると、 Google Cloud Recommender サーバーへの接続用の SSL 証明書が有効であるかどうかが検証されます。 デフォルトでオンになっています。 |
操作
IAM の推奨事項を適用する
指定された入力に基づいて IAM の推奨事項を適用します。
このアクションは google.iam.policy.Recommender の推奨事項でのみ機能します。
エンティティ
このアクションはエンティティに対しては実行されません。
アクション入力
アクションを構成するには、次のパラメータを使用します。
| パラメータ | |
|---|---|
IAM Recommendations JSON |
必須
推奨事項の JSON 結果。 JSON 結果は、推奨事項を一覧表示アクションまたは推奨事項を取得アクションからプレースホルダとして指定できます。 |
アクションの出力
| アクションの出力タイプ | |
|---|---|
| ケースウォールのアタッチメント | なし |
| ケースのウォールのリンク | なし |
| ケースウォール テーブル | なし |
| 拡充テーブル | なし |
| エンティティのインサイト | なし |
| インサイト | なし |
| JSON の結果 | 利用可能 |
| OOTB ウィジェット | なし |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
| スクリプトの結果名 | 値 |
|---|---|
| is_success | True/False |
JSON の結果
{
"applied_recommendations": [
{
"name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/217d3019-bae5-4a52-9968-787fdd546a53",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 610
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/-",
"value": "USER_ID@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/compute.instanceAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "USER_ID@example.com",
"/iamPolicy/bindings/*/role": "roles/compute.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "user:USER_ID@example.com",
"removedRole": "roles/compute.admin",
"addedRoles": [
"roles/compute.instanceAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "SUCCEEDED",
"stateMetadata": {
"applied_by": "bulk_apply_by_automated_script-2023-08-11"
}
},
"etag": "\"892d57ee41baa03e\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID"
}
],
"priority": "P4"
},
{
"name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 19
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:USER_ID@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com",
"/iamPolicy/bindings/*/role": "roles/storage.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "user:USER_ID@example.com",
"removedRole": "roles/storage.admin",
"addedRoles": [
"roles/storage.objectAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "SUCCEEDED",
"stateMetadata": {
"applied_by": "bulk_apply_by_automated_script-2023-08-11"
}
},
"etag": "\"af7635ffeb512998\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID"
}
],
"priority": "P4"
}
],
"failed_recommendations": []
}
ケースウォール
このアクションでは、次の出力メッセージが表示されます。
| 出力メッセージ | メッセージの説明 |
|---|---|
Successfully applied provided IAM recommendations. |
アクションが成功しました。 |
Successfully applied provided IAM recommendation, but some of the
recommendations were not applied. |
アクションが成功しました。 |
No provided IAM recommendations were applied. |
最適化案を適用できませんでした。 |
Error executing action ACTION_NAME. |
アクションがエラーを返しました。 |
推奨事項を取得する
Google Cloud Recommender サービスから特定の推奨事項を取得します。
エンティティ
このアクションはエンティティに対しては実行されません。
アクション入力
アクションを構成するには、次のパラメータを使用します。
| パラメータ | |
|---|---|
Recommendation name |
必須
返す推奨事項の名前を指定します。 このアクションは、カンマ区切りの文字列として複数の値を受け入れます。 期待される入力の例:
projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7
|
アクションの出力
| アクションの出力タイプ | |
|---|---|
| ケースウォールのアタッチメント | なし |
| ケースのウォールのリンク | なし |
| ケースウォール テーブル | なし |
| 拡充テーブル | なし |
| エンティティのインサイト | なし |
| インサイト | なし |
| JSON の結果 | 利用可能 |
| OOTB ウィジェット | なし |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
| スクリプトの結果名 | 値 |
|---|---|
| is_success | True/False |
JSON の結果
[
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 68
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"/iamPolicy/bindings/*/role": "roles/monitoring.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"removedRole": "roles/monitoring.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/"
}
],
"priority": "P4"
}
]
ケースウォール
このアクションでは、次の出力メッセージが表示されます。
| 出力メッセージ | メッセージの説明 |
|---|---|
Successfully found recommendation in the Google Cloud Recommender
service. |
アクションが成功しました。 |
No recommendations were found in the Google Cloud Recommender
service.
|
データを利用できません。 |
Error executing action ACTION_NAME。 |
アクションがエラーを返しました。 |
推奨事項の一覧表示
Google Cloud Recommender サービスで利用可能な推奨事項を一覧表示します。
エンティティ
このアクションはエンティティに対しては実行されません。
アクション入力
アクションを構成するには、次のパラメータを使用します。
| パラメータ | |
|---|---|
Recommendation Filter |
省略可 推奨事項を取得するフィルタを指定します。 パラメータは、次のいずれかの形式の文字列にする必要があります。
値が指定されていない場合、アクションは構成されたサービス アカウントからプロジェクト ID を取得します。 |
Recommendation Location |
必須
最適化案を取得する Google Cloud ロケーションを指定します。 デフォルトは、 |
Recommendation State |
省略可 返す推奨事項の状態を指定します。 デフォルトは、 次の値があります。
|
Recommendation Priority |
省略可 返す推奨事項の優先度を指定します。複数の値は、カンマ区切りの文字列として指定できます。 |
Recommender Subtype |
省略可 返される Recommender サブタイプを指定します。 デフォルトは、 次の値があります。
|
Max Records To Return |
省略可 返すレコードの数を指定します。値が指定されていない場合、アクションはデフォルトで 50 件のレコードを返します。 |
アクションの出力
| アクションの出力タイプ | |
|---|---|
| ケースウォールのアタッチメント | なし |
| ケースのウォールのリンク | なし |
| ケースウォール テーブル | 利用可能 |
| 拡充テーブル | なし |
| エンティティのインサイト | なし |
| インサイト | なし |
| JSON の結果 | 利用可能 |
| OOTB ウィジェット | なし |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
| スクリプトの結果名 | 値 |
|---|---|
| is_success | True/False |
JSON の結果
[
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-27T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 68
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID",
"/iamPolicy/bindings/*/role": "roles/monitoring.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/",
"member": "serviceAccount:SERVICE_ACCOUNT_ID",
"removedRole": "roles/monitoring.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/i/locations/global/insightTypes/"
}
],
"priority": "P4"
},
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-27T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 5
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com",
"/iamPolicy/bindings/*/role": "roles/chroniclesm.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects",
"member": "user:USER_ID@example.com",
"removedRole": "roles/chroniclesm.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects"
}
],
"priority": "P4"
}
]
ケースウォール
このアクションでは、次の出力メッセージが表示されます。
| 出力メッセージ | メッセージの説明 |
|---|---|
Successfully found recommendations for the provided criteria in
the Google Cloud Recommender service. |
アクションが成功しました。 |
No recommendations were found for the provided criteria in the
Google Cloud Recommender service. |
データはありません。 |
Error executing action ACTION_NAME. |
アクションがエラーを返しました。 |
このアクションでは、次のケースウォール テーブルが提供されます。
| 利用可能な最適化案 | |
|---|---|
| 列 |
|
Ping
Google SecOps Marketplace タブの統合構成ページで提供されるパラメータを使用して、 Google Cloud Recommender サービスへの接続をテストします。
エンティティ
このアクションはエンティティに対しては実行されません。
アクション入力
なし
アクションの出力
| アクションの出力タイプ | |
|---|---|
| ケースウォールのアタッチメント | なし |
| ケースのウォールのリンク | なし |
| ケースウォール テーブル | なし |
| 拡充テーブル | なし |
| エンティティのインサイト | なし |
| インサイト | なし |
| JSON の結果 | なし |
| OOTB ウィジェット | なし |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
| スクリプトの結果名 | 値 |
|---|---|
| is_success | True/False |
ケースウォール
このアクションでは、次の出力メッセージが表示されます。
| 出力メッセージ | メッセージの説明 |
|---|---|
Successfully connected to the Google Cloud Recommender service
with the provided connection parameters! |
アクションが成功しました。 |
Failed to connect to the Google Cloud Recommender service!
|
アクションがエラーを返しました。 |
最適化案を更新する
Google Cloud Recommender サービスで推奨事項を更新します。
エンティティ
このアクションはエンティティに対しては実行されません。
アクション入力
次のパラメータを使用してアクションを構成します。
| パラメータ | |
|---|---|
Recommendation name |
必須
更新する推奨事項の名前を指定します。 このアクションは、カンマ区切りの文字列として複数の値を受け入れます。 想定される入力の例:
|
Recommendation State |
省略可 推奨事項の変更先の状態を指定します。 デフォルトは、 次の値があります。
|
Recommendation Result |
省略可 レコメンデーションの変更先の結果を指定します。 デフォルトは、 次の値があります。
|
アクションの出力
| アクションの出力タイプ | |
|---|---|
| ケースウォールのアタッチメント | なし |
| ケースのウォールのリンク | なし |
| ケースウォール テーブル | なし |
| 拡充テーブル | なし |
| エンティティのインサイト | なし |
| インサイト | なし |
| JSON の結果 | 利用可能 |
| OOTB ウィジェット | なし |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
| スクリプトの結果名 | 値 |
|---|---|
| is_success | True/False |
JSON の結果
[
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 68
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"/iamPolicy/bindings/*/role": "roles/monitoring.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"removedRole": "roles/monitoring.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/"
}
],
"priority": "P4"
}
]
ケースウォール
このアクションでは、次の出力メッセージが表示されます。
| 出力メッセージ | メッセージの説明 |
|---|---|
Successfully updated recommendation in the Google Cloud
Recommender service. |
アクションが成功しました。 |
No recommendations were found in the Google Cloud Recommender
service.
|
データを利用できません。 |
Error executing action ACTION_NAME。 |
アクションがエラーを返しました。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。