액세스 제어

여러 팀 구성원이 공동작업으로 에이전트를 빌드하고, 에이전트에 액세스할 서비스를 위해 협력하는 것은 일반적입니다. 역할을 사용하면 주 구성원에게 부여된 액세스와 권한을 제어할 수 있습니다.

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

ID 및 액세스 관리(IAM) 또는 Dialogflow 콘솔을 사용하여 액세스를 제어할 수 있습니다.

Dialogflow 콘솔은 에이전트를 만든 사용자에게 에이전트 관리자 역할을 제공합니다. 이 사용자는 에이전트와 연결된 프로젝트에서 IAM 프로젝트 소유자 역할을 자동으로 갖게 됩니다.

에이전트 관리자는 Dialogflow 콘솔에서 에이전트에 개발자와 검토자를 추가할 수 있습니다. Dialogflow 콘솔에서 개발자 또는 검토자 역할이 부여되면 사용자는 각각 IAM 프로젝트 편집자 역할 또는 IAM 프로젝트 뷰어 역할을 갖게 됩니다. 에이전트에 개발자와 검토자를 추가하는 다른 방법은 Google Cloud 콘솔에서 사용자에게 상응하는 IAM 프로젝트 편집자 또는 IAM 프로젝트 뷰어 역할을 부여하는 것입니다.

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

  • 관리자를 변경하거나, 한 에이전트에 여러 관리자를 추가하거나, 에이전트의 관리자를 삭제하려면 Google Cloud 콘솔을 사용해야 합니다.
  • 다른 Google Cloud 리소스(예: Cloud Functions)와의 통합이 있고, 애플리케이션에 전체 프로젝트 액세스 권한을 부여하지 않으려는 경우에는 IAM 용 Google Cloud 콘솔에서 Dialogflow API 역할(관리자, 클라이언트 또는 리더)을 할당해야 합니다.
  • IAM 역할의 하위 집합에 상응하는 Dialogflow 콘솔 역할이 있는 경우. Dialogflow 콘솔에 없는 역할을 부여하려면 Google Cloud 콘솔을 사용해야 합니다.

역할

다음 표에는 Dialogflow와 관련된 일반적인 역할, Dialogflow 콘솔 역할과 IAM 역할 간의 상관관계, 권한에 관한 세부정보가 나와 있습니다.

표의 권한 요약에는 다음 용어가 사용됩니다.

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

Google Cloud 콘솔로 액세스 제어

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

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

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

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

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

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

권한 변경

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

구성원 삭제

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

Dialogflow 콘솔로 액세스 제어

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

  1. Dialogflow ES 콘솔로 이동합니다.
  2. 왼쪽 사이드바 메뉴의 상단 근처에 있는 에이전트를 선택합니다.
  3. 에이전트 이름 옆에 있는 설정 버튼을 클릭합니다.
  4. 공유 탭을 클릭합니다. 공유 탭이 보이지 않는다면 필요한 에이전트 관리자 역할이 없는 것입니다.

사용자에게 액세스 수준을 보여주는 공유 탭

사용자 추가

  1. 새로운 사람 초대 아래에 사용자의 이메일 주소를 입력합니다.
  2. 역할을 선택합니다.
  3. 추가를 클릭합니다.
  4. 저장을 클릭합니다.

권한 변경

  1. 목록에서 사용자를 찾습니다.
  2. 다른 역할을 선택합니다.
  3. 저장을 클릭합니다.

사용자 삭제하기

  1. 목록에서 사용자를 찾습니다.

  2. 사용자의 삭제 버튼을 클릭합니다.

  3. 저장을 클릭합니다.

자동으로 생성된 서비스 계정

에이전트를 만들고 작업하는 경우 Dialogflow가 자동으로 일부 서비스 에이전트를 만듭니다.

이러한 서비스 에이전트에 부여된 역할을 확인하려면 IAM 페이지에서 Google 제공 역할 부여 포함 옵션을 사용 설정합니다.

이러한 서비스 에이전트의 키를 삭제, 편집 또는 다운로드하거나 이러한 서비스 에이전트를 사용하여 API를 직접 호출해서는 안 됩니다. Dialogflow 서비스에서는 에이전트가 사용하는 다양한 Google Cloud 서비스에 연결하는 데만 사용됩니다. 특정 Dialogflow 기능을 구성하는 경우 이메일별로 이러한 서비스 에이전트를 참조해야 할 수도 있습니다.

다음 표에서는 이러한 서비스 에이전트 중 일부를 설명합니다.

IAM 이메일 양식 목적
service-project-number
@gcp-sa-dialogflow.iam.gserviceaccount.com
통합 트래픽을 처리하는 서비스에 에이전트를 연결하는 데 사용됩니다.
firebase-adminsdk-alphanum
@project-id.iam.gserviceaccount.com
에이전트를 Google 어시스턴트 통합 트래픽을 처리하는 서비스에 연결하는 데 사용됩니다.
project-id
@appspot.gserviceaccount.com
에이전트를 Google 어시스턴트 통합 트래픽을 처리하는 서비스에 연결하는 데 사용됩니다.

전송 관리자 역할

에이전트의 관리자 역할을 이전하려면 기존 관리자가 위의 단계에 따라 새 관리자를 추가해야 합니다. 새 관리자가 부여된 역할을 수락하면 이전 관리자를 삭제해도 됩니다.

기존 관리자가 더 이상 조직에서 작업하지 않고 다른 직원에게 관리자 역할을 이전해야 하는 경우 다음 두 가지 옵션을 사용할 수 있습니다.

  • 에이전트의 프로젝트와 연결된 조직의 관리자에게 에이전트 관리자를 수정할 수 있는 권한이 있습니다.
  • 에이전트에 대한 읽기 권한이 있으면 에이전트를 내보내고 원하는 직원이 관리자인 에이전트로 가져올 수 있습니다. 이로 인해 에이전트가 마이그레이션되고 모든 통합이 업데이트되는 동안 실시간 프로덕션 에이전트의 다운타임이 발생할 수 있습니다.

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 (모든 프로젝트 리소스에 대한 액세스 권한)