이 페이지에서는 Gemini Enterprise 관리자가Google Cloud 콘솔, Google Cloud CLI 또는 REST API를 사용하여 특정 Gemini Enterprise 앱 및 데이터 스토어에 대한 액세스를 제한하도록 세부적인 리소스 수준 IAM 권한을 구성하는 방법을 설명합니다.
데이터 스토어 권한 또는 맞춤 프로젝트 수준 역할을 구성하지 않고 앱 수준에서 최종 사용자 액세스만 제한해야 하는 경우 앱의 액세스 제어 구성을 참고하세요.
개요
기본적으로 Google Cloud프로젝트 수준에서 부여된 IAM 권한은 프로젝트의 모든 Gemini Enterprise 앱과 데이터 스토어에 적용됩니다. 조직에서 사용자를 단일 프로젝트 내의 특정 앱 또는 데이터 스토어로 제한해야 하는 경우 리소스 수준 액세스 제어를 사용할 수 있습니다.
리소스 수준 액세스 제어를 사용하면 관리자가 다음 작업을 할 수 있습니다.
- 동일한 프로젝트의 다른 앱을 노출하지 않고 특정 앱 및 연결된 데이터 저장소에 대한 액세스 권한을 사용자에게 부여합니다.
- 광범위한 프로젝트 전체 관리 권한을 부여하지 않고 특정 앱에 대한 앱 관리 또는 읽기 전용 모니터링을 위임합니다.
- 조직 데이터 경계 및 규정 준수 정책을 적용합니다.
액세스 제어 작동 방식
리소스 수준 액세스 권한을 부여하려면 관리자가 각 타겟 사용자 또는 그룹에 대해 두 개의 역할 바인딩을 구성해야 합니다. 권한은 독립적으로 평가됩니다. 앱의 데이터 스토어에서 답변을 받으려면 사용자에게 타겟 앱과 타겟 데이터 스토어 모두에 대한 권한이 부여되어야 합니다.
| 역할 바인딩 수준 | 역할 유형 | 목적, 범위, 예시 역할 |
|---|---|---|
| 프로젝트 수준 | 커스텀 역할 |
이 가이드에서 만드는 맞춤 역할은 사용자가 특정 앱 또는 데이터 스토어 콘텐츠를 노출하지 않고도 프로젝트 전반에서 콘솔 등록정보 페이지를 인증하거나 로드하는 데 필요한 권한을 부여합니다. 예시 역할: |
| 리소스 수준 | 사전 정의된 역할 |
앱 또는 데이터 스토어 리소스에 할당하는 사전 정의된 역할은 해당 리소스에 대해서만 채팅, 설정 구성, 분석 보기와 같은 운영 권한을 부여합니다. 예시 역할:
|
예시 시나리오
Cymbal의 Google Cloud 프로젝트에 cymbal-ai-project
두 개의 앱과 여러 데이터 스토어가 포함되어 있다고 가정해 보겠습니다.
| 예시 시나리오: 앱 및 데이터 스토어 전반에서 액세스 제한 | |
|---|---|
| 컨텍스트 | Cymbal의 Google Cloud 프로젝트(이름: cymbal-ai-project)에는 다음 두 개의 앱이 포함되어 있습니다.
|
| 목표 | Alex (alex@cymbal.com)에게 Cymbal Finance 앱을 사용할 수 있는 액세스 권한을 부여하고 General Finance 데이터 스토어만 쿼리할 수 있도록 허용하는 동시에 Confidential Payroll 데이터 스토어 및 Cymbal HR 앱에 대한 액세스 권한은 거부합니다. |
| 필수 구성 |
액세스 제어를 구성하려면 다음 단계를 따르세요.
|
| 결과 | Alex가 로그인하면 Cymbal Finance 앱을 열고 General Finance 데이터 스토어를 쿼리할 수 있습니다. 기밀 급여 데이터 스토어가 동일한 앱에 연결되어 있지만 Alex는 이를 보거나 쿼리할 수 없습니다. Cymbal HR 앱에 액세스하거나 Cymbal HR 데이터 스토어를 쿼리하려는 시도도 거부됩니다. |
다음 다이어그램은 이 시나리오에서 프로젝트 수준 설정과 독립적인 리소스 수준 IAM 권한이 함께 작동하는 방식을 보여줍니다.

시작하기 전에
- Gemini Enterprise 관리자(
roles/discoveryengine.agentspaceAdmin) 역할이 있는지 확인합니다. - 액세스가 제한되어야 하는 사용자에게 프로젝트 수준 검색 엔진 역할이 할당되지 않았는지 확인합니다.
- 맞춤 프로젝트 수준 역할 만들기에서 타겟 페르소나에 필요한 맞춤 프로젝트 수준 역할을 만듭니다.
앱 및 데이터 스토어 액세스 제어 사용 설정
앱 및 데이터 스토어에 대한 상세 권한을 구성하거나 Google Cloud 콘솔에서 사용자 권한 탭을 보려면 먼저 Google Cloud 콘솔 또는 REST API를 사용하여 프로젝트에서 앱 및 데이터 스토어 액세스 제어를 사용 설정하세요.
콘솔
Google Cloud 콘솔에서 앱 및 데이터 스토어 액세스 제어를 사용 설정하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Gemini Enterprise > 설정 페이지로 이동합니다.
리소스 액세스 제어 탭을 선택합니다.
리소스 액세스 제어 전환 버튼을 사용 설정합니다.
저장을 클릭합니다.
리소스 액세스 제어를 사용 설정하시겠습니까? 대화상자에서 사용 설정을 클릭합니다.
REST
REST API를 사용하여 앱 및 데이터 스토어 액세스 제어를 사용 설정하려면 projects.patch 메서드를 호출합니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "x-goog-user-project: PROJECT_ID" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID?updateMask=customer_provided_config.resource_access_control_config.data_store_access_control_enabled" \
-d '{
"customer_provided_config": {
"resource_access_control_config": {
"data_store_access_control_enabled": true
}
}
}'
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
맞춤 프로젝트 수준 역할 만들기
커스텀 프로젝트 수준 역할은 모든 프로젝트 리소스를 노출하지 않고 권한을 부여합니다. 각 맞춤 역할은Google Cloud 프로젝트당 한 번만 만들면 됩니다.
맞춤 제한된 최종 사용자 역할 만들기
customRestrictedEndUser 역할은 최종 사용자가 Gemini Enterprise 승인 엔드포인트와 개발자 도구 구성 (discoveryengine.locations.buildAuthorizationUrl 및 discoveryengine.devToolsConfigs.get)을 로드하는 데 필요한 프로젝트 수준 권한을 부여합니다. 특정 앱이나 데이터 스토어를 검사하거나 쿼리하는 액세스 권한은 부여하지 않습니다.
콘솔
Google Cloud 콘솔에서 커스텀 역할을 만들려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 역할 페이지로 이동합니다.
Google Cloud 프로젝트를 선택합니다.
+ 맞춤 역할 만들기를 클릭합니다.
역할 세부정보를 입력합니다.
- 제목:
Custom Gemini Enterprise Restricted End User - 설명:
Base project-level permissions to access Gemini Enterprise apps. - 역할 ID:
customRestrictedEndUser - 역할 출시 단계: 정식 버전을 선택합니다.
- 제목:
+ 권한 추가를 클릭합니다.
다음 권한을 필터링하고 선택합니다.
discoveryengine.devToolsConfigs.getdiscoveryengine.locations.buildAuthorizationUrl
추가를 클릭합니다.
만들기를 클릭합니다.
gcloud
Google Cloud CLI를 사용하여 커스텀 역할을 만들려면 다음 단계를 따르세요.
gcloud iam roles describe을 실행하여 프로젝트에 역할이 있는지 확인합니다.gcloud iam roles describe customRestrictedEndUser --project=PROJECT_IDPROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.gcloud iam roles create를 실행하여 역할을 만듭니다.gcloud iam roles create customRestrictedEndUser \ --project=PROJECT_ID \ --title="Custom Gemini Enterprise Restricted End User" \ --description="Base project-level permissions to access Gemini Enterprise apps." \ --stage=GA \ --permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrlPROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.
REST
REST API를 사용하여 커스텀 역할을 만들려면 roles.create 메서드를 호출하세요.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"roleId": "customRestrictedEndUser",
"role": {
"title": "Custom Gemini Enterprise Restricted End User",
"description": "Base project-level permissions to access Gemini Enterprise apps.",
"stage": "GA",
"includedPermissions": [
"discoveryengine.devToolsConfigs.get",
"discoveryengine.locations.buildAuthorizationUrl"
]
}
}' \
"https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"
PROJECT_ID를 Google Cloud프로젝트 ID로 바꿉니다.
맞춤 제한된 관리자 역할 만들기
customRestrictedAdmin 역할은 위임된 관리자와 뷰어가 특정 앱 또는 데이터 스토어 콘텐츠를 보거나 수정할 수 있는 액세스 권한을 부여하지 않고도 Google Cloud 콘솔에서 리소스 목록과 사이드바를 볼 수 있도록 프로젝트 수준 권한을 부여합니다. 특정 앱 또는 데이터 스토어에 대한 관리 제어를 위임하려면 프로젝트 수준에서 이 맞춤 역할을 할당한 다음 타겟 리소스에 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin)를 직접 할당합니다.
콘솔
Google Cloud 콘솔에서 커스텀 역할을 만들려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 역할 페이지로 이동합니다.
Google Cloud 프로젝트를 선택합니다.
+ 역할 만들기를 클릭합니다.
역할 세부정보를 입력합니다.
- 제목:
Custom Gemini Enterprise Restricted Admin - 설명:
Base project-level permissions to list and view Gemini Enterprise configuration pages. - 역할 ID:
customRestrictedAdmin - 역할 출시 단계: 정식 버전을 선택합니다.
- 제목:
+ 권한 추가를 클릭합니다.
다음 권한을 필터링하고 선택합니다.
discoveryengine.aclConfigs.getdiscoveryengine.collections.listdiscoveryengine.dataStores.listdiscoveryengine.devToolsConfigs.getdiscoveryengine.engines.listdiscoveryengine.licenseConfigs.listdiscoveryengine.locations.buildAuthorizationUrldiscoveryengine.locations.getConnectorSourcediscoveryengine.locations.listConnectorSourcesdiscoveryengine.projects.getdiscoveryengine.userStores.listUserLicensesresourcemanager.projects.get
추가를 클릭합니다.
만들기를 클릭합니다.
gcloud
Google Cloud CLI를 사용하여 커스텀 역할을 만들려면 다음 단계를 따르세요.
gcloud iam roles describe을 실행하여 프로젝트에 역할이 있는지 확인합니다.gcloud iam roles describe customRestrictedAdmin --project=PROJECT_IDPROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.gcloud iam roles create를 실행하여 역할을 만듭니다.gcloud iam roles create customRestrictedAdmin \ --project=PROJECT_ID \ --title="Custom Gemini Enterprise Restricted Admin" \ --description="Base project-level permissions to list and view Gemini Enterprise configuration pages." \ --stage=GA \ --permissions=discoveryengine.aclConfigs.get,discoveryengine.collections.list,discoveryengine.dataStores.list,discoveryengine.devToolsConfigs.get,discoveryengine.engines.list,discoveryengine.licenseConfigs.list,discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.getConnectorSource,discoveryengine.locations.listConnectorSources,discoveryengine.projects.get,discoveryengine.userStores.listUserLicenses,resourcemanager.projects.getPROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.
REST
REST API를 사용하여 커스텀 역할을 만들려면 roles.create 메서드를 호출하세요.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"roleId": "customRestrictedAdmin",
"role": {
"title": "Custom Gemini Enterprise Restricted Admin",
"description": "Base project-level permissions to list and view Gemini Enterprise configuration pages.",
"stage": "GA",
"includedPermissions": [
"discoveryengine.aclConfigs.get",
"discoveryengine.collections.list",
"discoveryengine.dataStores.list",
"discoveryengine.devToolsConfigs.get",
"discoveryengine.engines.list",
"discoveryengine.licenseConfigs.list",
"discoveryengine.locations.buildAuthorizationUrl",
"discoveryengine.locations.getConnectorSource",
"discoveryengine.locations.listConnectorSources",
"discoveryengine.projects.get",
"discoveryengine.userStores.listUserLicenses",
"resourcemanager.projects.get"
]
}
}' \
"https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"
PROJECT_ID를 Google Cloud프로젝트 ID로 바꿉니다.
기존 커스텀 역할 업데이트하기
프로젝트에 맞춤 역할이 이미 있고 누락된 권한을 추가해야 하는 경우 역할을 업데이트합니다.
콘솔
Google Cloud 콘솔에서 커스텀 역할을 업데이트하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 역할 페이지로 이동합니다.
커스텀 역할을 만든 Google Cloud 프로젝트를 선택합니다.
맞춤 탭을 선택하거나 목록을 필터링하여 맞춤 역할을 찾습니다(
customRestrictedEndUser또는customRestrictedAdmin).맞춤 역할의 이름을 클릭합니다.
역할 수정을 클릭합니다.
+ 권한 추가를 클릭합니다.
추가할 권한을 검색하여 선택한 다음 추가를 클릭합니다.
저장을 클릭합니다.
gcloud
Google Cloud CLI를 사용하여 기존 커스텀 역할을 업데이트하려면 gcloud iam roles update를 실행합니다.
제한된 최종 사용자 역할의 경우 다음 명령어를 실행합니다.
gcloud iam roles update customRestrictedEndUser \ --project=PROJECT_ID \ --add-permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrlPROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.제한된 관리자 역할의 경우 다음 명령어를 실행합니다.
gcloud iam roles update customRestrictedAdmin \ --project=PROJECT_ID \ --add-permissions=discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.listConnectorSourcesPROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.
REST
REST API를 사용하여 맞춤 역할을 업데이트하려면 roles.patch 메서드를 호출합니다.
roles.patch는 includedPermissions 목록을 대체합니다. 역할에 포함할 모든 권한을 지정하세요.
제한된 최종 사용자 역할의 경우 다음 명령어를 실행합니다.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "includedPermissions": [ "discoveryengine.devToolsConfigs.get", "discoveryengine.locations.buildAuthorizationUrl" ] }' \ "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedEndUser?updateMask=includedPermissions"PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.제한된 관리자 역할의 경우 다음 명령어를 실행합니다.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "includedPermissions": [ "discoveryengine.aclConfigs.get", "discoveryengine.collections.list", "discoveryengine.dataStores.list", "discoveryengine.devToolsConfigs.get", "discoveryengine.engines.list", "discoveryengine.licenseConfigs.list", "discoveryengine.locations.buildAuthorizationUrl", "discoveryengine.locations.getConnectorSource", "discoveryengine.locations.listConnectorSources", "discoveryengine.projects.get", "discoveryengine.userStores.listUserLicenses", "resourcemanager.projects.get" ] }' \ "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedAdmin?updateMask=includedPermissions"PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.
프로젝트 수준에서 커스텀 역할 할당
타겟 사용자 또는 그룹에 맞춤 프로젝트 역할을 할당합니다.
콘솔
Google Cloud 콘솔을 사용하여 커스텀 역할을 할당하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
커스텀 역할을 만든 Google Cloud 프로젝트를 선택합니다.
액세스 권한 부여를 클릭하여 새 주 구성원을 추가하거나 기존 주 구성원을 수정합니다.
새 주 구성원에 사용자 또는 그룹 이메일 주소를 입력합니다.
페르소나를 위해 생성된 맞춤 역할을 선택합니다(예: 다음 중 하나).
- 맞춤 Gemini Enterprise 제한된 최종 사용자
- 맞춤 Gemini Enterprise 제한된 관리자
저장을 클릭합니다.
gcloud
Google Cloud CLI를 사용하여 커스텀 역할을 할당하려면 다음 명령어를 실행합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="projects/PROJECT_ID/roles/CUSTOM_ROLE_ID"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.CUSTOM_ROLE_ID: 할당할 맞춤 역할의 ID입니다(customRestrictedEndUser또는customRestrictedAdmin).USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.
REST
Cloud Resource Manager API를 사용하여 커스텀 역할을 할당하려면 읽기-수정-쓰기 패턴을 사용하여 다음 단계를 완료하세요.
getIamPolicy메서드를 사용하여 현재 정책과etag를 가져와 현재 IAM 정책을 가져옵니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.업데이트된 정책 페이로드와 함께
setIamPolicy메서드를 사용하여 업데이트된 IAM 정책을 설정합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "projects/PROJECT_ID/roles/CUSTOM_ROLE_ID", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"다음을 바꿉니다.
ETAG:getIamPolicy메서드를 사용했을 때 응답으로 받은etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.PROJECT_ID: Google Cloud프로젝트의 IDCUSTOM_ROLE_ID: 할당할 맞춤 프로젝트 수준 역할의 ID입니다. 다음 중 하나를 지정합니다.customRestrictedEndUser: 최종 사용자가 앱을 인증하고 액세스할 수 있는 프로젝트 권한을 부여합니다.customRestrictedAdmin: 관리자가 Google Cloud 콘솔에서 리소스 목록을 볼 수 있는 프로젝트 권한을 부여합니다.
USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.
앱 권한 구성
Google Cloud 콘솔 또는 REST API를 사용하여 타겟 앱 리소스에 리소스 수준 권한을 부여합니다.
앱 수준 IAM 정책에서 사전 정의된 역할 대신 커스텀 역할을 할당하려면 커스텀 역할에 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser) 또는 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin)와 같은 해당 사전 정의된 역할의 모든 권한이 포함되어 있는지 확인하세요.
콘솔
Google Cloud 콘솔에서 앱 권한을 구성하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Gemini Enterprise > Apps 페이지로 이동합니다.
타겟 앱을 선택합니다.
사용자 권한을 클릭하고 사용자 추가를 클릭합니다.
사용자 또는 그룹의 역할을 선택합니다.
- 사용자: Gemini Enterprise 사용자(
roles/discoveryengine.agentspaceUser)를 할당합니다. - 관리자: Gemini Enterprise 관리자(
roles/discoveryengine.agentspaceAdmin)를 할당합니다. - 뷰어: Gemini Enterprise 뷰어(
roles/discoveryengine.agentspaceViewer)를 할당합니다.
- 사용자: Gemini Enterprise 사용자(
저장을 클릭합니다.
REST
REST API를 사용하여 앱 권한을 구성하려면 읽기-수정-쓰기 패턴을 사용하여 다음 단계를 완료하세요.
getIamPolicy메서드를 사용하여 현재 정책과etag를 가져와 현재 IAM 정책을 가져옵니다.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입니다.
업데이트된 정책 페이로드와 함께
setIamPolicy메서드를 사용하여 업데이트된 IAM 정책을 설정합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "PREDEFINED_ROLE", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"다음을 바꿉니다.
ETAG:getIamPolicy메서드를 사용했을 때 응답으로 받은etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.USER_EMAIL: 사용자 또는 그룹의 이메일 주소 (예:alex@example.com).- 액세스 권한을 부여하려면
members배열에 사용자 이메일을 추가합니다. 각 이메일에는user:이 접두사로 붙습니다. 이메일 주소 앞뒤에 공백을 두지 마세요. - 액세스 권한을 취소하려면
members배열에서 사용자 이메일 주소를 삭제합니다.
- 액세스 권한을 부여하려면
PREDEFINED_ROLE: 앱에 할당할 사전 정의된 역할입니다. 예를 들어 최종 사용자의 경우 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser), 관리자의 경우 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin), 뷰어의 경우 Gemini Enterprise 뷰어(roles/discoveryengine.agentspaceViewer)입니다. 자세한 내용은 사전 정의된 역할을 참고하세요.PROJECT_ID:Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).APP_ID: 구성할 앱의 ID입니다.
데이터 스토어 권한 구성
데이터 권한을 구성하려면 Google Cloud 콘솔 또는 REST API를 사용하여 타겟 데이터 스토어에 리소스 수준 권한을 부여합니다. 최종 사용자는 명시적으로 권한이 부여된 데이터 스토어에만 연결하고 쿼리할 수 있습니다.
데이터 스토어 IAM 정책에서 사전 정의된 역할 대신 맞춤 역할을 할당하려면 맞춤 역할에 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser) 또는 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin)와 같은 해당 사전 정의된 역할의 모든 권한이 포함되어 있는지 확인하세요.
최종 사용자 문서 권한을 적용하는 서드 파티 커넥터의 경우 개별 문서에 대한 최종 사용자 액세스는 소스 시스템에서 동기화된 액세스 제어 목록 (ACL)에 의거하여 계속 관리됩니다 (IAM 액세스 권한을 부여해도 소스 ACL이 우회되지 않음).
데이터 스토어, 컬렉션, 항목 ID를 찾으려면 데이터 스토어 및 항목 세부정보 가져오기를 참고하세요.
콘솔
Google Cloud 콘솔에서 데이터 스토어 권한을 구성하려면 다음 단계를 따르세요. Google Cloud 콘솔에서 데이터 스토어에 할당된 권한은 기본 하위 항목에 자동으로 전파됩니다.
Google Cloud 콘솔에서 Gemini Enterprise > 데이터 스토어 페이지로 이동합니다.
데이터 스토어 이름을 클릭합니다.
사용자 권한 > 사용자 추가를 클릭합니다.
사용자 또는 그룹의 역할을 선택합니다.
- 사용자: Gemini Enterprise 사용자(
roles/discoveryengine.agentspaceUser)를 할당합니다. - 관리자: Gemini Enterprise 관리자(
roles/discoveryengine.agentspaceAdmin)를 할당합니다. - 뷰어: Gemini Enterprise 뷰어(
roles/discoveryengine.agentspaceViewer)를 할당합니다.
- 사용자: Gemini Enterprise 사용자(
저장을 클릭합니다.
REST
REST API를 사용하여 데이터 스토어 권한을 구성하려면 데이터 스토어 구성과 일치하는 섹션을 펼치세요.
엔티티가 있는 데이터 스토어
Jira, Salesforce, Confluence, SharePoint Online과 같이 여러 엔티티 유형이 포함된 서드 파티 커넥터에 이 옵션을 사용합니다. REST API를 사용하는 경우 권한이 상위 커넥터 컬렉션에서 하위 항목으로 자동으로 캐스케이드되지 않습니다. 상위 컬렉션 리소스와 모든 기본 항목 데이터 스토어에 동일한 권한을 부여해야 합니다 (일부 항목에만 권한을 구성하지 마세요).
엔티티가 있는 데이터 스토어의 권한을 구성하려면 다음 단계를 따르세요.
-
데이터 커넥터 컬렉션의 현재 IAM 정책을 가져옵니다.
getIamPolicy를 호출하여 현재 정책과etag를 가져옵니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:getIamPolicy"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).COLLECTION_ID: 데이터 커넥터의 컬렉션 ID입니다. 자세한 내용은 데이터 스토어 및 항목 세부정보 가져오기를 참고하세요.
-
데이터 커넥터 컬렉션에서 업데이트된 IAM 정책을 설정합니다.
etag및 역할 바인딩을 포함하여setIamPolicy를 호출합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "PREDEFINED_ROLE", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:setIamPolicy"
다음을 바꿉니다.
ETAG: 1단계에서getIamPolicy메서드를 사용했을 때 응답으로 받은etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.PREDEFINED_ROLE: 컬렉션에 할당할 사전 정의된 역할입니다. 예를 들어 최종 사용자의 경우 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser), 관리자의 경우 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin), 뷰어의 경우 Gemini Enterprise 뷰어(roles/discoveryengine.agentspaceViewer)가 있습니다. 자세한 내용은 사전 정의된 역할을 참고하세요.PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).COLLECTION_ID: 데이터 커넥터의 컬렉션 ID입니다.
-
엔티티 데이터 저장소의 현재 IAM 정책을 가져옵니다.
Gemini Enterprise에서 하위 항목 데이터 스토어는
default_collection아래에 있으며 커넥터 컬렉션 ID가 앞에 붙습니다.default_collection아래의 항목 데이터 스토어에서getIamPolicy을 호출합니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:getIamPolicy"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).DATA_STORE_ENTITY_ID: 항목 데이터 스토어의 ID입니다 (예:DataConnector3_entityA). 자세한 내용은 데이터 스토어 및 항목 세부정보 가져오기를 참고하세요.
-
엔티티 데이터 스토어에 업데이트된 IAM 정책을 설정합니다.
etag을 포함한 항목 데이터 스토어에서setIamPolicy를 호출합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "PREDEFINED_ROLE", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:setIamPolicy"
다음을 바꿉니다.
ETAG: 3단계에서getIamPolicy메서드를 사용했을 때 응답으로 받은etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.PREDEFINED_ROLE: 엔티티 데이터 스토어에 할당할 사전 정의된 역할입니다. 예를 들어 최종 사용자의 경우 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser), 관리자의 경우 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin), 뷰어의 경우 Gemini Enterprise 뷰어(roles/discoveryengine.agentspaceViewer)가 있습니다. 자세한 내용은 사전 정의된 역할을 참고하세요.PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).DATA_STORE_ENTITY_ID: 항목 데이터 스토어의 ID입니다.
데이터 커넥터 아래의 각 항목 데이터 스토어에 대해 3단계와 4단계를 반복합니다. 나중에 커넥터를 구성하여 추가 항목 유형을 동기화하는 경우 새로 생성된 각 항목 데이터 스토어에 IAM 정책을 구성합니다.
엔티티가 없는 데이터 스토어
Cloud Storage, BigQuery 또는 엔티티가 포함되지 않은 데이터 소스와 같은 독립형 데이터 스토어에 이 옵션을 사용합니다. default_collection 아래의 단일 데이터 스토어 리소스에 직접 권한을 설정합니다.
엔티티가 없는 데이터 스토어의 권한을 구성하려면 다음 단계를 따르세요.
-
데이터 스토어의 현재 IAM 정책을 가져옵니다.
getIamPolicy를 호출하여 현재 정책과etag를 가져옵니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:getIamPolicy"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).DATA_STORE_ID: 데이터 스토어의 ID입니다. 자세한 내용은 데이터 스토어 및 항목 세부정보 가져오기를 참고하세요.
-
데이터 스토어에서 업데이트된 IAM 정책을 설정합니다.
etag및 역할 바인딩을 포함하여setIamPolicy를 호출합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "PREDEFINED_ROLE", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:setIamPolicy"
다음을 바꿉니다.
ETAG: 1단계에서getIamPolicy메서드를 사용했을 때 응답으로 받은etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.PREDEFINED_ROLE: 데이터 스토어에 할당할 사전 정의된 역할입니다. 예를 들어 최종 사용자의 경우 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser), 관리자의 경우 Gemini Enterprise 관리자(roles/discoveryengine.agentspaceAdmin), 뷰어의 경우 Gemini Enterprise 뷰어(roles/discoveryengine.agentspaceViewer)가 있습니다. 자세한 내용은 사전 정의된 역할을 참고하세요.PROJECT_ID: Google Cloud 프로젝트의 ID입니다.ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).DATA_STORE_ID: 데이터 스토어의 ID입니다.
Gemini Notebook Enterprise 및 AI 개발자 도구 기능에 대한 액세스 권한 부여
프로젝트 수준에서 customRestrictedEndUser가 할당된 제한된 사용자는 프로젝트 역할에 기본 승인 권한만 포함되어 있으므로 AI 개발자 도구 및 Gemini Notebook Enterprise와 같은 기능에 액세스할 수 없습니다.
프로젝트 수준에서 전체 Gemini Enterprise 사용자(roles/discoveryengine.agentspaceUser) 역할을 부여하면 격리가 재정의되고 프로젝트의 모든 앱과 데이터 스토어가 노출됩니다. 대신 관리자는 프로젝트 수준에서 좁은 기능별 역할을 부여할 수 있습니다.
Gemini Notebook Enterprise에 대한 액세스 권한 부여
제한된 사용자가 앱이나 데이터 저장소를 노출하지 않고도 노트북을 만들고 사용할 수 있도록 Cloud NotebookLM 사용자(roles/discoveryengine.notebookLmUser) 역할을 부여합니다.
콘솔
Google Cloud 콘솔을 사용하여 액세스 권한을 부여하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
Google Cloud 프로젝트를 선택합니다.
권한 목록에서 사용자 또는 그룹을 찾은 다음 주 구성원 수정을 클릭합니다. 또는 액세스 권한 부여를 클릭하여 새 사용자를 추가합니다.
역할 할당 섹션에서 다른 역할 추가를 클릭합니다.
역할 선택 필드에서 Cloud NotebookLM 사용자(
roles/discoveryengine.notebookLmUser)를 검색하여 선택합니다.저장을 클릭합니다.
gcloud
Google Cloud CLI를 사용하여 액세스 권한을 부여하려면 다음 명령어를 실행합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/discoveryengine.notebookLmUser"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.
REST
REST API를 사용하여 액세스 권한을 부여하려면 setIamPolicy 메서드를 사용하여 프로젝트 IAM 정책을 업데이트합니다.
getIamPolicy메서드를 사용하여 현재 정책과etag를 가져와 현재 IAM 정책을 가져옵니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.roles/discoveryengine.notebookLmUser역할과 함께setIamPolicy메서드를 사용하여 업데이트된 IAM 정책을 설정합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "roles/discoveryengine.notebookLmUser", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"다음을 바꿉니다.
ETAG:getIamPolicy응답의etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.PROJECT_ID: Google Cloud프로젝트의 IDUSER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.
AI 개발자 도구에 대한 액세스 권한 부여
Gemini Enterprise 앱 또는 데이터 저장소를 노출하지 않고 AI 개발자 도구를 사용 설정하려면 Google Cloud를 위한 Gemini 사용자(roles/cloudaicompanion.user) 및 비즈니스 AI 코드 API 사용자 역할(roles/businessaicode.user) 역할을 부여합니다.
콘솔
Google Cloud 콘솔을 사용하여 액세스 권한을 부여하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
Google Cloud 프로젝트를 선택합니다.
권한 목록에서 사용자 또는 그룹을 찾은 다음 주 구성원 수정을 클릭합니다. 또는 액세스 권한 부여를 클릭하여 새 사용자를 추가합니다.
역할 할당 섹션에서 다음 역할을 각각 할당합니다.
- Google Cloud를 위한 Gemini 사용자 (
roles/cloudaicompanion.user) - Business AI Code API의 사용자 역할 (
roles/businessaicode.user)
- Google Cloud를 위한 Gemini 사용자 (
저장을 클릭합니다.
gcloud
Google Cloud CLI를 사용하여 액세스 권한을 부여하려면 다음 명령어를 실행합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/cloudaicompanion.user"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/businessaicode.user"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.USER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.
REST
REST API를 사용하여 액세스 권한을 부여하려면 setIamPolicy 메서드를 사용하여 프로젝트 IAM 정책을 업데이트합니다.
getIamPolicy메서드를 사용하여 현재 정책과etag를 가져와 현재 IAM 정책을 가져옵니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.roles/cloudaicompanion.user및roles/businessaicode.user역할과 함께setIamPolicy메서드를 사용하여 업데이트된 IAM 정책을 설정합니다.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "policy": { "etag": "ETAG", "bindings": [ { "role": "EXISTING_ROLE", "members": [ "user:EXISTING_USER_EMAIL" ] }, { "role": "roles/cloudaicompanion.user", "members": [ "user:USER_EMAIL" ] }, { "role": "roles/businessaicode.user", "members": [ "user:USER_EMAIL" ] } ] } }' \ "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"다음을 바꿉니다.
ETAG:getIamPolicy응답의etag값입니다.EXISTING_ROLE및EXISTING_USER_EMAIL: 유지하려는getIamPolicy메서드에서 반환된 기존 역할 및 주 구성원 바인딩입니다.PROJECT_ID: Google Cloud프로젝트의 IDUSER_EMAIL: 사용자 또는 그룹의 이메일 주소입니다.
다음 단계
IAM 정책이 있는 앱을 삭제하려면 앱을 삭제하기 전에 정책에서 사용자를 삭제하면 됩니다. 자세한 내용은 IAM 정책이 있는 앱 삭제를 위한 권장사항을 참고하세요.