変更リスクの推奨事項
変更リスクの推奨事項は、最も重要なリソースに対するリスクの高い変更をインテリジェントにフラグ付けし、問題を防止および軽減するための推奨事項を提供することで、クラウド インフラストラクチャの構成ミスのリスクを軽減します。
はじめに
構成ミスはクラウド インシデントの一般的な原因です。人的エラーや予期しないワークロードの変更によって発生し、パフォーマンスの問題、信頼性の問題、さらにはサービス停止など、さまざまな問題につながる可能性があります。多くの構成ミスは、初めは気づきにくいため、追跡や解決が難しくなります。
変更リスクの推奨事項は、Recommender サービスの Active Assist の推奨事項と分析情報の新しいファミリーです。変更リスクの推奨事項は、使用状況やその他のシグナルに基づいて重要と識別されたクラウド リソースに対するリスクの高い変更を自動的に報告します。これは、重要なクラウド リソースの構成ミスによって引き起こされる問題(サービス停止など)の防止、検出、軽減に役立ちます。たとえば、頻繁に使用するプロジェクトを削除しようとしたり、最近の利用状況に基づいて重要な依存関係のある IAM ポリシーを変更しようとすると、変更リスクの推奨事項により、その変更に関連するリスクが事前に警告されます。これにより、意図しない問題の発生を防ぐことができます。
変更リスクの推奨事項の対象範囲
現在、変更リスクの推奨事項は、以下の表に示すリソースとアクションでのみサポートされています。
リソース | アクション | 対象 | リソースの重要度を決定する条件 |
---|---|---|---|
プロジェクト | 削除 |
|
|
サービス アカウント | 削除 |
|
|
IAM ポリシー | 変更 |
|
|
始める前に
この機能を使用する前に、サービスを設定する必要があります。
- 単一の課金プロジェクトで Recommender API を有効にします。gcloud / API の請求プロジェクト機能により、この請求プロジェクトを使用して、他のプロジェクト、組織全体、または請求先アカウントの推奨事項と分析情報を取得できます。
- この機能へのアクセスに使用する権限をユーザーまたはサービス アカウントに付与します。
権限
変更リスクの推奨事項を表示するには、特定のリソースに対する特定の権限が必要です。
プロジェクト
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 までメールでお問い合わせください。