인그레스 및 이그레스 규칙에서 IAM 역할 구성

이 페이지에서는 인그레스 및 이그레스 규칙에서 Identity and Access Management (IAM) 역할을 사용하여 서비스 경계로 보호되는 리소스에 대한 액세스를 허용하는 방법을 설명합니다.

VPC 서비스 제어는 인그레스 규칙과 이그레스 규칙을 사용하여 서비스 경계로 보호되는 리소스와 클라이언트의 액세스를 허용합니다. 원하는 경우 IAM 역할을 사용하여 인그레스 및 이그레스 규칙을 제한할 수 있습니다. 규칙에서 IAM 역할을 지정하면 규칙은 IAM 역할의 일부인 권한과 연결된 작업만 허용합니다.

시작하기 전에

인그레스 규칙에서 IAM 역할 구성

콘솔

Google Cloud 콘솔을 사용하여 서비스 경계의 인그레스 정책을 업데이트하거나 경계 생성 중에 인그레스 정책을 설정할 때 IAM 역할을 사용하도록 인그레스 규칙을 구성할 수 있습니다.

  1. Google Cloud 콘솔에서 경계를 만들거나 경계를 수정할 때 인그레스 정책을 선택합니다.

  2. 인그레스 규칙 창에서 기존 인그레스 규칙을 선택하거나 인그레스 규칙 추가를 클릭합니다.

  3. 인그레스 정책의 To 섹션에서 작업 또는 IAM 역할 목록에서 IAM 역할 선택(미리보기)을 선택합니다.

  4. IAM 역할 추가를 클릭합니다.

  5. IAM 역할 추가 창에서 허용하려는 IAM 역할을 선택합니다.

    지원되는 서비스 및 역할에 대한 자세한 내용은 지원되는 제품을 참고하세요.

  6. 선택한 IAM 역할 추가를 클릭합니다.

  7. 완료를 클릭합니다.

다른 인그레스 규칙 속성에 관한 자세한 내용은 인그레스 규칙 참조를 참고하세요.

gcloud

JSON 파일 또는 YAML 파일을 사용하여 IAM 역할을 사용하도록 인그레스 규칙을 구성할 수 있습니다. 다음 샘플에서는 YAML 형식을 사용합니다.

- ingressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
  ingressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER

ROLE_NAME를 규칙에 지정된 서비스의 액세스 범위를 정의하는 IAM 역할로 바꿉니다. 서비스에 액세스하는 데 필요한 모든 권한이 포함된 단일 역할 또는 역할 조합을 지정합니다. 역할을 지정하려면 역할 구성요소에 언급된 역할 이름 형식을 사용합니다(projects/PROJECT_ID/roles/IDENTIFIER 형식 제외).

지원되는 서비스 및 역할에 대한 자세한 내용은 지원되는 제품을 참고하세요.

다른 인그레스 규칙 속성에 관한 자세한 내용은 인그레스 규칙 참조를 참고하세요.

IAM 역할을 구성하기 위해 기존 인그레스 규칙을 업데이트한 후에는 서비스 경계의 규칙 정책을 업데이트해야 합니다.

gcloud access-context-manager perimeters update PERIMETER_ID --set-ingress-policies=RULE_POLICY.yaml

다음을 바꿉니다.

  • PERIMETER_ID: 업데이트하려는 서비스 경계의 ID입니다.
  • RULE_POLICY: 수정된 인그레스 규칙 파일의 경로입니다.

자세한 내용은 서비스 경계의 인그레스 및 이그레스 정책 업데이트를 참고하세요.

이그레스 규칙에서 IAM 역할 구성

콘솔

Google Cloud 콘솔을 사용하여 서비스 경계의 이그레스 정책을 업데이트하거나 경계 생성 중에 이그레스 정책을 설정할 때 IAM 역할을 사용하도록 이그레스 규칙을 구성할 수 있습니다.

  1. Google Cloud 콘솔에서 경계를 만들거나 경계를 수정할 때 이그레스 정책을 선택합니다.

  2. 이그레스 규칙 창에서 기존 이그레스 규칙을 선택하거나 이그레스 규칙 추가를 클릭합니다.

  3. 이그레스 정책의 To 섹션에서 작업 또는 IAM 역할 목록에서 IAM 역할 선택(미리보기)을 선택합니다.

  4. IAM 역할 추가를 클릭합니다.

  5. IAM 역할 추가 창에서 허용하려는 IAM 역할을 선택합니다.

    지원되는 서비스 및 역할에 대한 자세한 내용은 지원되는 제품을 참고하세요.

  6. 선택한 IAM 역할 추가를 클릭합니다.

  7. 완료를 클릭합니다.

다른 이그레스 규칙 속성에 관한 자세한 내용은 이그레스 규칙 참조를 확인하세요.

gcloud

JSON 파일 또는 YAML 파일을 사용하여 IAM 역할을 사용하도록 이그레스 규칙을 구성할 수 있습니다. 다음 샘플에서는 YAML 형식을 사용합니다.

- egressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER
  egressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
    sourceRestriction: RESTRICTION_STATUS

ROLE_NAME를 규칙에 지정된 서비스의 액세스 범위를 정의하는 IAM 역할로 바꿉니다. 서비스에 액세스하는 데 필요한 모든 권한이 포함된 단일 역할 또는 역할 조합을 지정합니다. 역할을 지정하려면 역할 구성요소에 언급된 역할 이름 형식을 사용합니다(projects/PROJECT_ID/roles/IDENTIFIER 형식 제외).

지원되는 서비스 및 역할에 대한 자세한 내용은 지원되는 제품을 참고하세요.

다른 이그레스 규칙 속성에 관한 자세한 내용은 이그레스 규칙 참조를 참고하세요.

IAM 역할을 구성하기 위해 기존 이그레스 규칙을 업데이트한 후에는 서비스 경계의 규칙 정책을 업데이트해야 합니다.

gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml

다음을 바꿉니다.

  • PERIMETER_ID: 업데이트하려는 서비스 경계의 ID입니다.
  • RULE_POLICY: 수정된 이그레스 규칙 파일의 경로입니다.

자세한 내용은 서비스 경계의 인그레스 및 이그레스 정책 업데이트를 참고하세요.

지원되는 제품

다음 서비스의 IAM 역할을 인그레스 및 이그레스 규칙에 사용할 수 있습니다. Google Cloud

Product 제한사항
Artifact Registry
artifactregistry.googleapis.com
  • 알려진 제한사항이 없음
BigQuery
bigquery.googleapis.com
  • 알려진 제한사항이 없음
BigQuery Data Transfer Service
bigquerydatatransfer.googleapis.com
  • 알려진 제한사항이 없음
Bigtable
bigtable.googleapis.com
  • 알려진 제한사항이 없음
바이너리 승인
binaryauthorization.googleapis.com
  • 알려진 제한사항이 없음
Cloud Composer
composer.googleapis.com
  • 알려진 제한사항이 없음
Cloud Key Management Service
cloudkms.googleapis.com
  • 고객 관리 암호화 키 (CMEK)를 사용하는 경우 VPC 서비스 제어는 인그레스 및 이그레스 규칙에서 Cloud KMS 역할의 사용을 지원하지 않습니다.
Cloud Logging
logging.googleapis.com
  • 알려진 제한사항이 없음
Cloud Monitoring
monitoring.googleapis.com
  • 알려진 제한사항이 없음
Cloud Run
run.googleapis.com
  • 알려진 제한사항이 없음
Cloud Run 함수
cloudfunctions.googleapis.com
  • 알려진 제한사항이 없음
Cloud SQL
sqladmin.googleapis.com
  • 알려진 제한사항이 없음
Cloud Storage
storage.googleapis.com
  • VPC 서비스 제어는 인그레스 및 이그레스 규칙에서 Cloud Storage의 커스텀 역할을 지원하지만 사전 정의된 Cloud Storage 역할은 지원하지 않습니다. 인그레스 또는 이그레스 규칙에서 사전 정의된 Cloud Storage 역할을 사용하려고 하면 VPC 서비스 제어에서 INVALID_ARGUMENT 오류를 반환합니다.
  • VPC 서비스 제어로 보호되는 프로젝트에 객체 삽입 또는 쓰기 API 요청을 실행하는 경우 storage.objects.deletestorage.objects.create 권한을 허용하는 인그레스 및 이그레스 규칙을 구성해야 합니다.
  • Cloud Storage에서 요청자 지불 기능을 사용 설정하면 VPC 서비스 제어는 인그레스 및 이그레스 규칙에서 Cloud Storage 역할의 사용을 지원하지 않습니다.
Compute Engine
compute.googleapis.com
  • 알려진 제한사항이 없음
Dataflow
dataflow.googleapis.com
  • 알려진 제한사항이 없음
Dataproc
dataproc.googleapis.com
  • 알려진 제한사항이 없음
Google Kubernetes Engine
container.googleapis.com
  • 알려진 제한사항이 없음
Identity and Access Management
iam.googleapis.com
  • 알려진 제한사항이 없음
Pub/Sub
pubsub.googleapis.com
  • 알려진 제한사항이 없음
Resource Manager
cloudresourcemanager.googleapis.com
  • 알려진 제한사항이 없음
Secret Manager
secretmanager.googleapis.com
  • 알려진 제한사항이 없음
Spanner
spanner.googleapis.com
  • 알려진 제한사항이 없음

인그레스 및 이그레스 규칙에 사용할 수 있는 이러한 서비스의 사전 정의된 IAM 역할 목록은 사전 정의된 역할을 참고하세요.

그러나 이러한 서비스에는 기본 권한의 일부 또는 전부가 지원되지 않으므로 인그레스 및 이그레스 규칙에서 부분적으로 지원되거나 지원되지 않는 몇 가지 IAM 역할이 있습니다.

  • 인그레스 또는 이그레스 규칙에서 부분적으로 지원되는 IAM 역할을 사용하면 지원되지 않는 기본 권한과 관련된 요청이나 작업에 규칙이 적용되지 않습니다.

    부분적으로 지원되는 역할 및 관련 지원되지 않는 권한 목록은 부분적으로 지원되는 IAM 역할을 참고하세요.

  • 인그레스 또는 이그레스 규칙에 지원되지 않는 IAM 역할을 사용하면 규칙이 효과가 없게 됩니다.

    지원되지 않는 역할 목록은 지원되지 않는 IAM 역할을 참고하세요.

인그레스 및 이그레스 규칙에서 커스텀 역할을 사용하려면 커스텀 역할에 지원되는 서비스의 일부인 지원되는 권한만 포함되어 있는지 확인합니다. 지원되는 서비스에서 지원되지 않는 권한 목록은 부분적으로 지원되는 IAM 역할지원되지 않는 IAM 역할을 참고하세요.

프로젝트 수준에서 만든 커스텀 역할은 사용할 수 없습니다. 즉, projects/PROJECT_ID/roles/IDENTIFIER 형식의 커스텀 역할은 사용할 수 없습니다.

일부 지원되는 IAM 역할

다음 표에는 특정 서비스에서 부분적으로 지원되는 IAM 역할이 나와 있습니다.

Product 일부 지원되는 역할 지원되지 않는 권한
Cloud SQL
  • roles/cloudsql.viewer
  • cloudsql.backupRuns.list
  • cloudaicompanion.*
  • roles/cloudsql.editor
  • cloudsql.backupRuns.list
  • cloudaicompanion.*
Cloud Storage
  • roles/storage.objectUser
  • storage.objects.move
Identity and Access Management
  • roles/iam.serviceAccountTokenCreator
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
Resource Manager
  • roles/resourcemanager.tagAdmin
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • roles/resourcemanager.tagUser
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • alloydb.*
  • certificatemanager.*
  • clouddeploy.*
  • roles/resourcemanager.tagViewer
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • alloydb.*
  • certificatemanager.*
  • clouddeploy.*
Spanner
  • roles/spanner.databaseReaderWithDataBoost
  • spanner.databases.useDataBoost
일부 지원되는 기타 역할
  • alloydb.*
  • backupdr.*
  • bigquerymigration.*
  • certificatemanager.*
  • cloudaicompanion.*
  • cloudasset.*
  • cloudbuild.*
  • clouddeploy.*
  • dataform.*
  • dataplex.*
  • dns.*
  • eventarc.*
  • networkconnectivity.*
  • networkmanagement.*
  • networksecurity.*
  • networkservices.*

지원되지 않는 IAM 역할

다음 표에는 특정 서비스에서 지원되지 않는 IAM 역할이 나와 있습니다.

Product 지원되지 않는 역할
Identity and Access Management
  • roles/iam.denyReviewer
  • roles/iam.oauthClientViewer
  • roles/iam.operationViewer
  • roles/iam.workforcePoolEditor
  • roles/iam.workforcePoolViewer
  • roles/iam.workloadIdentityPoolViewer
  • roles/iam.workforcePoolEditor
  • roles/iam.workforcePoolViewer

제한사항

  • 역할 기반 인그레스 또는 이그레스 규칙을 사용하여 경계 경계를 넘어 프로젝트의 IAM 허용 정책을 설정하는 요청을 허용할 수 없습니다.

  • VPC 서비스 제어 제한으로 인해 Google Cloud 콘솔에서 서비스의 수정 페이지를 로드하는 데 문제가 발생하는 경우 인그레스 규칙에서 IAM 역할을 사용해도 문제가 해결되지 않을 수 있습니다. 이 제한사항은 이러한 서비스의 보기 전용 페이지에는 영향을 미치지 않습니다.

  • 요청에 여러 프로젝트의 여러 리소스 유형이 포함된 경우 IAM 역할을 사용하는 인그레스 또는 이그레스 규칙이 작동하지 않을 수 있습니다. 예를 들어 다른 프로젝트의 Cloud Storage에서 텍스트를 읽는 Dataflow 템플릿을 실행하는 경우입니다.

  • 경계의 인그레스 또는 이그레스 규칙에서 역할을 참조한 후 맞춤 역할을 삭제하면 경계를 수정할 수 없게 됩니다.

다음 단계