External API 인증 및 시크릿

이 항목에서는 External API 인증 및 시크릿에 대한 개념을 제공합니다.

이 항목의 내용:

개요

External API 인증은 Snowflake 외부에서 호스팅되는 서비스에 대한 인증 경로를 제공합니다. 서비스에 액세스하기 위한 API 요청에서는 API 요청을 인증해야 합니다. Snowflake는 External API 인증을 사용하는 동안 다음 인증 방법을 지원합니다.

  • 기본 인증.

  • 코드 권한 부여 흐름이 있는 OAuth.

  • 클라이언트 자격 증명 흐름이 있는 OAuth.

Snowflake는 RFC 7617 에 지정된 대로 API 요청 헤더에서 기본 인증(즉, 사용자 이름과 비밀번호)을 지원하는데, 여기서 인증 자격 증명은 Base64를 사용하여 인코딩됩니다. 마찬가지로, Snowflake는 RFC 6749 에 지정된 대로 OAuth 2.0을 지원합니다. Snowflake에서 인증 자격 증명은 시크릿이라는 오브젝트에서 안전하게 저장되고 액세스됩니다. ServiceNow용 Snowflake Connector 와 같은 Snowflake 외부의 서비스에 액세스하기 위해 시크릿은 커넥터와 함께 사용됩니다. Snowflake는 External API 인증 을 위한 보안 통합을 사용하여 OAuth 흐름을 사용할 때 Snowflake 외부에서 호스팅되는 서비스에 연결할 수 있습니다.

시크릿은 중요한 정보를 저장하고 RBAC 를 사용하여 중요한 정보에 대한 액세스를 제한하며 Snowflake 키 암호화 계층 구조 를 사용하여 암호화되는 스키마 수준 오브젝트입니다. 시크릿 오브젝트에 있는 정보는 자격 증명 모음 마스터 키 라는 특수 계정 수준 키를 사용하여 암호화됩니다. 또한 고객 관리 키 는 Snowflake 계정이 이 기능을 사용하도록 활성화된 경우 자격 증명 모음 마스터 키의 생성에 사용됩니다. 시크릿이 생성되면 통합 및 외부 함수와 같은 전용 Snowflake 구성 요소만 중요한 정보를 읽을 수 있습니다.

예를 들어 외부 함수는 Snowflake 외부의 서비스에 API 요청을 하기 위해 인증 자격 증명을 API 인증 헤더로 전달하기 위해 시크릿에 액세스하고 읽어야 합니다. 커넥터 설치 프로세스 중에 시크릿을 외부 함수에 바인딩하게 됩니다. 하지만 사용자가 시크릿에 대해 DESCRIBE SECRET 작업을 실행하면 시크릿에 저장된 비밀번호 값이 절대로 노출되지 않습니다.

Snowflake는 시크릿의 API 인증에 사용되는 자격 증명의 중앙 집중식 관리 및 액세스 제어를 제공합니다. 커넥터 관리와 관련된 시크릿 및 역할 관리를 위해 직무 분리(즉, SoD)를 구현할 수 있습니다. 커넥터는 시크릿 이름만 사용해야 하며 커넥터 역할이 부여된 사용자는 시크릿에 저장된 중요한 정보를 볼 필요가 없습니다.

시크릿 관리하기

Snowflake는 시크릿 오브젝트를 관리하는 다음 명령을 제공합니다.

사용자가 시크릿을 생성, 사용 및 소유할 수 있는지 여부를 결정하기 위해 Snowflake에서 지원하는 권한은 다음과 같습니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

권한

사용법

CREATE

스키마에서 새 시크릿을 생성할 수 있습니다.

USAGE

시크릿을 사용할 수 있습니다.

OWNERSHIP

시크릿의 소유권을 이전하며, 시크릿에 대한 모든 권한을 부여할 수 있습니다. 시크릿의 속성 대부분을 변경하는 데 필요합니다.

다음 테이블은 시크릿 명령 작업과 필요한 권한 사이의 관계를 요약하여 제공합니다.

작업

권한

CREATE SECRET

상위 데이터베이스에 대한 USAGE 권한이 있는 역할 및 동일한 스키마에 대한 CREATE SECRET 권한이 있는 스키마.

ALTER SECRET

시크릿에 대한 OWNERSHIP 권한이 있는 역할.

DROP SECRET

시크릿에 대한 OWNERSHIP 권한이 있는 역할.

DESCRIBE SECRET

시크릿에 대한 USAGE 권한이 있는 역할.

SHOW SECRETS

시크릿에 대한 USAGE 권한이 있는 역할.

USE SECRET

시크릿에 대한 USAGE 권한이 있는 역할.

시크릿이 외부 함수와 함께 사용되는 경우 쿼리 런타임에 외부 함수를 생성하고 호출하는 역할에 이 권한이 필요합니다.

External API 인증 및 시크릿 사용하기

대표적인 예는 다음을 참조하십시오.

또한 계정 복제를 사용하여 시크릿을 복제할 수 있습니다. 자세한 내용은 복제 및 시크릿 섹션을 참조하십시오.