이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Identity and Access Management(IAM) 조건을 사용하면 API 허브 리소스를 포함하여 Google Cloud 리소스에 대한 조건부 액세스 제어를 정의하고 적용할 수 있습니다. IAM 조건에 대한 자세한 내용은 IAM 조건 개요를 참조하세요.
API 허브에서는 다음 IAM 리소스 조건 속성을 기반으로 조건부 액세스를 적용할 수 있습니다.
- resource.service 조건 속성: 사용 중인 Google Cloud 서비스를 기반으로 조건부 액세스를 구성하는 데 사용합니다.
예를 들어
apihub.googleapis.com
을 사용하는 리소스에 대한 사용자 액세스를 제한하는 조건을 설정할 수 있습니다. 지원되는 값 목록은 리소스 서비스 값을 참조하세요. - resource.type 조건 속성: 액세스하는 리소스의 유형을 기반으로 조건부 액세스를 구성하는 데 사용합니다. 예를 들어
apihub.googleapis.com/Api
에 대한 사용자 액세스를 제한하는 조건을 설정할 수 있습니다. 지원되는 값 목록은 리소스 유형 값을 참조하세요. - resource.name 조건 속성: 리소스 이름의 전체 또는 일부를 기반으로 조건부 액세스를 구성하는 데 사용합니다. 지원되는 API 허브 이름 형식 목록은 리소스 이름 형식을 참조하세요.
IAM 조건 추가
기존 주 구성원(사용자, 그룹 또는 서비스 계정)에 IAM 조건을 추가하려면 다음 단계를 수행합니다.
- Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
- 프로젝트, 폴더 또는 조직을 선택합니다.
- 주 구성원 목록에서 IAM 조건을 추가할 주 구성원을 찾고
액세스 수정 창이 나타납니다.
(주 구성원 수정)을 클릭합니다.
- IAM 조건을 추가할 역할을 찾고 + IAM 조건 추가를 클릭합니다.
- 조건 추가 창에서 다음 정보를 입력합니다.
- 제목: 역할에 추가할 조건의 이름을 입력합니다.
- 설명: (선택사항) 조건에 대한 설명을 입력합니다.
- 조건 작성 도구 또는 조건 편집기를 사용하여 조건을 추가할 수 있습니다.
조건 작성 도구에서는 표현식에 원하는 조건 유형, 연산자, 기타 적용 가능한 세부정보를 선택할 수 있는 대화형 인터페이스를 제공합니다. 조건 편집기는 CEL 문법을 사용하여 조건 표현식을 수동으로 입력할 수 있는 텍스트 기반 인터페이스를 제공합니다.
조건 작성 도구 또는 조건 편집기를 사용하는 방법에 대한 자세한 내용은 리소스 기반 액세스 구성을 참조하세요.
- 저장을 클릭하여 조건을 적용합니다.
- 액세스 수정 창에서 저장을 다시 클릭하여 주 구성원을 업데이트합니다.
API 허브용 IAM 조건 사용 예시
예 1: 리소스 이름 기반의 IAM 조건으로 시작하는 모든 API 리소스에 대한 액세스 제어
다음 조건 표현식은 액세스 제어를 다음과 같이 정의합니다.
- 프리픽스로 시작하는 API 리소스에 액세스합니다. 여기에는 API 버전, 배포, 사양, 작업, 정의 등 모든 API 리소스에 대한 액세스가 포함됩니다.
- 다른 API 허브 리소스에 기본 역할 기반 비조건부 액세스합니다.
( resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API_ID_PREFIX") || ( resource.type != "apihub.googleapis.com/Api" && resource.type != "apihub.googleapis.com/Version" && resource.type != "apihub.googleapis.com/Spec" && resource.type != "apihub.googleapis.com/ApiOperation" && resource.type != "apihub.googleapis.com/Definition" ) )
다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 ID입니다.LOCATION
: API 허브 위치입니다.API_ID_PREFIX
: API 리소스 이름의 프리픽스입니다.
예 2: 리소스 유형 기반의 IAM 조건을 사용하여 여러 API의 액세스 제어
다음 조건 표현식은 액세스 제어를 다음과 같이 정의합니다.
- 프리픽스로 시작하는 API 허브 API 리소스에 액세스합니다.
- 지정된 버전 ID로 시작하는 API 허브 버전 리소스에 액세스합니다.
- 지정된 사양 ID로 시작하는 API 허브 사양 리소스에 액세스합니다.
- 다른 API 허브 리소스에 기본 역할 기반 비조건부 액세스합니다.
( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Api" && resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API1_ID_PREFIX") ) || ( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Version" && resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API2_ID/versions/API2_VERSION_ID" ) || ( resource.service == "apihub.googleapis.com" && resource.type == "apihub.googleapis.com/Spec" && resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API3_ID/versions/API3_VERSION_ID/specs/API3_SPEC_ID" ) || ( resource.type != "apihub.googleapis.com/Api" && resource.type != "apihub.googleapis.com/Version" && resource.type != "apihub.googleapis.com/Spec" && resource.type != "apihub.googleapis.com/ApiOperation" && resource.type != "apihub.googleapis.com/Definition" )
PROJECT_ID
: Google Cloud 프로젝트의 ID입니다.LOCATION
: API 허브 위치입니다.API1_ID_PREFIX
: 첫 번째 API 리소스 이름의 프리픽스입니다.API2_ID
: 두 번째 API 리소스의 ID입니다.API2_VERSION_ID
: 두 번째 API 버전 리소스의 ID입니다.API3_ID
: 세 번째 API 리소스의 ID입니다.API3_VERSION_ID
: 세 번째 API 버전 리소스의 ID입니다.API3_SPEC_ID
: 세 번째 API 사양 리소스의 ID입니다.