이 페이지에서는 Identity and Access Management(IAM) 정책을 비동기식으로 분석하고 결과를 Cloud Storage에 쓰는 방법을 설명합니다. 이 기능은 분석 결과가 Cloud Storage 버킷에 작성된다는 점을 제외하면 IAM 정책 분석과 대부분 동일합니다.
시작하기 전에
Enable the Cloud Asset API.
쿼리를 전송하는 데 사용할 프로젝트에서 API를 사용 설정해야 합니다. 이것은 쿼리 범위를 지정하는 리소스와 동일할 필요가 없습니다.
필수 역할 및 권한
정책 분석을 실행하고 결과를 Cloud Storage로 내보내려면 다음 역할 및 권한이 필요합니다.
필요한 IAM 역할
정책을 분석하고 결과를 BigQuery로 내보내기 위해 필요한 권한을 가져오려면 쿼리 범위를 지정할 프로젝트, 폴더, 조직에 대해 다음 IAM 역할을 부여해 달라고 관리자에게 요청합니다.
-
Cloud 애셋 뷰어(
roles/cloudasset.viewer
) -
스토리지 객체 생성자(
roles/storage.objectCreator
) - 커스텀 IAM 역할로 정책 분석: 역할 뷰어(
roles/iam.roleViewer
) - Google Cloud CLI를 사용하여 정책 분석: 서비스 사용량 소비자(
roles/serviceusage.serviceUsageConsumer
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 정책을 분석하고 결과를 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 정책 분석 결과를 보려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 버킷 페이지로 이동합니다.
분석을 기록한 새 파일을 엽니다.
결과에는 {identity, role(s)/permission(s), resource}
의 튜플과 그러한 튜플을 생성하는 IAM 정책이 함께 나열됩니다.