Cloud Storage에 정책 분석 기록

이 페이지에서는 Identity and Access Management(IAM) 정책을 비동기식으로 분석하고 결과를 Cloud Storage에 쓰는 방법을 설명합니다. 이 기능은 분석 결과가 Cloud Storage 버킷에 작성된다는 점을 제외하면 IAM 정책 분석과 대부분 동일합니다.

시작하기 전에

Enable the Cloud Asset API.

Enable the API

쿼리를 전송하는 데 사용할 프로젝트에서 API를 사용 설정해야 합니다. 이것은 쿼리 범위를 지정하는 리소스와 동일할 필요가 없습니다.

필수 역할 및 권한

정책 분석을 실행하고 결과를 Cloud Storage로 내보내려면 다음 역할 및 권한이 필요합니다.

필요한 IAM 역할

정책을 분석하고 결과를 BigQuery로 내보내기 위해 필요한 권한을 가져오려면 쿼리 범위를 지정할 프로젝트, 폴더, 조직에 대해 다음 IAM 역할을 부여해 달라고 관리자에게 요청합니다.

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

이러한 사전 정의된 역할에는 정책을 분석하고 결과를 BigQuery로 내보내는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

정책을 분석하고 결과를 BigQuery로 내보내려면 다음 권한이 필요합니다.

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • storage.objects.create
  • 커스텀 IAM 역할을 사용하여 정책 분석: iam.roles.get
  • Google Cloud CLI를 사용하여 정책 분석: serviceusage.services.use

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

필요한 Google Workspace 권한

Google Workspace 그룹에서 멤버십의 결과로 주 구성원에 특정 역할 또는 권한이 있는지 확인하려면 groups.read Google Workspace 권한이 필요합니다. 이 권한은 그룹 리더 관리자와 그룹 관리자 또는 최고 관리자 역할과 같은 보다 강력한 역할에 포함되어 있습니다. 자세한 내용은 특정 관리자 역할 할당을 참조하세요.

정책 분석 및 결과 내보내기

AnalyzeIamPolicyLongrunning 메서드를 사용하면 분석 요청을 실행하고 지정된 Cloud Storage 버킷에서 결과를 가져올 수 있습니다.

gcloud

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • RESOURCE_TYPE: 검색 범위를 지정할 리소스 유형입니다. 이 리소스 및 해당 종속 항목에 연결된 IAM 허용 정책만 분석됩니다. project, folder, organization 값을 사용합니다.
  • RESOURCE_ID: 검색 범위를 지정할 Google Cloud 프로젝트, 폴더, 조직의 ID입니다. 이 리소스 및 해당 종속 항목에 연결된 IAM 허용 정책만 분석됩니다. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
  • PRINCIPAL: PRINCIPAL_TYPE:ID 형식의 분석할 액세스를 갖는 주 구성원입니다(예: user:my-user@example.com). 주 구성원 유형의 전체 목록은 주 구성원 식별자를 참조하세요.
  • PERMISSIONS: 쉼표로 구분된 확인할 권한 목록입니다(예: compute.instances.get,compute.instances.start). 여러 권한을 나열하면 정책 분석 도구가 나열된 권한을 확인합니다.
  • STORAGE_OBJECT_URI: 분석 결과를 내보낼 gs://BUCKET_NAME/OBJECT_NAME 형식의 Cloud Storage 객체에 대한 고유한 리소스 식별자입니다(예: gs://my-bucket/analysis.json).

gcloud asset analyze-iam-policy-longrunning 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --identity=PRINCIPAL \
    --permissions='PERMISSIONS' \
    --gcs-output-path=STORAGE_OBJECT_URI

Windows(PowerShell)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --identity=PRINCIPAL `
    --permissions='PERMISSIONS' `
    --gcs-output-path=STORAGE_OBJECT_URI

Windows(cmd.exe)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --identity=PRINCIPAL ^
    --permissions='PERMISSIONS' ^
    --gcs-output-path=STORAGE_OBJECT_URI

다음과 비슷한 응답이 표시됩니다.

Analyze IAM Policy in progress.
Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.

REST

IAM 허용 정책을 분석하고 결과를 Cloud Storage로 내보내려면 Cloud Asset Inventory API의 analyzeIamPolicyLongrunning 메서드를 사용합니다.

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

  • RESOURCE_TYPE: 검색 범위를 지정할 리소스 유형입니다. 이 리소스 및 해당 종속 항목에 연결된 IAM 허용 정책만 분석됩니다. projects, folders, organizations 값을 사용합니다.
  • RESOURCE_ID: 검색 범위를 지정할 Google Cloud 프로젝트, 폴더, 조직의 ID입니다. 이 리소스 및 해당 종속 항목에 연결된 IAM 허용 정책만 분석됩니다. 프로젝트 ID는 my-project 같은 영숫자 문자열입니다. 폴더 및 조직 ID는 123456789012와 같은 숫자입니다.
  • FULL_RESOURCE_NAME: 선택사항. 액세스를 분석할 리소스의 전체 리소스 이름입니다. 전체 리소스 이름 형식 목록은 리소스 이름 형식을 참조하세요.
  • PRINCIPAL: (선택사항) PRINCIPAL_TYPE:ID 형식의 분석할 액세스를 갖는 주 구성원입니다(예: user:my-user@example.com). 주 구성원 유형의 전체 목록은 주 구성원 식별자를 참조하세요.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: (선택사항) 확인할 권한입니다(예: compute.instances.get). 여러 권한을 나열하면 정책 분석 도구가 나열된 권한을 확인합니다.
  • STORAGE_OBJECT_URI: 분석 결과를 내보낼 gs://BUCKET_NAME/OBJECT_NAME 형식의 Cloud Storage 객체에 대한 고유한 리소스 식별자입니다(예: gs://my-bucket/analysis.json).

HTTP 메서드 및 URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning

JSON 요청 본문:

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    },
    "outputConfig": {
      "gcsDestination": {
        "uri": "STORAGE_OBJECT_URI"
      }
    }
  }
}

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

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata",
    "createTime": "2022-04-12T21:31:10.753173929Z"
  }
}

IAM 정책 분석 결과 보기

IAM 정책 분석 결과를 보려면 다음 안내를 따르세요.

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

    버킷으로 이동

  2. 분석을 기록한 새 파일을 엽니다.

결과에는 {identity, role(s)/permission(s), resource}의 튜플과 그러한 튜플을 생성하는 IAM 정책이 함께 나열됩니다.