변경 위험 권장사항

변경 위험 권장사항은 가장 중요한 리소스에 대해 일반적으로 위험한 변경사항을 지능적으로 플래그 지정하고 문제 방지 및 해결을 위한 권장사항을 제공함으로써 잘못된 클라우드 인프라 구성으로 인한 위험을 줄이는 데 도움을 줍니다.

소개

잘못된 구성은 클라우드 사고의 일반적인 원인입니다. 잘못된 구성은 작업자의 실수 또는 예기치 않은 워크로드 변경으로 인해 발생할 수 있으며, 성능 문제, 안정성 문제, 심지어 서비스 중단을 포함한 다양한 문제로 이어질 수 있습니다. 많은 잘못된 구성이 초기에 인지되지 못함으로 인해 추적 및 해결이 어려워질 수 있습니다.

변경 위험 권장사항추천자 서비스 내에서 새롭게 제공되는 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 이 리소스가 중요하다고 판단한 이유의 목록을 포함합니다. 예를 들면, 높은 사용량이 있습니다.
risk object 위험 평가 세부정보를 포함합니다. 예를 들어 리소스 사용량 활동 값은 중요도를 결정하는 데 사용됩니다.
updateTime string 권장사항이 업데이트된 마지막 시간의 타임스탬프입니다. RFC 3339 UTC Zulu 형식의 타임스탬프로 정밀도는 나노초 수준입니다. 예: 2022-01-10T22:47:38.421626Z

변경 위험 권장사항 보기

위에서 설명하는 사용량 모델 외에도 추천자 서비스의 표준 접근 방식을 사용해서 프로젝트, 서비스 계정, IAM 정책에 대한 변경 위험 권장사항 및 인사이트를 보고 변경할 수 있습니다.

  • Google Cloud 콘솔
  • API
  • gcloud

Google Cloud 콘솔

제품 페이지 자체에서 변경 위험 권장사항 및 인사이트를 확인할 수 있습니다. 위에 나열된 권한이 있으면 권장사항이 자동으로 활성화됩니다.

Active Assist는 중요 리소스 삭제로 인한 위험을 경고하고 다음과 같은 상황에서 경고가 표시되었을 때 수행할 작업을 알려줍니다.

gcloud 및 API

다음 섹션에서는 프로젝트, 서비스 계정 또는 IAM 정책에 대해 gcloud 및 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을 사용하여 추천자 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을 사용하여 추천자 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을 사용하여 추천자 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를 통해 리소스를 삭제할 때는 ALPHA 트랙에서 선택적인 숨겨진 플래그 --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으로 이메일을 보내주세요.