Cloud Storage에 정책 분석 작성

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

시작하기 전에

  • 프로젝트에 Cloud Asset API를 사용 설정해야 합니다.

  • API를 사용하여 이러한 쿼리를 실행하는 경우 환경 및 gcurl을 설정해야 합니다.

    1. 환경을 설정합니다.

    2. gcurl 별칭을 설정하려면 다음 단계를 완료합니다.

      Compute Engine 인스턴스를 사용하는 경우 다음 명령어를 실행합니다.

      alias gcurl='curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "Content-Type: application/json" -X POST'
      

      Compute Engine 인스턴스를 사용하지 않는 경우 다음 명령어를 실행합니다.

      alias gcurl='curl -H "$(oauth2l header --json CREDENTIALS cloud-platform)" \
      -H "Content-Type: application/json" -X POST'
      

      여기서 CREDENTIALS는 사용자 인증 정보 파일 경로입니다(예: ~/credentials.json).

AnalyzeIamPolicyLongrunning 호출

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

gcloud

API가 사용 설정된 프로젝트에서 asset analyze-iam-policy-longrunning gcloud 명령어를 사용하여 AnalyzeIamPolicyLongrunning를 호출할 수 있습니다. Cloud SDK 버전 314.0.0 이상을 실행해야 합니다. gcloud version 명령어를 사용하여 버전을 확인할 수 있습니다.

gcloud asset analyze-iam-policy-longrunning \
    --organization="ORG_ID" \
    --full-resource-name="FULL_RESOURCE_NAME" \
    --permissions="COMMA_SEPARATED_PERMISSIONS" \
    --gcs-output-path="GCS_OUTPUT_PATH"

예를 들어 조직 123456789의 Compute Engine 인스턴스 ipa-gce-instance-2에서 누가 Cloud Storage 버킷 gcs-bucket-01에 대한 compute.instances.getcompute.instances.start 권한을 갖는지 analysis.json와 같은 파일 이름으로 분석 결과를 씁니다.

gcloud asset analyze-iam-policy-longrunning --organization="123456789" \
    --full-resource-name="//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2" \
    --permissions="compute.instances.get,compute.instances.start" \
    --gcs-output-path="gs://gcs-bucket-01/analysis.json"

자세한 내용은 다음 도움말을 참조하세요.

gcloud asset analyze-iam-policy-longrunning --help

REST

IAM 정책을 분석하고 gcurl 별칭을 사용하여 결과를 작성합니다.

gcurl -d "$JSON_REQUEST" \
"https://cloudasset.googleapis.com/v1/organizations/${YOUR_ORG_ID}:analyzeIamPolicyLongrunning"

각 항목의 의미는 다음과 같습니다.

  • YOUR_ORG_ID123456789와 같은 조직 ID입니다.

  • JSON_REQUEST는 JSON 형식의 분석 요청입니다. 예를 들어 조직 123456789의 Compute Engine 인스턴스 ipa-gce-instance-2에서 누가 Cloud Storage 버킷 gcs-bucket-01에 대한 compute.instances.getcompute.instances.start 권한을 갖는지 analysis.json와 같은 파일 이름으로 분석합니다.

    JSON_REQUEST='{
      "analysisQuery":{
        "scope":"organization/123456789",
        "resourceSelector":{
           "fullResourceName":"//compute.googleapis.com/projects/project1/zones/us-central1-a/instances/ipa-gce-instance-2"
        },
        "accessSelector":{
           "permissions":[
              "compute.instances.get",
              "compute.instances.start"
           ]
        }
      },
      "outputConfig":{
        "gcsDestination":{
           "uri":"gs://gcs-bucket-01/analysis.json"
        }
      }
    }'
    

IAM 정책 분석 결과 보기

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

  1. Cloud Storage 브라우저 페이지로 이동
    Cloud Storage 브라우저 페이지 열기

  2. 분석을 쓴 새 파일을 엽니다.

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

쿼리 작성

쿼리의 다른 사용 사례와 옵션을 알아보려면 IAM 정책 쿼리 샘플 분석을 참조하세요.