IAM 조건을 사용하면 Apigee Integration 리소스를 포함하여 Google Cloud 리소스에 조건부 속성 기반 액세스 제어를 정의하고 적용할 수 있습니다. IAM 조건에 대한 자세한 내용은 IAM 조건 개요를 참조하세요.
Apigee Integration에서는 다음 속성을 기반으로 조건부 액세스를 적용할 수 있습니다.
- 날짜/시간 속성: Apigee Integration 리소스에 대한 임시(만료됨), 예약 또는 기간 제한 액세스를 설정하는 데 사용합니다. 예를 들어 지정된 날짜까지 사용자가 통합에 액세스하도록 허용할 수 있습니다. 자세한 내용은 임시 액세스 구성을 참조하세요.
- 리소스 속성: 리소스 이름, 리소스 유형 또는 리소스 서비스 속성을 기반으로 조건부 액세스를 구성하는 데 사용합니다. 예를 들어 사용자가 특정 리전에서 생성된 통합을 관리하도록 허용할 수 있습니다. 지원 값 목록을 참조하세요. 자세한 내용은 리소스 기반 액세스 구성을 참조하세요.
IAM 조건 추가
기존 주 구성원(사용자, 그룹 또는 서비스 계정)에 IAM 조건을 추가하려면 다음 단계를 수행합니다.
- Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
- 프로젝트, 폴더 또는 조직을 선택합니다.
- 주 구성원 목록에서 IAM 조건을 추가할 주 구성원을 찾고
액세스 수정 창이 나타납니다.
(주 구성원 수정)을 클릭합니다.
- IAM 조건을 추가할 역할을 찾고 + IAM 조건 추가를 클릭합니다.
- 조건 추가 창에서 다음 정보를 입력합니다.
- 제목: 역할에 추가할 조건의 이름을 입력합니다.
- 설명: (선택사항) 조건에 대한 설명을 입력합니다.
- 조건 작성 도구 또는 조건 편집기를 사용하여 조건을 추가할 수 있습니다.
조건 작성 도구에서는 표현식에 대해 원하는 조건 유형, 연산자, 기타 적용 가능한 세부정보를 선택할 수 있는 대화형 인터페이스를 제공합니다. 조건 편집기는 CEL 구문을 사용하여 조건 표현식을 수동으로 입력할 수 있는 텍스트 기반 인터페이스를 제공합니다.
조건 작성 도구 또는 조건 편집기를 사용하는 방법에 대한 자세한 내용은 리소스 기반 액세스 구성을 참조하세요.
- 저장을 클릭하여 조건을 적용합니다.
Apigee Integration에 지원되는 리소스 속성에 대한 자세한 내용은 리소스 속성 값을 참조하세요.
- 액세스 수정 창에서 저장을 다시 클릭하여 주 구성원을 업데이트합니다.
리소스 속성 값
다음 표에는 리소스 유형 속성이 Apigee Integration에 포함할 수 있는 값이 나와 있습니다.
리소스 이름 | 리소스 유형 | 참조 |
---|---|---|
위치 | SERVICE_ENDPOINT-integrations.googleapis.com/Location
|
API 참조 |
통합 | SERVICE_ENDPOINT-integrations.googleapis.com/Integration
|
API 참조 |
IntegrationVersion | SERVICE_ENDPOINT-integrations.googleapis.com/IntegrationVersion
|
API 참조 |
실행 | SERVICE_ENDPOINT-integrations.googleapis.com/Execution
|
API 참조 |
정지 | SERVICE_ENDPOINT-integrations.googleapis.com/Suspension
|
API 참조 |
AuthConfig | SERVICE_ENDPOINT-integrations.googleapis.com/AuthConfig
|
API 참조 |
Apigee Integration용 IAM 조건 사용 예시
예시 1: 리전의 모든 IntegrationVersion 리소스에 대한 액세스 제한
조건 편집기에서 다음 조건 표현식을 사용하여 IntegrationVersion 리소스에 대한 액세스를 제한할 수 있습니다. 액세스 제한에는 create
, delete
, download
, get
, list
, patch
, publish
, unpublish
, upload
작업을 리전의 통합 버전으로 제한이 포함됩니다.
!resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee/integrations/INTEGRATION_NAME")
다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID
- LOCATION: 통합 서비스 엔드포인트입니다. Apigee Integration 서비스 엔드포인트를 참조하세요.
- INTEGRATION_NAME: 통합의 이름
예시 2: 리전의 모든 IntegrationVersion 리소스에 대한 액세스 허용
조건 편집기에서 다음 조건 표현식을 사용하여 IntegrationVersion 리소스에 대한 액세스를 허용할 수 있습니다.
resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee/integrations/INTEGRATION_NAME") || resource.type == "cloudresourcemanager.googleapis.com/Project")
다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID
- LOCATION: 통합 서비스 엔드포인트입니다. Apigee Integration 서비스 엔드포인트를 참조하세요.
- INTEGRATION_NAME: 통합의 이름
예시 3: 특정 AuthConfig 리소스에 대한 액세스 허용
조건 편집기에서 다음 조건 표현식을 사용하여 특정 AuthConfig 리소스에 대한 액세스를 허용할 수 있습니다.
(resource.name.extract("authConfigs/{end}" == "AUTH_CONFIG_NAME") || resource.type == "integrations.googleapis.com/Location" || resource.type == "cloudresourcemanager.googleapis.com/Project")
다음을 바꿉니다.
- AUTH_CONFIG_NAME: 인증 유형 이름입니다. 인증 유형을 참조하세요.
예시 4: 리전의 모든 AuthConfig 리소스에 대한 액세스 허용
조건 편집기에서 다음 조건 표현식을 사용하여 모든 AuthConfig 리소스에 대한 액세스를 허용할 수 있습니다.
(resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee") && resource.type == "integrations.googleapis.com/AuthConfig" || resource.type == "integrations.googleapis.com/Location" || resource.type == "cloudresourcemanager.googleapis.com/Project")
다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID
- LOCATION: 통합 서비스 엔드포인트입니다. Apigee Integration 서비스 엔드포인트를 참조하세요.