変更リスクの推奨事項

変更リスクの推奨事項は、最も重要なリソースに対するリスクの高い変更をインテリジェントにフラグ付けし、問題を防止および軽減するための推奨事項を提供することで、クラウド インフラストラクチャの構成ミスのリスクを軽減します。

はじめに

構成ミスはクラウド インシデントの一般的な原因です。人的エラーや予期しないワークロードの変更によって発生し、パフォーマンスの問題、信頼性の問題、さらにはサービス停止など、さまざまな問題につながる可能性があります。多くの構成ミスは、初めは気づきにくいため、追跡や解決が難しくなります。

変更リスクの推奨事項は、Recommender サービスの Active Assist の推奨事項と分析情報の新しいファミリーです。変更リスクの推奨事項は、使用状況やその他のシグナルに基づいて重要と識別されたクラウド リソースに対するリスクの高い変更を自動的に報告します。これは、重要なクラウド リソースの構成ミスによって引き起こされる問題(サービス停止など)の防止、検出、軽減に役立ちます。たとえば、頻繁に使用するプロジェクトを削除しようとしたり、最近の利用状況に基づいて重要な依存関係のある IAM ポリシーを変更しようとすると、変更リスクの推奨事項により、その変更に関連するリスクが事前に警告されます。これにより、意図しない問題の発生を防ぐことができます。

変更リスクの推奨事項の対象範囲

現在、変更リスクの推奨事項は、以下の表に示すリソースとアクションでのみサポートされています。

リソース アクション 対象 リソースの重要度を決定する条件
プロジェクト 削除
  • Google Cloud コンソール
  • gcloud CLI
  • Recommender API
  • プロジェクトの使用状況(API 呼び出し、ネットワーク トラフィック、Google Cloud サービスの使用状況)
  • 請求
  • 過去 30 日間の使用状況
サービス アカウント 削除
  • Google Cloud コンソール
  • gcloud CLI
  • Recommender API
  • 認証回数
  • 過去 90 日間の使用状況
IAM ポリシー 変更
  • Google Cloud コンソール
  • gcloud CLI
  • Recommender API
  • 行使された権限の数
  • 過去 90 日間の使用状況
  • 重要なプロジェクトに属している

始める前に

この機能を使用する前に、サービスを設定する必要があります。

  1. 単一の課金プロジェクトで Recommender API を有効にします。gcloud / API の請求プロジェクト機能により、この請求プロジェクトを使用して、他のプロジェクト、組織全体、または請求先アカウントの推奨事項と分析情報を取得できます。
  2. この機能へのアクセスに使用する権限をユーザーまたはサービス アカウントに付与します。

権限

変更リスクの推奨事項を表示するには、特定のリソースに対する特定の権限が必要です。

  • プロジェクト

    • recommender.resourcemanagerProjectChangeRiskRecommendations.get
    • recommender.resourcemanagerProjectChangeRiskRecommendations.list
    • recommender.resourcemanagerProjectChangeRiskInsights.get
    • recommender.resourcemanagerProjectChangeRiskInsights.list
  • サービス アカウント

    • recommender.iamServiceAccountChangeRiskRecommendations.get
    • recommender.iamServiceAccountChangeRiskRecommendations.list
    • recommender.iamServiceAccountChangeRiskInsights.get
    • recommender.iamServiceAccountChangeRiskInsights.list
  • IAM ポリシー

    • recommender.iamPolicyChangeRiskRecommendations.get
    • recommender.iamPolicyChangeRiskRecommendations.list
    • recommender.iamPolicyChangeRiskInsights.get
    • recommender.iamPolicyChangeRiskInsights.list

これらの権限を含む roles/recommender.viewer ロールを付与することもできます。

変更リスクの推奨事項 / 分析情報のレスポンスについて

次の表に、推奨事項と分析情報のオブジェクトに表示されるフィールドの説明を示します。

推奨事項

フィールド名 タイプ 説明
associatedInsights string この推奨事項に関連付けられている分析情報。 projects/[project_number]/locations/global/ insightTypes/google.resourcemanager.project. ChangeRiskInsight/insights/[fingerprint]
asset object 関連するリソースのアセット名とアセットタイプが含まれます。
etag string RecommenderConfig のフィンガープリント。更新時に楽観ロックを提供します。
updateTime string 推奨事項が最後に更新された時刻のタイムスタンプ。RFC 3339 UTC Zulu 形式のタイムスタンプ(精度はナノ秒)。例: 2022-01-10T22:47:38.421626Z

分析情報

フィールド名 タイプ 説明
associatedRecommendations string この推奨事項に関連する推奨事項。 projects/[project_number]/locations/global/ recommenders/google.resourcemanager.project. ChangeRiskRecommender/recommendations/ [recommendation_id]
constraint object ユーザーに実行を推奨しない変更リスクの推奨事項の制約が含まれます。 This project should not be deleted.
importance object このリソースが重要であると Google が判断した理由のリストが含まれます。たとえば、使用率が高い、などです。
risk object リスク評価の詳細が含まれます。たとえば、リソース使用量のアクティビティ値から重要度を判断します。
updateTime string 推奨事項が最後に更新された時刻のタイムスタンプ。RFC 3339 UTC Zulu 形式のタイムスタンプ(精度はナノ秒)。例: 2022-01-10T22:47:38.421626Z

変更リスクの推奨事項の表示

上記の使用モデルに加えて、Recommender サービスの標準的なアプローチを使用して、プロジェクト、サービス アカウント、IAM ポリシーの変更リスクに関する推奨事項と分析情報を表示できます。

  • Google Cloud コンソール
  • API
  • gcloud

Google Cloud コンソール

変更リスクに関する推奨事項と分析情報はプロダクト ページで確認できます。この推奨事項は、上記の権限がある限り、自動的に有効になります。

Active Assist は、重要なリソースを削除する危険を警告します。また、次のような状況で警告が表示された場合は、対処方法を示すことがあります。

gcloud と API

以降のセクションでは、gcloud と、プロジェクト、サービス アカウント、または IAM ポリシーの API を介して、変更リスクの推奨事項と分析情報をリクエストするコマンドについて説明します。

プロジェクト

どのユーザーも Google Cloud コンソール、gcloud、Recommender API から分析情報と推奨事項にアクセスできます。

gcloud

gcloud を使用して推奨事項と分析情報を確認する手順は次のとおりです。詳細については、API の使用 - 分析情報API の使用 - 推奨事項をご覧ください。

推奨事項:

Recommender API を有効にしたプロジェクトについて推奨事項を一覧表示するには、次のコマンドを実行します。

gcloud recommender recommendations list
--recommender=google.resourcemanager.project.ChangeRiskRecommender
--project=PROJECT_ID  --location=global --format=yaml

次のように置き換えます。

  • PROJECT_ID : プロジェクト ID。
分析情報:

同様のコマンドセットを使用して、分析情報を一覧表示できます。

gcloud recommender insights list
--insight-type=google.resourcemanager.project.ChangeRiskInsight
--project=PROJECT_ID  --location=global --format=yaml

次のように置き換えます。

  • PROJECT_ID : プロジェクト ID。

API

推奨事項と分析情報を表示するには、curl を使用して Recommender API にリクエストを送信します。

推奨事項

Recommender API を有効にしたプロジェクトについて推奨事項を一覧表示するには、次のコマンドを実行します。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/
recommenders/google.resourcemanager.project.ChangeRiskRecommender/recommendations"

次のように置き換えます。

  • BILLING_PROJECT_ID : 課金プロジェクト ID。
分析情報:

同様のコマンドセットを使用して、分析情報を一覧表示できます。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.resourcemanager.project.ChangeRiskInsight/insights"

次のように置き換えます。 * BILLING_PROJECT_ID : 課金プロジェクト ID。

サービス アカウント

どのユーザーも、サービス アカウントに関する分析情報と推奨事項に Google Cloud コンソール、gcloud、Recommender API からアクセスできます。

gcloud

gcloud を使用して推奨事項と分析情報を確認する手順は次のとおりです。詳細については、API の使用 - 分析情報API の使用 - 推奨事項をご覧ください。

推奨事項:

Recommender API を有効にしたサービス アカウントの推奨事項を一覧表示するには、次のコマンドを実行します。

gcloud recommender recommendations list
--recommender=google.iam.serviceAccount.ChangeRiskRecommender
--project=PROJECT_ID  --location=global --format=yaml

次のように置き換えます。

  • PROJECT_ID : プロジェクト ID。
分析情報:

同様のコマンドセットを使用して、分析情報を一覧表示できます。

gcloud recommender insights list
--insight-type=google.iam.serviceAccount.ChangeRiskInsight
--project=PROJECT_ID  --location=global --format=yaml

次のように置き換えます。 * PROJECT_ID : プロジェクト ID。

API

推奨事項と分析情報を表示するには、curl を使用して Recommender API にリクエストを送信します。

推奨事項:

Recommender API を有効にしたサービス アカウントの推奨事項を一覧表示するには、次のコマンドを実行します。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/
recommenders/google.iam.serviceAccount.ChangeRiskRecommender/recommendations"

次のように置き換えます。

  • PROJECT_ID : プロジェクト ID。
  • BILLING_PROJECT_ID : 課金プロジェクト ID。
分析情報:

同様のコマンドセットを使用して、分析情報を一覧表示できます。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.iam.serviceAccount.ChangeRiskInsight/insights"

次のように置き換えます。 * PROJECT_ID : プロジェクト ID。* BILLING_PROJECT_ID : 課金プロジェクト ID。

IAM ポリシー

どのユーザーも、IAM ポリシーに関する分析情報と推奨事項に Google Cloud コンソール、gcloud、Recommender API からアクセスできます。

gcloud

gcloud を使用して推奨事項と分析情報を確認する手順は次のとおりです。詳細については、API の使用 - 分析情報API の使用 - 推奨事項をご覧ください。

推奨事項:

Recommender API を有効にした IAM ポリシーの推奨事項を一覧表示するには、次のコマンドを実行します。

gcloud recommender recommendations list --recommender=google.iam.policy.ChangeRiskRecommender --project=PROJECT_ID  --location=global --format=yaml

次のように置き換えます。

  • PROJECT_ID : プロジェクト ID。
分析情報:

同様のコマンドセットを使用して、分析情報を一覧表示できます。

gcloud recommender insights list --insight-type=google.iam.policy.ChangeRiskInsight --project=PROJECT_ID  --location=global --format=yaml

次のように置き換えます。 * PROJECT_ID : プロジェクト ID。

API

推奨事項と分析情報を表示するには、curl を使用して Recommender API にリクエストを送信します。

推奨事項:

Recommender API を有効にした IAM ポリシーの推奨事項を一覧表示するには、次のコマンドを実行します。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/\recommenders/google.iam.policy.ChangeRiskRecommender/recommendations"

次のように置き換えます。

  • PROJECT_ID : プロジェクト ID。
分析情報:

同様のコマンドセットを使用して、分析情報を一覧表示できます。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.iam.policy.ChangeRiskInsight/insights"

次のように置き換えます。 * PROJECT_ID : プロジェクト ID。* BILLING_PROJECT_ID : 課金プロジェクト ID。

リスクの高い gcloud CLI による削除

gcloud CLI を使用してリソースを削除する場合は、アルファ版のトラックでオプションの非表示フラグ --recommend=yes を使用して、リスクが高い変更を中断できます。サポート対象でリスクの高い変更の例を推奨事項とともに以下に示します。リスク評価が表示されていない場合、変更はリスクではないとみなされています

プロジェクトの削除

次のコマンドは、プロジェクトを削除します。

  gcloud alpha projects delete PROJECT_ID  --recommend=yes

サポート対象でリスクの高い次の変更が推奨事項とともに表示されます。

  Shutting down this project will immediately:
    - Stop all traffic and billing.
    - Start deleting resources.
    - Schedule the final deletion of the project after 30 days.
    - Block your access to the project.
    - Notify the owner of the project.

  Learn more about the shutdown process at
  https://cloud.google.com/resource-manager/docs/creating-managing-projects#shutting_down_projects

  WARNING: If you shut down this project you risk losing data or interrupting your services. In the last 30 days we observed this project had:
    - It had significant usage, including 9942 API calls.
    - It contains at least 1 highly utilized service account.
    - It included at least 211 resources.

  We recommend verifying this is the correct project to shut down.

  View the full risk assessment at: https://console.cloud.google.com/home/recommendations/view-link/projects/123456/locations/global/recommenders/google.resourcemanager.project.ChangeRiskRecommender/recommendations/reco-id-0000-0000-000000000

  Do you want to continue (Y/n)?  n

サービス アカウントの削除

次のコマンドは、サービス アカウントを削除します。

  gcloud alpha iam service-accounts delete example@PROJECT_ID .iam.gserviceaccount.com --recommend=yes

サポート対象でリスクの高い次の変更が推奨事項とともに表示されます。

  You are about to delete service account [example@PROJECT_ID .iam.gserviceaccount.com]

  Deleting this service account (SA) will delete all associated key IDs, and will prevent the account from authenticating to any Google Cloud service API.

  You cannot restore or roll back this change easily. We highly recommend disabling the account first, testing for any unexpected impact, and only then deleting.

  WARNING: If you delete this SA you risk interrupting your service, as we observed it was substantially used in the last 90 days.

  We recommend verifying this is the correct account to delete.

  View the full risk assessment at: https://console.cloud.google.com/home/recommendations/view-link/projects/123456/locations/global/recommenders/google.iam.serviceAccount.ChangeRiskRecommender/recommendations/reco-id-0000-0000-000000000

  Do you want to continue (Y/n)?  n

次のエラーが表示された場合:

  ERROR: (gcloud.alpha.iam.service-accounts.delete) NOT_FOUND: Method not found.
  - '@type': type.googleapis.com/google.rpc.DebugInfo
    detail: 'Method ListInsights not found for service recommender.googleapis.com. Method not visible to labels: {PUBLIC}'

次のコマンドで、プロジェクト構成が、Alpha Recommender API の使用許可リストに登録されているプロジェクトに設定されていることを確認します。

  gcloud config set project PROJECT_ID

プロジェクト IAM ポリシー バインディングの削除

次のコマンドは、プロジェクトの IAM ポリシー バインディングを削除します。

  gcloud alpha projects remove-iam-policy-binding PROJECT_ID  --member=YOUR_EMAIL@DOMAIN.COM  --role=roles/owner --recommend=yes

サポート対象でリスクの高い次の変更が推奨事項とともに表示されます。

  You are about to delete the role [roles/owner].

  WARNING: If you remove the role [roles/owner], there is a high risk that you might cause interruptions because it was used in the last 90 days.

  We recommend you verify the details and replace them with less privileged roles, if necessary.

  View the full risk assessment at: https://console.cloud.google.com/home/recommendations/view-link/projects/123456/locations/global/recommenders/google.iam.policy.ChangeRiskRecommender/recommendations/reco-id-0000-0000-000000000

  Do you want to continue (Y/n)?  n

フィードバックとサポート

技術的な問題、質問、フィードバックについては、active-assist-feedback@google.com までメールでお問い合わせください。