이 페이지에서는 Gemini Enterprise 관리자가 API를 사용하여 개별 Gemini Enterprise 앱의 세부적인 액세스 제어를 관리하는 방법을 설명합니다.
앱과 데이터 스토어 모두에서 세분화된 리소스 수준 액세스 제어를 구성해야 하는 경우 앱 및 데이터 스토어에 대한 세분화된 액세스 제어 구성을 참고하세요.
기본적으로 IAM 권한은 프로젝트 수준에서 관리되는 경우가 많습니다. 앱 수준 IAM을 사용하면 더 세분화된 제어가 가능하므로 관리자는 다음 작업을 할 수 있습니다.
- 동일한 Google Cloud 프로젝트 내에서 특정 앱에 대한 사용자 액세스를 제한합니다.
- Gemini Enterprise 배포를 위해 조직의 요구사항 및 데이터 사일로에 맞게 권한을 조정합니다.
예를 들어 HR 앱과 회사 전체 앱이 있는 조직을 생각해 보세요. 프로젝트 수준 권한이 있는 HR팀 구성원은 두 앱에 모두 액세스할 수 있습니다. 반면 앱 수준 IAM 정책을 사용하면 영업팀 구성원에게 회사 전체 앱에 대한 액세스 권한만 부여하여 HR 앱에 액세스하지 못하도록 할 수 있습니다.

시작하기 전에
Gemini Enterprise 관리자(
roles/discoveryengine.agentspaceAdmin) 역할이 있는지 확인합니다.모든 Gemini Enterprise 사용자에게 유효한 라이선스가 있고 프로젝트 수준에서 Gemini Enterprise 제한된 사용자(
roles/discoveryengine.agentspaceRestrictedUser) 역할이 부여되었는지 확인합니다. 자세한 내용은 사용자에게 권한 부여를 참고하세요.이 역할은 자체적으로 앱에 대한 액세스 권한을 부여하지 않습니다. 사용자에게 필요한 프로젝트 수준 액세스를 제공한 다음 개별 앱에 대한 액세스 권한을 부여합니다. 사전 정의된
roles/discoveryengine.agentspaceRestrictedUser역할 대신 커스텀 프로젝트 수준 역할을 사용하는 경우 커스텀 역할에discoveryengine.locations.buildAuthorizationUrl,discoveryengine.dataStores.get,discoveryengine.collections.get,discoveryengine.devToolsConfigs.get권한이 포함되어 있는지 확인하세요.discoveryengine.devToolsConfigs.get를 생략하면 웹 앱에서devToolsConfig를 확인할 때 Cloud 감사 로그에403 PERMISSION_DENIED오류가 발생합니다.
프로젝트 수준 액세스에서 앱 수준 액세스로 전환
사용자를 특정 앱으로 제한하려면 프로젝트 수준 Gemini Enterprise 사용자 역할을 Gemini Enterprise 제한된 사용자 역할로 바꾼 다음 개별 앱 수준에서 Gemini Enterprise 사용자 역할을 부여해야 합니다.
사용자를 프로젝트 수준 액세스에서 앱 수준 액세스로 전환하려면 다음 단계를 따르세요. 프로젝트 수준 변경사항에는 Google Cloud 콘솔을 사용하고, 앱 수준 권한 부여에는 Google Cloud 콘솔에서 지원하지 않는 API를 사용합니다.
- Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
- 사용자를 찾아 프로젝트 수준 권한에서 Gemini Enterprise 사용자(
roles/discoveryengine.agentspaceUser) 역할을 삭제합니다. - 아직 부여하지 않은 경우 프로젝트 수준에서 사용자에게 Gemini Enterprise 제한된 사용자(
roles/discoveryengine.agentspaceRestrictedUser) 역할을 부여합니다. setIamPolicy메서드를 사용하여 액세스해야 하는 각 특정 앱에 대해 사용자에게 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser) 역할을 부여합니다. 자세한 내용은 앱의 IAM 정책 관리를 참고하세요.
앱의 IAM 정책 관리
Gemini Enterprise 앱에 대한 액세스를 관리하려면 getIamPolicy 및 setIamPolicy API 메서드를 사용하면 됩니다.
다음 단계에서는 현재 정책을 가져온 다음 이를 업데이트하여 사용자 액세스 권한을 부여하거나 취소하는 방법을 보여줍니다.
앱 IAM 정책 가져오기
getIamPolicy 메서드를 사용하여 앱의 현재 IAM 정책을 가져옵니다. 현재 권한을 덮어쓰지 않으려면 먼저 기존 정책을 가져오는 것이 좋습니다.
REST
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:getIamPolicy"
다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).APP_ID: 구성할 앱의 ID입니다.
앱 IAM 정책 업데이트
앱에 대한 사용자 액세스 권한을 부여하거나 취소하려면 setIamPolicy 메서드를 사용하여 앱의 IAM 정책을 업데이트합니다.
IAM 정책은 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser) 역할을 사용하여 사용자에게 앱에 대한 직접 액세스 권한을 부여합니다.
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"policy": {
"etag": "ETAG",
"bindings": [
{
"role": "roles/discoveryengine.agentspaceUser",
"members": [
"user:USER_EMAIL",
"group:GROUP_EMAIL",
"principal://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID",
"principalSet://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/attribute.NAME/VALUE"
]
}
]
}
}' \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"
다음을 바꿉니다.
ETAG:getIamPolicy메서드를 사용했을 때 응답으로 받은etag값입니다.USER_EMAIL,GROUP_EMAIL: 하나 이상의 사용자 또는 그룹 이메일 주소입니다.user및group외에도principal및principalSet는 워크로드 아이덴티티 제휴의 유효한 구성원 유형입니다.액세스 권한을 부여하려면
members배열에 주 구성원을 추가합니다. 예를 들면"user:cloudysanfrancisco@gmail.com"또는"group:mcymbalgroup@google.com"입니다.액세스 권한을 취소하려면
members배열에서 주 구성원을 삭제합니다.
POOL_ID: 워크로드 아이덴티티 풀의 ID입니다.SUBJECT_ID: 특정 ID의 주체 식별자입니다.NAME: 속성의 이름입니다.VALUE: 속성 값PROJECT_ID: 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).APP_ID: 구성할 앱의 ID입니다.
다음 단계
IAM 정책이 있는 앱을 삭제하려면 앱을 삭제하기 전에 정책에서 사용자를 삭제하면 됩니다. 자세한 내용은 IAM 정책이 있는 앱 삭제를 위한 권장사항을 참고하세요.