측면 이동 권한이 있는 서비스 계정 찾기

이 페이지에서는 측면 이동 통계를 관리하는 방법을 보여줍니다. 이 통계는 한 프로젝트의 서비스 계정이 다른 프로젝트의 서비스 계정을 가장하도록 허용하는 역할을 식별합니다. 측면 이동 통계에 대한 자세한 내용은 측면 이동 통계 생성 방법을 참조하세요.

측면 이동 통계는 경우에 따라 역할 권장사항과 연결됩니다. 역할 권장사항은 측면 이동 통계로 식별된 문제를 해결하기 위해 수행할 수 있는 작업을 추천합니다.

시작하기 전에

필요한 역할

측면 이동 통계를 관리하는 데 필요한 권한을 얻으려면 관리자에게 통계를 관리할 프로젝트, 폴더 또는 조직에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 측면 이동 통계를 관리하는 데 필요한 권한이 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.

필수 권한

측면 이동 통계를 관리하려면 다음 권한이 필요합니다.

  • 측면 이동 통계 보기:
    • recommender.iamPolicyLateralMovementInsights.get
    • recommender.iamPolicyLateralMovementInsights.list
  • 측면 이동 통계 수정: recommender.iamPolicyLateralMovementInsights.update

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

측면 이동 통계 나열

프로젝트, 폴더 또는 조직의 모든 측면 이동 통계를 나열하려면 다음 메서드 중 하나를 사용합니다.

콘솔

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

    IAM으로 이동

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

보안 통계 열에는 측면 이동 통계를 포함한 프로젝트의 모든 보안 관련 통계가 표시됩니다. 측면 이동 통계의 형식은 N service account impersonations입니다. 여기서 N은 역할 바인딩의 서비스 계정이 가장할 수 있는 서비스 계정 수입니다.

gcloud

gcloud recommender insights list 명령어를 사용하여 프로젝트, 폴더 또는 조직의 모든 측면 이동 통계를 봅니다.

명령어를 실행하기 전에 다음 값을 바꿉니다.

  • RESOURCE_TYPE: 통계를 나열할 리소스 유형입니다. project, folder 또는 organization 값을 사용하세요.
  • RESOURCE_ID: 통계를 나열할 프로젝트, 폴더, 또는 조직의 ID입니다.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

출력에는 프로젝트, 폴더 또는 조직의 모든 측면 이동 통계가 나열됩니다. 예를 들면 다음과 같습니다.

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE              DESCRIPTION
046f8b89-bcee-46cd-9ac4-06818ed5273a  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
1328df82-5af2-4493-9850-d8ede4e72b27  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-2@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
17f50957-333c-4f21-86c1-6a62216b309e  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-3@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
187200d2-b42c-48fb-86d7-c2746a87fed2  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-4@another-project.iam.gserviceaccount.com from another project can impersonate 32 service account(s) under this project.
1f1740a4-ff98-4f64-99a4-5ef5df5a2097  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-5@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.

REST

Recommender API의 insights.list 메서드는 프로젝트, 폴더, 조직에 대한 모든 측면 이동 통계를 나열합니다.

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

  • RESOURCE_TYPE: 통계를 나열할 리소스 유형입니다. projects, folders 또는 organizations 값을 사용하세요.
  • RESOURCE_ID: 통계를 나열할 프로젝트, 폴더, 또는 조직의 ID입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.

HTTP 메서드 및 URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights

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

응답에 프로젝트, 폴더 또는 조직의 모든 측면 이동 통계가 나열됩니다. 예를 들면 다음과 같습니다.

{
  "insights": [
    {
      "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
      "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
      "content": {
        "impersonator": {
          "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com",
          "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
          "isGoogleManaged": false
        },
        "targetServiceAccounts": [
          "target-service-account-1@this-project.iam.gserviceaccount.com",
          "target-service-account-2@this-project.iam.gserviceaccount.com"
        ],
        "impersonationPolicy": {
          "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
          "role": "roles/editor",
          "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com",
          "condition": {
            "expression": "",
            "title": "",
            "description": "",
            "location": ""
          }
        },
        "impersonationPermissionUsage": [
          {
            "permission": "iam.serviceAccounts.actAs"
            "used": false
          }
        ],
        "hasPermissionUsageData": true
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "7776000s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
        }
      ],
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ],
      "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
      "etag": "\"f48fa6a1b15c7741\"",
      "severity": "LOW"
    }
  ]
}

통계 구성요소에 대한 자세한 내용은 이 페이지의 측면 이동 통계 검토를 참조하세요.

단일 측면 이동 통계 가져오기

통계 설명, 상태, 관련 권장사항을 포함하여 단일 통계에 대한 자세한 내용을 보려면 다음 메서드 중 하나를 사용하세요.

콘솔

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

    IAM으로 이동

  2. 프로젝트, 폴더, 조직을 선택합니다.
  3. 보안 통계 열에서 측면 이동 통계를 클릭합니다. 측면 이동 통계의 형식은 N service account impersonations입니다. 여기서 N은 역할 바인딩의 서비스 계정이 가장할 수 있는 서비스 계정 수입니다.

Google Cloud 콘솔에서 통계 세부정보가 표시된 창이 열립니다.

gcloud

통계 ID와 함께 gcloud recommender insights describe 명령어를 사용하여 단일 통계에 대한 정보를 확인합니다.

  • INSIGHT_ID: 보려는 통계의 ID입니다. ID를 찾으려면 프로젝트, 폴더, 또는 조직의 통계를 나열하세요.
  • RESOURCE_TYPE: 통계를 관리할 리소스 유형입니다. project, folder 또는 organization 값을 사용하세요.
  • RESOURCE_ID: 통계를 관리하려는 프로젝트, 폴더, 또는 조직의 ID입니다.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

출력에 통계가 자세히 표시됩니다. 예를 들어 다음 통계는 123456789012 프로젝트의 IAM 정책에서 sa-1@another-project.iam.gserviceaccount.comtarget-service-account-1@this-project.iam.gserviceaccount.comtarget-service-account-2@this-project.iam.gserviceaccount.com을 가장하도록 허용함을 나타냅니다.

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f
category: SECURITY
content:
  hasPermissionUsageData: true
  impersonationPermissionUsage:
  - permission: iam.serviceAccounts.actAs
    used: false
  impersonationPolicy:
    condition:
      description: ''
      expression: ''
      location: ''
      title: ''
    member: serviceAccount:sa-1@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: sa-1@another-project.iam.gserviceaccount.com
    serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098
  targetServiceAccounts:
  - target-service-account-1@this-project.iam.gserviceaccount.com
  - target-service-account-2@this-project.iam.gserviceaccount.com
description: Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

통계 구성요소에 대한 자세한 내용은 이 페이지의 측면 이동 통계 검토를 참조하세요.

REST

Recommender API의 insights.get 메서드는 단일 통계를 가져옵니다.

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

  • RESOURCE_TYPE: 통계를 관리할 리소스 유형입니다. projects, folders 또는 organizations 값을 사용하세요.
  • RESOURCE_ID: 통계를 관리하려는 프로젝트, 폴더, 또는 조직의 ID입니다.
  • INSIGHT_ID: 보려는 통계의 ID입니다. 통계 ID를 모르는 경우 프로젝트, 폴더, 또는 조직에서 통계를 나열하여 찾을 수 있습니다. 통계 ID는 통계의 name 필드에서 insights/ 다음에 오는 모든 문자입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.

HTTP 메서드 및 URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

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

응답에 통계가 포함됩니다. 예를 들어 다음 통계는 123456789012 프로젝트의 IAM 정책에서 sa-1@another-project.iam.gserviceaccount.comtarget-service-account-1@this-project.iam.gserviceaccount.comtarget-service-account-2@this-project.iam.gserviceaccount.com을 가장하도록 허용함을 나타냅니다.

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com",
      "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
      "isGoogleManaged": false
    },
    "targetServiceAccounts": [
      "target-service-account-1@this-project.iam.gserviceaccount.com",
      "target-service-account-2@this-project.iam.gserviceaccount.com"
    ],
    "impersonationPolicy": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "role": "roles/editor",
      "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
  "etag": "\"f48fa6a1b15c7741\"",
  "severity": "LOW"
}

통계 구성요소에 대한 자세한 내용은 이 페이지의 측면 이동 통계 검토를 참조하세요.

측면 이동 통계 검토

단일 통계를 가져온 후 콘텐츠를 검토하여 강조표시되는 리소스 사용량 패턴을 파악할 수 있습니다.

콘솔

Google Cloud 콘솔에서 측면 이동 통계를 클릭하면 Google Cloud 콘솔에서 통계 세부정보가 표시된 창이 열립니다. 이러한 세부정보가 표시되는 모양은 통계가 권장사항과 연결되어 있는지 여부에 따라 달라집니다.

통계가 권장사항과 연결된 경우 창에 권장사항 세부정보가 표시됩니다.

통계가 권장사항과 연결되지 않았으면 창에 다음이 표시됩니다.

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

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

  • 프로젝트에서 가장을 허용하는 권한: 서비스 계정에 포함된 가장 권한의 목록입니다.

  • 현재 권한: 모든 서비스 계정의 권한 목록입니다.

gcloud

통계의 콘텐츠는 하위유형에 따라 결정됩니다. 측면 이동 통계(google.iam.policy.LateralMovementInsight)의 통계에는 CROSS_PROJECT_IMPERSONATION 하위유형이 있습니다.

CROSS_PROJECT_IMPERSONATION 통계에는 다음과 같은 구성요소가 있습니다(순서는 다름).

  • associatedRecommendations: 통계와 연결된 모든 권장사항의 식별자입니다. 통계와 연결된 권장사항이 없으면 이 필드는 비어 있습니다.
  • category: IAM 통계의 카테고리는 항상 SECURITY입니다.
  • content: 다른 프로젝트에서 서비스 계정을 가장할 수 있는 서비스 계정의 권한을 자세히 보고합니다. 이 필드에는 다음 구성요소가 포함됩니다.

    • hasPermissionUsageData: 이 역할 바인딩의 권한 사용 데이터가 있는지 여부를 나타내는 부울 값입니다. 권한 사용 데이터는 역할 바인딩의 권한이 사용되었는지 여부를 나타냅니다. 조건부 역할 바인딩에서는 이 데이터를 사용할 수 없습니다.
    • impersonationPermissionUsage: 가장 권한과 이 권한의 사용 정보가 담긴 목록입니다. 지난 90일 동안 권한이 사용되면 사용된 것으로 간주됩니다. 그렇지 않은 경우 사용되지 않는 것으로 간주됩니다.

      hasPermissionUsageData가 false이면 impersonationPermissionUsage 필드가 비어 있습니다.

    • impersonationPolicy: 서비스 계정 가장 권한을 부여하는 역할 바인딩에 대한 정보입니다.
    • impersonator: 다음을 포함하여 프로젝트의 서비스 계정을 가장할 수 있는 권한이 있는 서비스 계정에 대한 세부정보입니다.
      • isGoogleManaged: 서비스 계정이 Google에서 소유하고 관리하는지 여부입니다.
      • serviceAccount: 서비스 계정의 이메일 주소입니다.
      • serviceAccountOwner: 서비스 계정을 소유하는 프로젝트입니다. Google에서 서비스 계정을 소유하는 경우 이 필드의 값은 Google managed입니다. 조직 외부의 프로젝트가 서비스 계정을 소유하는 경우 이 필드의 값은 Unknown to your org입니다.
    • targetServiceAccounts: 가장 권한이 있는 impersonator 필드의 서비스 계정 목록입니다. 가장자가 1,500개를 초과하는 서비스 계정을 가장할 수 있으면 목록이 비어 있습니다. 가장자가 가장할 수 있는 서비스 계정 수를 보려면 description 필드를 참조하세요.
  • description: 사람이 읽을 수 있는 통계 요약입니다.
  • etag: 통계의 현재 상태에 대한 고유 식별자입니다. 통계가 변경될 때마다 새 etag 값이 할당됩니다.

    통계 상태를 변경하려면 기존 통계의 etag를 제공해야 합니다. etag를 사용하면 마지막으로 검색한 후 통계가 변경되지 않은 경우에만 작업이 수행됩니다.

  • insightSubtype: 통계 하위유형입니다.
  • lastRefreshTime: 통계가 마지막으로 갱신된 날짜로, 통계를 생성하는 데 사용된 데이터의 최신 상태를 나타냅니다.
  • name: 다음 형식의 통계 이름입니다.

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    자리표시자의 값은 다음과 같습니다.

    • RESOURCE_TYPE: 통계가 생성된 리소스 유형입니다.
    • RESOURCE_ID: 통계가 생성된 프로젝트, 폴더, 또는 조직의 ID입니다.
    • INSIGHT_ID: 통계의 고유 ID입니다.
  • observationPeriod: 통계까지 이어지는 기간입니다. 통계를 생성하는 데 사용되는 소스 데이터는 lastRefreshTime에 종료되며 lastRefreshTime에서 observationPeriod를 뺀 시간에 시작합니다.
  • severity: 통계의 심각도입니다. 모든 측면 이동 통계의 심각도는 LOW입니다.
  • stateInfo: 통계는 제안된 후 여러 상태로 전환됩니다.

    • ACTIVE: 통계가 생성되지만 작업이 수행되지 않았거나 통계의 상태를 업데이트하지 않고 작업이 수행되었습니다. 활성 통계는 기본 데이터가 변경되면 업데이트됩니다.
    • ACCEPTED: 통계를 기반으로 몇몇 작업이 실행되었습니다. 통계가 수락되는 것은 관련 권장사항이 CLAIMED, SUCCEEDED 또는 FAILED로 표시되었거나 통계가 직접 수락된 경우입니다. 통계 상태가 ACCEPTED일 때는 통계 내용을 변경할 수 없습니다. 수락된 통계는 수락된 날로부터 90일 동안 보관됩니다.
  • targetResources: 통계의 대상인 조직, 폴더, 프로젝트 또는 서비스 계정의 전체 리소스 이름입니다. 예를 들면 //cloudresourcemanager.googleapis.com/projects/123456789012입니다.

REST

통계의 콘텐츠는 하위유형에 따라 결정됩니다. 측면 이동 통계(google.iam.policy.LateralMovementInsight)의 통계에는 CROSS_PROJECT_IMPERSONATION 하위유형이 있습니다.

CROSS_PROJECT_IMPERSONATION 통계에는 다음과 같은 구성요소가 있습니다(순서는 다름).

  • associatedRecommendations: 통계와 연결된 모든 권장사항의 식별자입니다. 통계와 연결된 권장사항이 없으면 이 필드는 비어 있습니다.
  • category: IAM 통계의 카테고리는 항상 SECURITY입니다.
  • content: 다른 프로젝트에서 서비스 계정을 가장할 수 있는 서비스 계정의 권한을 자세히 보고합니다. 이 필드에는 다음 구성요소가 포함됩니다.

    • hasPermissionUsageData: 이 역할 바인딩의 권한 사용 데이터가 있는지 여부를 나타내는 부울 값입니다. 권한 사용 데이터는 역할 바인딩의 권한이 사용되었는지 여부를 나타냅니다. 조건부 역할 바인딩에서는 이 데이터를 사용할 수 없습니다.
    • impersonationPermissionUsage: 가장 권한과 이 권한의 사용 정보가 담긴 목록입니다. 지난 90일 동안 권한이 사용되면 사용된 것으로 간주됩니다. 그렇지 않은 경우 사용되지 않는 것으로 간주됩니다.

      hasPermissionUsageData가 false이면 impersonationPermissionUsage 필드가 비어 있습니다.

    • impersonationPolicy: 서비스 계정 가장 권한을 부여하는 역할 바인딩에 대한 정보입니다.
    • impersonator: 다음을 포함하여 프로젝트의 서비스 계정을 가장할 수 있는 권한이 있는 서비스 계정에 대한 세부정보입니다.
      • isGoogleManaged: 서비스 계정이 Google에서 소유하고 관리하는지 여부입니다.
      • serviceAccount: 서비스 계정의 이메일 주소입니다.
      • serviceAccountOwner: 서비스 계정을 소유하는 프로젝트입니다. Google에서 서비스 계정을 소유하는 경우 이 필드의 값은 Google managed입니다. 조직 외부의 프로젝트가 서비스 계정을 소유하는 경우 이 필드의 값은 Unknown to your org입니다.
    • targetServiceAccounts: 가장 권한이 있는 impersonator 필드의 서비스 계정 목록입니다. 가장자가 1,500개를 초과하는 서비스 계정을 가장할 수 있으면 목록이 비어 있습니다. 가장자가 가장할 수 있는 서비스 계정 수를 보려면 description 필드를 참조하세요.
  • description: 사람이 읽을 수 있는 통계 요약입니다.
  • etag: 통계의 현재 상태에 대한 고유 식별자입니다. 통계가 변경될 때마다 새 etag 값이 할당됩니다.

    통계 상태를 변경하려면 기존 통계의 etag를 제공해야 합니다. etag를 사용하면 마지막으로 검색한 후 통계가 변경되지 않은 경우에만 작업이 수행됩니다.

  • insightSubtype: 통계 하위유형입니다.
  • lastRefreshTime: 통계가 마지막으로 갱신된 날짜로, 통계를 생성하는 데 사용된 데이터의 최신 상태를 나타냅니다.
  • name: 다음 형식의 통계 이름입니다.

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    자리표시자의 값은 다음과 같습니다.

    • RESOURCE_TYPE: 통계가 생성된 리소스 유형입니다.
    • RESOURCE_ID: 통계가 생성된 프로젝트, 폴더, 또는 조직의 ID입니다.
    • INSIGHT_ID: 통계의 고유 ID입니다.
  • observationPeriod: 통계까지 이어지는 기간입니다. 통계를 생성하는 데 사용되는 소스 데이터는 lastRefreshTime에 종료되며 lastRefreshTime에서 observationPeriod를 뺀 시간에 시작합니다.
  • severity: 통계의 심각도입니다. 모든 측면 이동 통계의 심각도는 LOW입니다.
  • stateInfo: 통계는 제안된 후 여러 상태로 전환됩니다.

    • ACTIVE: 통계가 생성되지만 작업이 수행되지 않았거나 통계의 상태를 업데이트하지 않고 작업이 수행되었습니다. 활성 통계는 기본 데이터가 변경되면 업데이트됩니다.
    • ACCEPTED: 통계를 기반으로 몇몇 작업이 실행되었습니다. 통계가 수락되는 것은 관련 권장사항이 CLAIMED, SUCCEEDED 또는 FAILED로 표시되었거나 통계가 직접 수락된 경우입니다. 통계 상태가 ACCEPTED일 때는 통계 내용을 변경할 수 없습니다. 수락된 통계는 수락된 날로부터 90일 동안 보관됩니다.
  • targetResources: 통계의 대상인 조직, 폴더, 프로젝트 또는 서비스 계정의 전체 리소스 이름입니다. 예를 들면 //cloudresourcemanager.googleapis.com/projects/123456789012입니다.

측면 이동 통계를 ACCEPTED로 표시

활성 통계를 기반으로 작업을 수행하는 경우 통계를 ACCEPTED로 표시할 수 있습니다. ACCEPTED 상태는 이 통계를 기반으로 작업을 수행했음을 추천자 API에 알려주므로 권장사항을 개선하는 데 도움이 됩니다.

허용된 통계는 ACCEPTED로 표시된 후 90일 동안 보관됩니다.

콘솔

통계가 권장사항과 연결된 경우 권장사항을 적용하면 통계 상태가 ACCEPTED로 변경됩니다.

권장사항을 적용하지 않고 통계를 ACCEPTED로 표시하려면 gcloud CLI 또는 REST API를 사용합니다.

gcloud

통계 ID와 함께 gcloud recommender insights mark-accepted 명령어를 사용하여 통계를 ACCEPTED로 표시합니다.

  • INSIGHT_ID: 보려는 통계의 ID입니다. ID를 찾으려면 프로젝트, 폴더, 또는 조직의 통계를 나열하세요.
  • RESOURCE_TYPE: 통계를 관리할 리소스 유형입니다. project, folder 또는 organization 값을 사용하세요.
  • RESOURCE_ID: 통계를 관리하려는 프로젝트, 폴더, 또는 조직의 ID입니다.
  • ETAG: 통계 버전의 식별자입니다. etag를 가져오려면 다음 안내를 따르세요.

    1. gcloud recommender insights describe 명령어를 사용하여 통계를 가져옵니다.
    2. 출력에서 etag 값(큰따옴표 포함)을 찾아 복사합니다. 예를 들면 "d3cdec23cc712bd0"입니다.
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global \
    --etag=ETAG

출력에 ACCEPTED 상태와 함께 통계가 표시됩니다.

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f
category: SECURITY
content:
  hasPermissionUsageData: true
  impersonationPermissionUsage:
  - permission: iam.serviceAccounts.actAs
    used: false
  impersonationPolicy:
    condition:
      description: ''
      expression: ''
      location: ''
      title: ''
    member: serviceAccount:sa-1@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: sa-1@another-project.iam.gserviceaccount.com
    serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098
  targetServiceAccounts:
  - target-service-account-1@this-project.iam.gserviceaccount.com
  - target-service-account-2@this-project.iam.gserviceaccount.com
description: Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACCEPTED
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

통계의 상태 정보에 대한 자세한 내용은 이 페이지의 측면 이동 통계 검토를 참조하세요.

REST

Recommender API의 insights.markAccepted 메서드는 통계를 ACCEPTED로 표시합니다.

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

  • RESOURCE_TYPE: 통계를 관리할 리소스 유형입니다. projects, folders 또는 organizations 값을 사용하세요.
  • RESOURCE_ID: 통계를 관리하려는 프로젝트, 폴더, 또는 조직의 ID입니다.
  • INSIGHT_ID: 보려는 통계의 ID입니다. 통계 ID를 모르는 경우 프로젝트, 폴더, 또는 조직에서 통계를 나열하여 찾을 수 있습니다. 통계 ID는 통계의 name 필드에서 insights/ 다음에 오는 모든 문자입니다.
  • ETAG: 통계 버전의 식별자입니다. etag를 가져오려면 다음을 실행합니다.
    1. insights.get 메서드를 사용하여 통계를 가져옵니다.
    2. 응답에서 etag 값을 찾아서 복사합니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다.

HTTP 메서드 및 URL:

POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID:markAccepted

JSON 요청 본문:

{
  "etag": "ETAG"
}

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

응답에 통계가 포함됩니다. 이제 상태가 ACCEPTED입니다.

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com",
      "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
      "isGoogleManaged": false
    },
    "targetServiceAccounts": [
      "target-service-account-1@this-project.iam.gserviceaccount.com",
      "target-service-account-2@this-project.iam.gserviceaccount.com"
    ],
    "impersonationPolicy": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "role": "roles/editor",
      "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
  "etag": "\"f48fa6a1b15c7741\"",
  "severity": "LOW"
}

통계의 상태 정보에 대한 자세한 내용은 이 페이지의 측면 이동 통계 검토를 참조하세요.

다음 단계