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

시작하기 전에
Gemini Enterprise 관리자 역할이 있는지 확인합니다.
유효한 라이선스가 있는 모든 Gemini Enterprise 사용자에게 Gemini Enterprise 제한된 사용자 역할이 있는지 확인합니다.
프로젝트 수준 액세스에서 앱 수준 액세스로 전환
사용자를 특정 앱으로 제한하려면 프로젝트 수준 권한에서 해당 역할을 삭제한 다음 앱 수준에서 부여해야 합니다.
예를 들어 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser) 역할이 있는 사용자를 프로젝트 수준에서 앱 수준으로 이동하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
- 사용자를 찾아 프로젝트 수준 권한에서
roles/discoveryengine.agentspaceUser역할을 삭제합니다. setIamPolicy메서드를 사용하여 특정 앱에 대한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 정책이 있는 앱 삭제를 위한 권장사항을 참고하세요.