액세스 제어

에이전트를 빌드하기 위해 여러 팀 구성원이 공동작업하고 에이전트에 액세스하는 경우가 많습니다. 역할을 사용하면 주 구성원에게 부여된 액세스 및 권한을 제어할 수 있습니다.

Dialogflow CX 콘솔(문서 보기, 콘솔 열기) 또는 Identity and Access Management(IAM)로 Google Cloud Console(문서 보기, 콘솔 열기)을 사용하여 액세스를 구성할 수 있습니다. Google Cloud 콘솔은 주 구성원에게 IAM 역할을 부여하는 데 사용되며 Dialogflow 콘솔은 주 구성원에게 Dialogflow 에이전트 역할을 부여하는 데 사용됩니다. Dialogflow 에이전트 역할은 Dialogflow에서 정의한 편리한 사전 정의된 역할로, 특정 에이전트 또는 특정 에이전트의 하위 리소스에 대한 액세스를 제한합니다.

Google Cloud Console을 사용해야 하는 경우는 다음과 같습니다.

  • 에이전트를 소유한 프로젝트를 만든 사용자에게 IAM 프로젝트 소유자 역할이 기본으로 부여된 경우. 이 소유자는 프로젝트의 모든 에이전트에 대한 전체 액세스 권한을 가집니다. 프로젝트 소유자를 변경하려면 Google Cloud 콘솔을 사용해야 합니다.
  • Dialogflow CX 콘솔을 통해서만 에이전트 수준 액세스를 구성할 수 있는 경우. 프로젝트 수준 액세스를 구성하려면 Google Cloud 콘솔을 사용해야 합니다.
  • IAM 역할의 하위 집합에 해당하는 Dialogflow 에이전트 역할이 있는 경우. Dialogflow CX 콘솔에 없는 프로젝트 수준 또는 에이전트 수준의 역할을 부여하려면 Google Cloud 콘솔을 사용해야 합니다.
  • Vertex AI Conversation 사용자 인터페이스데이터 저장소 에이전트를 만드는 경우 Google Cloud 콘솔을 사용해야 합니다.

API를 사용하는 경우 에이전트에 요청을 보내는 하나 이상의 애플리케이션이 있을 수 있습니다. 이 경우 서비스 계정으로 액세스를 제어할 수 있습니다.

Dialogflow CX 콘솔로 액세스 제어

Dialogflow CX 콘솔을 사용하면 에이전트 수준 공유용으로 구성된 편리한 에이전트 역할을 부여할 수 있습니다. 이러한 역할은 특정 에이전트 또는 에이전트의 하위 리소스 하위 집합에 대한 액세스를 제한하는 IAM 조건이 있는 IAM 역할과 관련이 있습니다.

Dialogflow CX Console에서 에이전트 역할 구성에 액세스하려면 연결된 프로젝트의 프로젝트 IAM 관리자 역할을 부여받아야 합니다. 이 역할은 Google Cloud Console에서 부여됩니다.

Dialogflow 에이전트 역할 요약 IAM 역할
관리 콘솔 또는 API에서 에이전트를 생성, 업데이트, 쿼리, 인텐트 인식, 삭제할 수 있는 전체 액세스 권한을 제공합니다. Dialogflow > Dialogflow API 관리자
리더 콘솔 또는 API에서 에이전트를 쿼리(인텐트 인식은 아님)할 수 있는 읽기 액세스 권한을 제공합니다. Dialogflow > Dialogflow API 리더
클라이언트 콘솔 또는 API에서 인텐트를 인식할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow API 클라이언트
인텐트 관리자 콘솔 또는 API에서 에이전트의 인텐트를 생성, 업데이트, 삭제, 쿼리할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow 인텐트 관리자
항목 유형 관리자 콘솔 또는 API에서 에이전트의 항목 유형을 생성, 업데이트, 삭제, 쿼리할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow 항목 유형 관리자
웹훅 관리자 콘솔 또는 API에서 에이전트의 웹훅을 생성, 업데이트, 삭제, 쿼리할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow 웹훅 관리자
테스트 사례 관리자 콘솔 또는 API에서 에이전트의 테스트 사례를 생성, 업데이트, 삭제, 쿼리할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow 테스트 사례 관리자
흐름 편집자 콘솔 또는 API에서 특정 흐름을 업데이트, 쿼리하고 해당 흐름 리소스(페이지, 경로 그룹 및 버전)를 생성, 업데이트, 삭제 또는 쿼리할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow 흐름 편집자
환경 편집자 콘솔 또는 API에서 특정 환경을 업데이트, 쿼리하고 환경 리소스(실험)를 생성, 업데이트, 삭제, 쿼리할 수 있는 액세스 권한을 제공합니다. Dialogflow > Dialogflow 환경 편집자

에이전트의 설정에 공유 옵션이 있습니다. 에이전트 공유 설정을 열려면 다음 안내를 따르세요.

  1. Dialogflow CX 콘솔을 엽니다.
  2. Google Cloud 프로젝트를 선택합니다.
  3. 에이전트를 선택합니다.
  4. 에이전트 설정을 클릭합니다.
  5. 공유 탭을 클릭합니다.

주 구성원 추가

  1. Add(추가)를 클릭합니다.
  2. 사용자, 그룹 또는 서비스 계정의 이메일 주소를 입력합니다.
  3. 이메일 유형으로 사용자, 그룹 또는 서비스 계정을 선택합니다.
  4. 사용자가 Dialogflow CX Console에 액세스하는 데 필요한 Dialogflow 리더 역할이 기본적으로 추가됩니다.
  5. 역할 할당에서 역할 추가를 클릭합니다.
  6. 유형에서 역할 유형을 선택합니다.
  7. 흐름 편집기환경 편집기 역할의 경우 특정 흐름 또는 환경을 선택하거나 기본값인 모두 옵션을 유지합니다.
  8. 원하는 경우 역할 만료일을 설정합니다.
  9. 저장을 클릭합니다.

주 구성원 역할 변경

  1. 목록에서 주 구성원을 클릭합니다.
  2. 팝업에서 이 주 구성원 역할을 업데이트합니다.
  3. 저장을 클릭합니다.

주 구성원 삭제

  1. 목록에서 주 구성원을 찾습니다.
  2. 주 구성원의 삭제 버튼을 클릭합니다.
  3. OK를 클릭합니다.

Google Cloud 콘솔로 액세스 제어

IAM 설정으로 액세스를 제어할 수 있습니다. 권한의 추가, 편집, 제거에 대한 자세한 지침은 IAM 빠른 시작을 참조하세요.

아래 설정에 액세스하려면 Google Cloud 콘솔에서 IAM 페이지를 엽니다.

프로젝트에 사용자 또는 서비스 계정 추가

사용자 또는 서비스 계정에 Google Cloud 프로젝트에 대한 역할을 부여하여 권한을 제공할 수 있습니다. 사용자는 이메일 주소를 제공하여 추가됩니다. 서비스 계정도 연결된 이메일 주소를 제공하여 추가됩니다. 여러 프로젝트에서 서비스 계정 하나를 사용하려면 서비스 계정을 추가해야 합니다. 서비스 계정과 연결된 이메일 주소를 찾으려면 Google Cloud 콘솔에서 IAM 서비스 계정 페이지를 참조하세요.

주 구성원을 추가하려면 다음 안내를 따르세요.

  1. 페이지 상단의 추가 버튼을 클릭합니다.
  2. 주 구성원의 이메일 주소를 입력합니다.
  3. 역할을 선택합니다.
  4. 저장을 클릭합니다.

권한 변경

  1. 주 구성원의 수정 버튼을 클릭합니다.
  2. 다른 역할을 선택합니다.
  3. 저장을 클릭합니다.

주 구성원 삭제

  1. 주 구성원의 삭제 버튼을 클릭합니다.

하나의 에이전트에 대한 액세스를 제한하는 조건 추가

주 구성원을 추가하거나 수정할 때 하나의 에이전트에 대한 액세스를 제한하는 IAM 조건을 만들 수 있습니다.

예를 들면 다음과 같습니다.

{
    "expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID\")",
    "title": "For Dialogflow Agent AGENT_ID"
}

이 조건은 특정 에이전트에 대한 기본 액세스 권한을 부여합니다. 예를 들어 이 조건의 서비스 계정은 Dialogflow API를 호출하여 프로젝트 조건에 지정된 에이전트에만 액세스할 수 있을 뿐 프로젝트의 다른 에이전트에는 액세스할 수 없습니다.

주 구성원에게 부여된 역할에 이 조건을 추가하려면 다음 안내를 따르세요.

  1. 주 구성원을 선택합니다.
  2. 주 구성원의 수정 버튼을 클릭합니다.
  3. 조건 추가를 클릭합니다.
  4. 제목 필드에 For Dialogflow Agent AGENT_ID를 입력하고 AGENT_ID를 에이전트 ID로 바꿉니다.
  5. 설명을 추가할 수 있습니다.
  6. 조건 편집기를 선택하여 조건을 만듭니다.
  7. resource.name.startsWith("projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID") 표현식을 추가하고 AGENT_ID를 에이전트 ID로, PROJECT_ID를 프로젝트 ID로 바꿉니다.
  8. 저장을 클릭합니다.

IAM 역할

다음 표에는 Dialogflow CX와 관련된 일반적인 IAM 역할이 나와 있습니다. 표의 권한 요약에는 다음 용어가 사용됩니다.

  • 전체 액세스 권한: 액세스를 수정하고 리소스를 생성, 삭제, 수정, 읽을 수 있는 권한입니다.
  • 수정 액세스 권한: 리소스를 생성, 삭제, 수정, 읽을 수 있는 권한입니다.
  • 세션 액세스 권한: 인텐트 감지, 컨텍스트 업데이트, 세션 항목 업데이트 또는 Agent Assist 대화 상호작용과 같은 대화 중에 런타임 전용 리소스의 메서드를 호출하는 권한입니다.
  • 읽기 액세스 권한: 리소스를 읽을 수 있는 권한입니다.
IAM 역할 권한 요약 권한 세부정보
프로젝트 >
소유자
모든 Google Cloud 및 Dialogflow 리소스에 대한 전체 액세스 권한이 필요한 프로젝트 소유자에게 부여:
  • 모든 Google Cloud 프로젝트 리소스에 대한 전체 액세스 권한(Google Cloud 콘솔 또는 API 사용)
  • Dialogflow 콘솔을 사용하는 에이전트에 대한 전체 액세스 권한
  • API를 사용하여 인텐트를 감지할 수 있음
IAM 기본 역할 정의를 참조하세요.
프로젝트 >
편집자
모든 Google Cloud 및 Dialogflow 리소스에 대한 수정 액세스 권한이 필요한 프로젝트 편집자에게 부여:
  • 모든 Google Cloud 프로젝트 리소스에 대한 수정 액세스 권한(Google Cloud 콘솔 또는 API 사용)
  • Dialogflow 콘솔을 사용하는 에이전트에 대한 수정 액세스 권한
  • API를 사용하여 인텐트를 감지할 수 있음
IAM 기본 역할 정의를 참조하세요.
프로젝트 >
뷰어
모든 Google Cloud 및 Dialogflow 리소스에 대한 읽기 액세스 권한이 필요한 프로젝트 뷰어에게 부여:
  • 모든 Google Cloud 프로젝트 리소스에 대한 읽기 액세스 권한(Google Cloud 콘솔 또는 API 사용)
  • Dialogflow 콘솔 또는 API를 사용하는 에이전트에 대한 읽기 액세스 권한이며 시뮬레이터를 사용할 수 없습니다.
  • API를 사용하여 인텐트를 감지할 수 없음
IAM 기본 역할 정의를 참조하세요.
프로젝트 >
IAM 관리자
Dialogflow 에이전트 역할 구성에 대한 수정 액세스 권한이 필요한 프로젝트 IAM 관리자에게 부여합니다. IAM 리소스 관리자 역할 정의를 참조하세요.
프로젝트 >
브라우저
폴더, 조직, IAM 정책을 비롯한 프로젝트의 계층 구조를 탐색할 수 있는 읽기 액세스가 필요한 프로젝트 브라우저에 부여:
  • Google Cloud 프로젝트 계층 구조에 대한 읽기 액세스 권한입니다.
  • Dialogflow 콘솔을 사용하는 에이전트에 대한 액세스 권한이 없음
  • API를 사용하여 인텐트를 감지할 수 없음
IAM 프로젝트 역할 정의를 참조하세요.
Dialogflow >
Dialogflow API 관리자
Dialogflow 관련 리소스에 대한 전체 액세스 권한이 필요한 Dialogflow API 관리자에게 부여합니다.
  • Google Cloud 콘솔 또는 API를 사용하는 모든 Dialogflow 리소스에 대한 전체 액세스 권한
  • Dialogflow 콘솔을 사용하는 에이전트에 대한 전체 액세스 권한
  • API를 사용하여 인텐트를 감지할 수 있음
Dialogflow IAM 역할 정의를 참조하세요.
Dialogflow >
Dialogflow API 클라이언트
API를 사용하여 인텐트 인식 호출을 수행하는 Dialogflow API 클라이언트에 부여합니다.
  • Dialogflow 시뮬레이터 또는 API를 사용하는 런타임 Dialogflow 리소스에 대한 세션 액세스 권한입니다.
  • Dialogflow 콘솔을 사용하는 에이전트에 대한 전체 액세스 권한
  • API를 사용하여 인텐트를 감지할 수 있음
Dialogflow IAM 역할 정의를 참조하세요.
대화 상자 >
Dialogflow 콘솔 에이전트 편집기
기존 에이전트를 수정하는 Dialogflow CX 콘솔 편집자에게 부여합니다.
  • Google Cloud 콘솔을 사용하는 모든 Dialogflow 리소스에 대한 전체 액세스 권한
  • Dialogflow 콘솔을 사용하는 대부분의 에이전트 데이터에 대한 수정 액세스 권한
  • API를 사용하여 인텐트를 감지할 수 있음
Dialogflow IAM 역할 정의를 참조하세요.
Dialogflow >
Dialogflow API 리더
API를 사용하여 Dialogflow 관련 읽기 전용 호출을 수행하는 Dialogflow API 클라이언트에 부여합니다.
  • Google Cloud 콘솔 또는 API를 사용하는 모든 Dialogflow 리소스에 대한 읽기 액세스 권한
  • Dialogflow 콘솔을 사용하는 에이전트에 대한 읽기 액세스 권한이며 시뮬레이터를 사용할 수 없습니다.
  • API를 사용하여 인텐트를 감지할 수 없음
Dialogflow IAM 역할 정의를 참조하세요.
검색 엔진 관리자 Vertex AI Agents 사용자 인터페이스로 데이터 스토어 에이전트를 만드는 사용자에게 부여합니다. 기타 역할 정의를 참조하세요.

OAuth

Google 클라이언트 라이브러리를 사용하여 Dialogflow에 액세스하는 경우 라이브러리가 구현을 처리하므로 OAuth를 직접 사용할 필요가 없습니다. 그러나 자체 클라이언트를 구현하는 경우 자체 OAuth 흐름을 구현해야 할 수도 있습니다. Dialogflow API에 액세스하려면 다음 OAuth 범위 중 하나가 필요합니다.

  • https://www.googleapis.com/auth/cloud-platform (모든 프로젝트 리소스에 대한 액세스 권한)
  • https://www.googleapis.com/auth/dialogflow (Dialogflow 리소스에 대한 액세스 권한)

Cloud Storage 액세스와 관련된 요청

일부 Dialogflow 요청은 데이터 읽기 또는 쓰기를 위해 Cloud Storage의 객체에 액세스합니다. 이러한 요청 중 하나를 호출하면 Dialogflow가 호출자를 대신하여 Cloud Storage 데이터에 액세스합니다. 즉, 요청 인증에 Dialogflow 및 Cloud Storage 객체에 액세스할 수 있는 권한이 있어야 합니다.

Google 클라이언트 라이브러리 및 IAM 역할을 사용할 때 Cloud Storage 역할에 대해서는 Cloud Storage 액세스 제어 가이드에서 자세히 알아보세요.

자체 클라이언트를 구현하여 OAuth를 사용할 때는 다음 OAuth 범위를 사용해야 합니다.

  • https://www.googleapis.com/auth/cloud-platform (모든 프로젝트 리소스에 대한 액세스 권한)