프로젝트, 폴더, 조직에 대한 역할 추천 검토 및 적용

이 페이지에서는 프로젝트, 폴더, 조직에 대한 역할 추천을 보고, 이해하고, 적용하는 방법을 설명합니다. 역할 권장사항은 주 구성원에게 실제로 필요한 권한만 부여하여 최소 권한의 원칙을 적용하는 데 도움이 됩니다.

시작하기 전에

필요한 IAM 역할

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

추천 보기

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

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

이러한 사전 정의된 역할에는 역할 권장사항을 확인하는 데 필요한 권한이 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

역할 권장사항을 보려면 다음 권한이 필요합니다.

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list
  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • Google Cloud 콘솔에서 권장사항을 보려면 resourcemanager.RESOURCE.getIamPolicy. 여기서 RESOURCE는 권장사항을 보려는 리소스 유형입니다(projects, folders, organizations).

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

권장사항 적용 및 닫기

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

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

이러한 사전 정의된 역할에는 역할 권장사항을 보고, 적용하고, 닫는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

역할 권장사항을 보고, 적용하고 닫으려면 다음 권한이 필요합니다.

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyInsights.get
  • recommender.iamPolicyInsights.list
  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • recommender.iamPolicyRecommendations.update
  • resourcemanager.RESOURCE.getIamPolicy: 여기서 RESOURCE는 권장사항을 관리하려는 리소스 유형입니다(projects, folders 또는 organizations).
  • resourcemanager.RESOURCE.setIamPolicy: 여기서 RESOURCE는 권장사항을 관리하려는 리소스 유형입니다(projects, folders 또는 organizations).

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

권장사항 검토 및 적용하기

권장사항을 검토하고 적용하는 가장 간편한 방법은 Google Cloud 콘솔을 사용하는 것입니다. 또한 권장사항을 적용할 때 커스텀 역할을 자동으로 만들려면 Google Cloud 콘솔을 사용해야 합니다.

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

콘솔

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 프로젝트, 폴더, 조직을 선택합니다.

  3. 프로젝트에 액세스할 수 있는 주 구성원 목록에서 보안 통계 열을 찾습니다.

    주 구성원에 부여된 각 역할에 대해 이 열에 모든 보안 관련 통계가 표시됩니다. 이러한 통계는 주 구성원이 리소스에 액세스하는 패턴을 강조표시합니다. 예를 들어 일부 통계는 과도한 권한 또는 주 구성원에게 필요하지 않은 권한을 강조표시합니다. 다른 통계는 측면 이동 기능이 있는 서비스 계정을 강조표시합니다.

    통계 관련 권장사항이 있으면 Google Cloud 콘솔에 권장사항 사용 가능 아이콘이 표시됩니다.

  4. 검토할 권장사항이 있으면 권장사항 사용 가능 아이콘을 클릭하여 권장사항에 대한 세부정보를 확인합니다.

    역할을 대체하는 것이 권장되는 경우 역할 권장사항은 적용할 수 있는 사전 정의된 역할 집합을 항상 추천합니다.

    경우에 따라 역할 권장사항은 프로젝트 수준에서 새 커스텀 역할을 만들 것을 추천하기도 합니다. 커스텀 역할 권장사항이 있으면 Google Cloud 콘솔에 기본적으로 표시됩니다. 사전 정의된 역할 권장사항으로 전환하려면 권장된 사전 정의된 역할 보기를 클릭합니다.

  5. 권장사항을 신중하게 검토하고 Google Cloud 리소스에 대한 주 구성원의 액세스 권한을 어떻게 변경하는지 파악해야 합니다. 서비스 에이전트에 대한 권장사항의 경우를 제외하면, 권장사항으로 인해 주 구성원의 액세스 수준이 높아지는 일은 없습니다. 자세한 내용은 역할 권장사항 생성 방법을 참조하세요.

    콘솔에서 권장사항을 검토하는 방법은 이 페이지에서 권장사항 검토를 참조하세요.

  6. 선택사항: 커스텀 역할을 만드는 것이 권장되면 커스텀 역할을 만들고 제목, 설명, ID, 역할 실행 단계를 필요에 따라 업데이트합니다.

    커스텀 역할에 권한을 추가해야 하면 권한 추가를 클릭합니다.

    커스텀 역할에서 권한을 삭제해야 하면 삭제할 각 권한의 체크박스를 선택 취소합니다.

  7. 권장사항에 따라 조치를 취합니다.

    권장사항을 적용하려면 적용 또는 만들기 및 적용을 클릭합니다. 다음 90일 이내에 선택사항을 변경하려면 권장사항 기록을 사용하여 선택사항을 되돌립니다.

    권장사항을 닫으려면 닫기를 클릭한 후 선택사항을 확인합니다. 권장사항이 여전히 유효하면 닫은 권장사항을 복원할 수도 있습니다.

  8. 모든 권장사항을 검토할 때까지 이전 단계를 반복합니다.

gcloud

권장사항 검토:

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

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.iam.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --format=json

다음 값을 바꿉니다.

  • RESOURCE_TYPE: 권장사항을 나열할 리소스 유형입니다. project, folder, organization 값을 사용합니다.
  • RESOURCE_ID: 권장사항을 나열할 Google Cloud 프로젝트, 폴더 또는 조직의 ID입니다. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.

응답은 다음 예시와 유사합니다. 이 예시에서 서비스 계정은 지난 90일 동안 Compute 관리자 역할(roles/compute.admin)의 권한을 사용하지 않았습니다. 따라서 역할 권장사항은 역할을 취소할 것을 제안합니다.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "description": "This role has not been used during the observation window.",
    "recommenderSubtype": "REMOVE_ROLE",
    "etag": "\"770237e2c0decf40\"",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 708
        }
      }
    },
    "priority": "P4",
    "stateInfo": {
      "state": "ACTIVE"
    }
  }
]

각 권장사항을 신중하게 검토하고 주 구성원의 Google Cloud 리소스에 대한 액세스 권한을 변경하는 방법을 고려합니다. gcloud CLI에서 권장사항을 검토하는 방법은 이 페이지의 권장사항 검토를 참조하세요.

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

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

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

    다음 값을 바꿉니다.

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

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

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"df7308cca9719dcc\"",
        "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]
  2. 프로젝트에 대해 허용 정책을 가져오고 권장사항이 반영되도록 허용 정책을 수정하고 설정합니다.

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

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

    [
      {
        "description": "This role has not been used during the observation window.",
        "recommenderSubtype": "REMOVE_ROLE",
        "etag": "\"dd0686e7136a4cbb\"",
        "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        }
      }
    ]

REST

이 안내에서는 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 인증 및 설정했다고 가정합니다.

권장사항 검토:

프로젝트, 폴더 또는 조직에 사용 가능한 모든 권장사항을 나열하려면 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.iam.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

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

응답은 다음 예시와 유사합니다. 이 예시에서 example-project 프로젝트의 서비스 계정은 지난 90일 동안 Compute 관리자 역할(roles/compute.admin)의 권한을 사용하지 않았습니다. 따라서 추천자는 다음 역할을 취소할 것을 제안합니다.

{
  "recommendations": [
    "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "description": "This role has not been used during the observation window.",
    "lastRefreshTime": "2020-01-09T06:06:17Z",
    "primaryImpact": {
      "category": "SECURITY",
      "securityProjection": {
        "details": {
          "revokedIamPermissionsCount": 708
        }
      }
    },
    "priority": "P4",
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "remove",
              "path": "/iamPolicy/bindings/*/members/*",
              "pathFilter": {
                "/iamPolicy/bindings/*/condition/expression": "",
                "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
                "/iamPolicy/bindings/*/role": "roles/compute.admin"
              },
              "resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
              "resourceType": "cloudresourcemanager.googleapis.com/Project"
            }
          ]
        }
      ]
    },
    "stateInfo": {
      "state": "ACTIVE"
    }
    "etag": "\"770237e2c0decf40\"",
    "recommenderSubtype": "REMOVE_ROLE",
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
      }
  ]
}

각 권장사항을 신중하게 검토하고 주 구성원의 Google Cloud 리소스에 대한 액세스 권한을 변경하는 방법을 고려합니다. REST API에서 권장사항을 검토하는 방법은 이 페이지에서 권장사항 검토를 참조하세요.

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

  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.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    JSON 요청 본문:

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

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

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

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

  2. 프로젝트에 대해 허용 정책을 가져오고 권장사항이 반영되도록 허용 규칙을 수정합니다.

  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.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    JSON 요청 본문:

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

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

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

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

    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.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    JSON 요청 본문:

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

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

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

    {
      "description": "This role has not been used during the observation window.",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "etag": "\"dd0686e7136a4cbb\"",
      "recommenderSubtype": "REMOVE_ROLE"
    }
    

권장사항 이해

각 권장사항에는 권장사항이 제공된 이유를 설명하는 정보가 포함됩니다.

콘솔

권장사항이 제공된 이유를 이해할 수 있도록 Google Cloud 콘솔에는 권장사항과 연관된 정책 통계에서 보고된 대로 주 구성원의 권한 사용을 표시됩니다. 예를 들어 다음과 같은 목록이 표시될 수 있습니다.

또한 권장사항을 적용할 때의 영향을 이해할 수 있도록 Google Cloud 콘솔에 색상 및 기호로 구분된 권한 목록이 표시됩니다. 이 목록은 권장사항을 적용할 때 주 구성원의 권한이 어떻게 변경되는지를 나타냅니다. 예를 들어 다음과 같은 목록이 표시될 수 있습니다.

각 색상 및 기호와 관련된 권한 유형은 다음과 같습니다.

  • 기호가 없는 회색: 주 구성원의 현재 역할과 권장 역할에 모두 포함되어 있는 권한입니다.

  • 마이너스 기호가 있는 빨간색: 주 구성원의 현재 역할에는 있지만 주 구성원이 지난 90일 동안 사용하지 않았기 때문에 권장 역할에 없는 권한입니다.

  • 더하기 기호가 있는 녹색: 주 구성원의 현재 역할에 속하지 않지만 권장되는 역할에 있는 권한입니다. 이 유형의 권한은 서비스 에이전트에 대한 권장사항에만 표시됩니다.

  • 파란색 머신러닝 아이콘: 주 구성원의 현재 역할과 권장 역할에 모두 포함되어 있는 권한입니다. 이는 주 구성원이 지난 90일 동안 권한을 사용한 적이 있기 때문이 아니라, 추천자가 머신러닝을 통해 향후 이러한 권한이 필요하다고 판단했기 때문입니다.

일부 권장사항은 측면 이동 통계와도 연결됩니다. 측면 이동 통계는 한 프로젝트의 서비스 계정이 다른 프로젝트의 서비스 계정을 가장하도록 허용하는 역할을 식별합니다. 또한 권장사항이 측면 이동 통계와 연관된 경우 Google Cloud 콘솔에 다음이 표시됩니다.

  • 서비스 계정의 원래 프로젝트: 가장 권한이 있는 서비스 계정이 생성된 프로젝트입니다.

  • 이 프로젝트에서 가장될 수 있는 서비스 계정: 현재 프로젝트에서 가장 권한이 있는 서비스 계정이 가장할 수 있는 모든 서비스 계정의 목록입니다.

gcloud

권장사항 필드에 대한 자세한 내용은 Recommendation 참조를 확인하세요.

이 권장사항에 따른 권한 사용을 보려면 권장사항과 연결된 정책 통계를 참조하세요. 이러한 통계는 associatedInsights 필드에 나열됩니다. 권장사항과 연결된 정책 통계를 보려면 다음 안내를 따르세요.

  • associatedInsights 필드에서 어떤 통계가 정책 통계인지 파악합니다. 정책 통계의 통계 유형은 google.iam.policy.insight입니다. 유형은 insight 필드의 insightTypes 다음에 표시됩니다.
  • 정책 통계의 ID를 복사합니다. ID는 insight 필드에서 insights/ 다음에 오는 모든 문자입니다. 앞의 예시에서 통계 ID는 279ef748-408f-44db-9a4a-1ff8865b9839입니다.
  • 안내에 따라 복사한 통계 ID를 사용하여 정책 통계를 가져옵니다.

일부 권장사항은 또한 한 프로젝트의 서비스 계정이 다른 프로젝트의 서비스 계정을 가장할 수 있게 해주는 역할을 식별하는 측면 이동 통계와 연결되어 있습니다. 이러한 통계는 associatedInsights 필드에 나열됩니다. 권장사항과 연결된 측면 이동 통계를 보려면 다음 안내를 따르세요.

  • associatedInsights 필드에서 어떤 통계가 측면 이동 통계인지 파악합니다. 측면 이동 통계의 통계 유형은 google.iam.policy.LateralMovementInsight입니다. 유형은 insight 필드의 insightTypes 다음에 표시됩니다.
  • 정책 통계의 ID를 복사합니다. ID는 insight 필드에서 insights/ 다음에 오는 모든 문자입니다. 앞의 예시에서 통계 ID는 279ef748-408f-44db-9a4a-1ff8865b9839입니다.
  • 안내에 따라 복사한 통계 ID를 사용하여 측면 이동 통계를 가져옵니다.

REST

권장사항 필드에 대한 자세한 내용은 Recommendation 참조를 확인하세요.

이 권장사항에 따른 권한 사용을 보려면 권장사항과 연결된 정책 통계를 참조하세요. 이러한 통계는 associatedInsights 필드에 나열됩니다. 권장사항과 연결된 정책 통계를 보려면 다음 안내를 따르세요.

  1. associatedInsights 필드에서 어떤 통계가 정책 통계인지 파악합니다. 정책 통계의 통계 유형은 google.iam.policy.insight입니다. 유형은 insight 필드의 insightTypes 다음에 표시됩니다.
  2. 정책 통계의 ID를 복사합니다. ID는 insight 필드에서 insights/ 다음에 오는 모든 문자입니다. 예를 들어 insight 필드가 projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839로 표시되는 경우 통계 ID는 279ef748-408f-44db-9a4a-1ff8865b9839입니다.
  3. 안내에 따라 복사한 통계 ID를 사용하여 정책 통계를 가져옵니다.

일부 권장사항은 또한 한 프로젝트의 서비스 계정이 다른 프로젝트의 서비스 계정을 가장할 수 있게 해주는 역할을 식별하는 측면 이동 통계와 연결되어 있습니다. 이러한 통계는 associatedInsights 필드에 나열됩니다. 권장사항과 연결된 측면 이동 통계를 보려면 다음 안내를 따르세요.

  1. associatedInsights 필드에서 어떤 통계가 측면 이동 통계인지 파악합니다. 측면 이동 통계의 통계 유형은 google.iam.policy.LateralMovementInsight입니다. 유형은 insight 필드의 insightTypes 다음에 표시됩니다.
  2. 정책 통계의 ID를 복사합니다. ID는 insight 필드에서 insights/ 다음에 오는 모든 문자입니다. 예를 들어 insight 필드가 projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860으로 표시되는 경우 통계 ID는 13088eec-9573-415f-81a7-46e1a260e860입니다.
  3. 안내에 따라 복사한 통계 ID를 사용하여 측면 이동 통계를 가져옵니다.

변경사항 보기, 되돌리기, 복원

프로젝트 수준 역할 바인딩의 권장사항을 적용하거나 닫으면 해당 작업이 권장사항 기록에 표시됩니다.

권장사항 기록을 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 프로젝트, 폴더, 조직을 선택합니다.

  3. 화면 상단에서 권장사항 기록을 클릭합니다.

    Google Cloud 콘솔에는 역할 권장사항에 대한 이전 작업 목록이 표시됩니다.

  4. 권장사항에 대한 세부정보를 보려면 확장 화살표를 클릭합니다.

    Google Cloud 콘솔에는 작업을 수행한 주 구성원을 비롯하여 수행한 작업에 대한 세부정보가 표시됩니다.

  5. (선택사항) 필요한 경우 권장사항의 변경사항을 실행취소하거나 닫은 권장사항을 복원하여 권장사항을 되돌릴 수 있습니다.

    이전에 권장사항에 적용된 변경사항을 되돌리려면 되돌리기를 클릭합니다. Google Cloud 콘솔은 주 구성원의 역할에 대한 변경사항을 되돌립니다. Google Cloud 콘솔에 더 이상 권장사항이 표시되지 않습니다.

    닫은 권장사항을 복원하려면 복원을 클릭합니다. 권장사항은 Google Cloud 콘솔의 IAM 페이지에 표시됩니다. 역할 또는 권한은 변경되지 않습니다.

다음 단계