조직 정책 권장사항 검토 및 적용

이 페이지에서는 조직 정책 권장사항을 보고, 이해하고, 적용하는 방법을 설명합니다. 조직 정책 권장사항을 사용하면 시스템을 중단하지 않고 올바른 조직 정책을 설정할 수 있습니다.

시작하기 전에

  • Enable the Organization Policy and Recommender APIs.

    Enable the APIs

  • 인증을 설정합니다.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.

  • 조직 정책 권장사항을 이해합니다.

필요한 IAM 역할

이 섹션에서는 조직 정책 권장사항을 사용하는 데 필요한 IAM 역할 및 권한에 대해 설명합니다.

조직 정책 권장사항을 관리하는 데 필요한 권한을 얻으려면 관리자에게 권장사항을 관리하려는 리소스(프로젝트, 폴더 또는 조직)에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 조직 정책 권장사항을 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

조직 정책 권장사항을 관리하려면 다음 권한이 필요합니다.

  • 조직 정책 권장사항을 보려면 다음 안내를 따르세요.
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
  • 조직 정책 권장사항을 적용하거나 닫으려면 다음 안내를 따르세요.
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
    • recommender.orgPolicyRecommendations.update
  • 조직 정책을 관리하려면 다음 단계를 따르세요.
    • orgpolicy.policy.get
    • orgpolicy.policy.set
    • orgpolicy.constraints.list
    • orgpolicy.policies.create
    • orgpolicy.policies.delete
    • orgpolicy.policies.list
    • orgpolicy.policies.update

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

제한사항

조직 정책 추천 도구의 미리보기에는 다음과 같은 제한사항이 있습니다.

  • 통계는 추천이 있는 프로젝트, 폴더, 조직에서만 사용할 수 있습니다.

  • 추천은 지정된 리소스 또는 하위 리소스에서 구성되지 않은 제약조건에 대해서만 제공됩니다.

지원되는 제약조건

권장사항은 다음 조직 정책 제약조건에 대해서만 사용할 수 있습니다.

권장사항 검토 및 적용하기

Google Cloud CLI 및 Recommender API를 사용하여 조직 정책 권장사항을 검토하고 적용할 수 있습니다.

gcloud

권장사항 검토:

권장사항을 나열하려면 gcloud recommender recommendations list 명령어를 실행합니다.

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.orgpolicy.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --filter="recommenderSubtype:RECOMMENDER_SUBTYPE" \
    --format=FORMAT

다음 값을 바꿉니다.

  • RESOURCE_TYPE: 권장사항을 나열할 리소스 유형입니다. project, folder, organization 값을 사용합니다.

  • RESOURCE_ID: 권장사항을 나열할 Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.

  • RECOMMENDER_SUBTYPE: 선택사항. 맞춤 콘텐츠를 보려는 하위유형의 ID입니다. 유효한 하위유형은 다음과 같습니다.

    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATIONiam.managed.disableServiceAccountKeyCreation 제약조건에 관한 권장사항을 제공합니다.
    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_UPLOADiam.managed.disableServiceAccountKeyUpload 제약 조건에 관한 추천을 제공합니다.
  • FORMAT: 응답 형식입니다. json 또는 yaml 값을 사용합니다.

응답은 다음 예시와 유사합니다. 이 예에서는 두 리소스의 외부 서비스 계정 키를 분석한 결과 위반사항이 감지되지 않았습니다. 따라서 향후 위반을 방지하기 위해 iam.managed.disableServiceAccountKeyCreation를 설정하는 것이 좋습니다.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

추천 구성요소에 대한 자세한 내용은 추천 이해하기를 참고하세요.

권장사항을 적용하려면 다음 안내를 따르세요.

  1. gcloud recommender recommendations mark-claimed 명령어를 사용하여 권장사항 상태를 CLAIMED로 변경하면 권장사항이 적용되는 동안 변경되지 않습니다.

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.orgpolicy.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    다음 값을 바꿉니다.

    • RECOMMENDATION_ID: 권장사항의 고유 식별자입니다. 이 값은 권장사항의 name 필드 끝에 표시됩니다. 위의 예시에서 식별자는 fb927dc1-9695-4436-0000-f0f285007c0f입니다.
    • RESOURCE_TYPE: 권장사항을 관리할 리소스 유형입니다. project, folder 또는 organization 값을 사용합니다.
    • RESOURCE_ID: 권장사항을 나열할 Google Cloud프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
    • FORMAT: 응답 형식입니다. json 또는 yaml 값을 사용합니다.
    • ETAG: 권장사항 버전의 식별자입니다(예: "7caf4103d7669e12"). 이 값에는 따옴표가 포함될 수 있습니다.
    • STATE_METADATA: 선택사항. 권장사항에 대한 메타데이터 선택사항이 포함된 쉼표로 구분된 키-값 쌍입니다. 예를 들면 --state-metadata=reviewedBy=alice,priority=high입니다. 메타데이터는 권장사항의 stateInfo.stateMetadata 필드를 대체합니다.

    명령어가 성공하면 다음 예시와 같이 응답은 권장사항을 CLAIMED 상태로 표시합니다. 명확하게 이해되도록 이 예시에서는 대부분의 필드를 생략합니다.

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {\
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    
  2. RESOURCE_TYPERESOURCE_ID로 지정된 프로젝트, 폴더 또는 조직의 조직 정책을 업데이트 및 적용하여 권장사항을 반영합니다.

  3. 권장사항을 적용할 수 있으면 권장사항 상태를 SUCCEEDED로, 권장사항을 적용할 수 없으면 FAILED로 업데이트합니다.

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    다음 값을 바꿉니다.

    • COMMAND: 권장사항을 적용할 수 있으면 mark-succeeded를, 권장사항을 적용할 수 없으면 mark-failed를 사용합니다.
    • RECOMMENDATION_ID: 권장사항의 고유 식별자입니다. 이 값은 권장사항의 name 필드 끝에 표시됩니다. 위의 예시에서 식별자는 fb927dc1-9695-4436-0000-f0f285007c0f입니다.
    • RESOURCE_TYPE: 권장사항을 관리할 리소스 유형입니다. project, folder 또는 organization 값을 사용합니다.
    • RESOURCE_ID: 권장사항을 나열할 Google Cloud프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
    • FORMAT: 응답 형식입니다. json 또는 yaml 값을 사용합니다.
    • ETAG: 권장사항 버전의 식별자입니다(예: "7caf4103d7669e12"). 이 값에는 따옴표가 포함될 수 있습니다.
    • STATE_METADATA: 선택사항. 권장사항에 대한 메타데이터 선택사항이 포함된 쉼표로 구분된 키-값 쌍입니다. 예를 들면 --state-metadata=reviewedBy=alice,priority=high입니다. 메타데이터는 권장사항의 stateInfo.stateMetadata 필드를 대체합니다.

    예를 들어 권장사항을 성공으로 표시하면 응답은 권장사항을 SUCCEEDED 상태로 표시합니다. 명확하게 이해되도록 이 예시에서는 대부분의 필드를 생략합니다.

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    

    조직 정책의 변경사항을 되돌리려면 조직 정책을 원래 구성으로 설정합니다. 원래 구성은 연결된 통계의 configuredPolicy 필드에 제공됩니다.

REST

권장사항 검토:

프로젝트, 폴더 또는 조직에 사용 가능한 모든 권장사항을 나열하려면 Recommender API의 recommendations.list 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • RESOURCE_TYPE: 권장사항을 관리할 리소스의 유형입니다. projects, folders, organizations 값을 사용합니다.
  • RESOURCE_ID: 권장사항을 관리할Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
  • PAGE_SIZE: 선택사항. 이 요청에서 반환할 최대 결과 수입니다. 지정하지 않으면 서버에서 반환할 결과 수를 결정합니다. 권장사항 수가 페이지 크기보다 크면 응답에 다음 결과 페이지를 검색하는 데 사용할 수 있는 페이지 나누기 토큰이 포함됩니다.
  • PAGE_TOKEN: 선택사항. 이 메서드의 이전 응답에서 반환된 페이지 나누기 토큰입니다. 지정하면 권장사항이 이전 요청이 끝나는 위치에서 시작됩니다.
  • FILTER: 선택사항. 반환되는 권장사항을 제한하는 필터 표현식입니다. stateInfo.state 필드를 기준으로 권장사항을 필터링할 수 있습니다. 예를 들면 stateInfo.state:"DISMISSED" 또는 stateInfo.state:"FAILED"입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다.

HTTP 메서드 및 URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답은 다음 예시와 유사합니다. 이 예에서는 두 리소스의 외부 서비스 계정 키를 분석한 결과 위반사항이 감지되지 않았습니다. 따라서 향후 위반을 방지하기 위해 iam.managed.disableServiceAccountKeyCreation를 설정하는 것이 좋습니다.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

추천 구성요소에 대한 자세한 내용은 추천 이해하기를 참고하세요.

권장사항을 적용하려면 다음 안내를 따르세요.

  1. 권장사항을 CLAIMED로 표시합니다.

    권장사항을 CLAIMED로 표시해서 적용 중에 변경되지 않도록 방지하려면 Recommender API의 recommendations.markClaimed 메서드를 사용합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • RESOURCE_TYPE: 권장사항을 관리할 리소스의 유형입니다. projects, folders, organizations 값을 사용합니다.
    • RESOURCE_ID: 권장사항을 관리할Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
    • RECOMMENDATION_ID: 권장사항의 고유 식별자. 이 값은 권장사항의 name 필드 끝에 표시됩니다. 예를 들어 name 필드가 projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f인 경우 권장사항 ID는 fb927dc1-9695-4436-0000-f0f285007c0f입니다.
    • ETAG: 권장사항의 etag 필드 값(예: "dd0686e7136a4cbb"). 백슬래시를 사용하여 따옴표를 이스케이프 처리합니다(예: "\"df7308cca9719dcc\"").
    • STATE_METADATA: 선택사항. 키-값 쌍이 포함된 객체로, 권장사항에 대한 메타데이터 선택사항이 포함되어 있습니다. 예를 들면 {"reviewedBy": "alice", "priority": "high"}입니다. 메타데이터는 권장사항의 stateInfo.stateMetadata 필드를 대체합니다.
    • PROJECT_ID: Google Cloud 프로젝트 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다.

    HTTP 메서드 및 URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    JSON 요청 본문:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음 예시와 같이 응답에 CLAIMED 상태의 권장사항이 표시됩니다. 명확하게 이해되도록 이 예시에서는 대부분의 필드를 생략합니다.

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

  2. 권장사항이 반영되도록 RESOURCE_TYPERESOURCE_ID로 지정된 프로젝트, 폴더 또는 조직의 조직 정책을 업데이트합니다.

  3. 권장사항을 적용할 수 있으면 권장사항 상태를 SUCCEEDED로, 권장사항을 적용할 수 없으면 FAILED로 업데이트합니다.

    SUCCEEDED

    권장사항을 SUCCEEDED로 표시해서 적용할 수 있음을 나타내려면 Recommender API의 recommendations.markSucceeded 메서드를 사용합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • RESOURCE_TYPE: 권장사항을 관리할 리소스의 유형입니다. projects, folders, organizations 값을 사용합니다.
    • RESOURCE_ID: 권장사항을 관리할Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
    • RECOMMENDATION_ID: 권장사항의 고유 식별자. 이 값은 권장사항의 name 필드 끝에 표시됩니다. 예를 들어 name 필드가 projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f인 경우 권장사항 ID는 fb927dc1-9695-4436-0000-f0f285007c0f입니다.
    • ETAG: 권장사항의 etag 필드 값(예: "dd0686e7136a4cbb"). 백슬래시를 사용하여 따옴표를 이스케이프 처리합니다(예: "\"df7308cca9719dcc\"").
    • STATE_METADATA: 선택사항. 키-값 쌍이 포함된 객체로, 권장사항에 대한 메타데이터 선택사항이 포함되어 있습니다. 예를 들면 {"reviewedBy": "alice", "priority": "high"}입니다. 메타데이터는 권장사항의 stateInfo.stateMetadata 필드를 대체합니다.
    • PROJECT_ID: Google Cloud 프로젝트 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다.

    HTTP 메서드 및 URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    JSON 요청 본문:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음 예시와 같이 응답에 SUCCEEDED 상태의 권장사항이 표시됩니다. 명확하게 이해되도록 이 예시에서는 대부분의 필드를 생략합니다.

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

    FAILED

    권장사항을 FAILED로 표시해서 적용할 수 없음을 나타내려면 Recommender API의 recommendations.markFailed 메서드를 사용합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • RESOURCE_TYPE: 권장사항을 관리할 리소스의 유형입니다. projects, folders, organizations 값을 사용합니다.
    • RESOURCE_ID: 권장사항을 관리할Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
    • RECOMMENDATION_ID: 권장사항의 고유 식별자. 이 값은 권장사항의 name 필드 끝에 표시됩니다. 예를 들어 name 필드가 projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f인 경우 권장사항 ID는 fb927dc1-9695-4436-0000-f0f285007c0f입니다.
    • ETAG: 권장사항의 etag 필드 값(예: "dd0686e7136a4cbb"). 백슬래시를 사용하여 따옴표를 이스케이프 처리합니다(예: "\"df7308cca9719dcc\"").
    • STATE_METADATA: 선택사항. 키-값 쌍이 포함된 객체로, 권장사항에 대한 메타데이터 선택사항이 포함되어 있습니다. 예를 들면 {"reviewedBy": "alice", "priority": "high"}입니다. 메타데이터는 권장사항의 stateInfo.stateMetadata 필드를 대체합니다.
    • PROJECT_ID: Google Cloud 프로젝트 ID입니다. 프로젝트 ID는 my-project와 같은 영숫자 문자열입니다.

    HTTP 메서드 및 URL:

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    JSON 요청 본문:

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음 예시와 같이 응답에 FAILED 상태의 권장사항이 표시됩니다. 명확하게 이해되도록 이 예시에서는 대부분의 필드를 생략합니다.

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

맞춤 콘텐츠 이해하기

각 권장사항에는 권장사항이 제공된 이유를 설명하는 정보와 조직 정책 구성 변경에 관한 제안이 포함됩니다. 핵심 속성은 다음과 같습니다.

  • description: 사람이 읽을 수 있는 권장사항 요약입니다.

  • recommenderSubtype: 맞춤 콘텐츠의 하위유형 식별자입니다. 각 제약 조건에는 고유한 recommenderSubtype가 있습니다.

  • content: 조직 정책에 대한 권장 변경사항이 포함됩니다.

    • overview: 추천에 관한 간단한 개요 정보입니다.

    • constraint: 제약조건에 관한 정보를 제공합니다.

    • enforced_resources: 추천을 적용할 때 이 조직 정책이 영향을 미치는 리소스에 관한 정보를 제공합니다.

    • operationGroups: 권장사항을 적용할 때 조직 정책에 대한 하나 이상의 작업 집합입니다.

  • associatedInsights: 이 추천으로 이어진 통계의 리소스 이름입니다.

맞춤 콘텐츠의 속성에 관한 자세한 내용은 맞춤 콘텐츠 참조를 참고하세요.

지원되는 조직 정책 중 하나가 설정되지 않은 리소스 또는 하위 리소스에 관한 통계 및 권장사항이 생성됩니다. 이 권장사항에 따른 조직 정책 구성을 보려면 권장사항과 연결된 조직 정책 통계를 참고하세요. 이러한 통계는 associatedInsights 필드에 나열됩니다. 권장사항과 연결된 조직 정책 통계를 보려면 다음 안내를 따르세요.

  1. associatedInsights 필드에서 어떤 통계가 조직 정책 통계인지 파악합니다. 조직 정책 통계의 통계 유형은 google.orgpolicy.policy.Insight입니다. 유형은 insight 필드의 insightTypes 다음에 표시됩니다.

  2. 조직 정책 통계의 ID를 복사합니다. ID는 insight 필드에서 insights/ 다음에 오는 모든 문자입니다. 예를 들어 통계 필드가 projects/123456789012/locations/us/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f로 표시되는 경우 통계 ID는 fb927dc1-9695-4436-0000-f0f285007c0f입니다.

  3. 안내에 따라 복사한 통계 ID를 사용하여 조직 정책 통계를 가져옵니다.

BigQuery에 권장사항 내보내기

조직 정책 권장사항을 포함하여 조직의 모든 권장사항에 대한 일일 스냅샷을 보려면 권장사항을 BigQuery로 내보낼 수 있습니다.

권장사항을 BigQuery로 내보내려면 BigQuery Data Transfer Service를 사용하여 데이터 전송을 설정해야 합니다. 데이터 전송을 설정하는 방법을 알아보려면 BigQuery에 권장사항 내보내기를 참조하세요.

다음 단계