External Tokenization 사용하기¶
이 항목에서는 Snowflake에서 파트너 통합과 함께 외부 토큰화를 사용하는 방법과 사용자 지정 외부 토큰화 통합을 만드는 방법에 대한 지침을 제공합니다.
Snowflake는 AWS, Microsoft Azure, Google Cloud Platform에서 외부 토큰화를 지원합니다.
외부 토큰화 마스킹 정책을 태그에 할당하여 태그 기반 외부 토큰화를 제공할 수 있습니다. 태그에 마스킹 정책을 할당하는 자세한 방법은 태그 기반 마스킹 정책 섹션을 참조하십시오.
중요
외부 토큰화를 위해서는 Snowflake Standard Edition 에 포함된 외부 함수 쓰기 가 필요하며 토큰화 공급자와 함께 외부 함수를 사용할 수 있습니다.
그러나 토큰화 공급자와 함께 Snowflake 외부 토큰화를 통합하려면 Enterprise Edition 이상으로 업그레이드해야 합니다.
업그레이드에 대해 문의하려면 Snowflake 지원 에 문의하십시오.
외부 토큰화 파트너 통합¶
다음 파트너는 Snowflake에서 외부 토큰화를 촉진합니다. 이러한 파트너 통합을 사용하려면 파트너 설명서의 지침을 따르거나 파트너에게 문의하여 구성 프로세스를 시작하십시오.
사용자 지정 외부 토큰화 통합 만들기¶
외부 토큰화를 위한 사용자 지정 통합을 만들려면 다음 단계를 완료하십시오.
1단계: 외부 함수 만들기¶
Snowflake에서 외부 함수를 만들고 외부 함수와 통신하도록 클라우드 공급자 환경을 구성합니다. 자세한 내용은 다음을 참조하십시오.
2단계: 사용자 지정 역할에 마스킹 정책 권한 부여¶
보안 또는 개인정보보호 담당자 는 마스킹 정책 관리자(즉, 사용자 지정 역할: MASKING_ADMIN
)의 역할을 수행해야 하며 마스킹 정책을 정의, 관리 및 열에 적용할 수 있는 권한이 있어야 합니다.
Column-level Security 마스킹 정책과 관련하여 보안 또는 개인정보보호 담당자에게 부여할 수 있도록 Snowflake에서 제공하는 권한은 다음과 같습니다.
권한 |
설명 |
---|---|
CREATE MASKING POLICY |
이 스키마 수준 권한은 마스킹 정책을 생성할 수 있는 사용자를 제어합니다. |
APPLY MASKING POLICY |
이 계정 수준 권한은 열에 대한 마스킹 정책을 설정[해제]할 수 있는 사용자를 제어하며 기본적으로 ACCOUNTADMIN 역할에 부여됩니다. . 이 권한에서는 마스킹 정책을 열에 적용하는 것만 가능하며 액세스 제어 권한 에서 설명된 추가 테이블 권한을 제공하지 않습니다. |
APPLY ON MASKING POLICY |
선택 사항입니다. 이 정책 수준 권한은 정책 소유자가 열에 대한 지정된 마스킹 정책의 설정[해제] 작업을 오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한을 보유한 역할)로 분산시키기 위해 사용할 수 있습니다. . Snowflake는 임의 액세스 제어 를 지원하며, 이 경우에는 오브젝트 소유자도 데이터 관리자로 간주됩니다. . 정책 관리자가 오브젝트 소유자를 보호된 열의 데이터 관리자로 신뢰하는 경우 정책 관리자는 이 권한을 사용하여 정책 설정[해제] 작업의 적용을 분산시킬 수 있습니다. |
다음 예에서는 MASKING_ADMIN
역할을 생성하고 마스킹 정책 권한을 해당 역할에 부여합니다.
다음과 같이 마스킹 정책 관리자 사용자 지정 역할 생성:
use role useradmin; CREATE ROLE masking_admin;
masking_admin
역할에 권한 부여:
use role securityadmin; GRANT CREATE MASKING POLICY on SCHEMA <db_name.schema_name> to ROLE masking_admin; GRANT APPLY MASKING POLICY on ACCOUNT to ROLE masking_admin;
table_owner
역할이 ssn_mask
마스킹 정책을 설정하거나 설정 해제하도록 허용(선택 사항):
GRANT APPLY ON MASKING POLICY ssn_mask to ROLE table_owner;
여기서
db_name.schema_name
권한이 부여되어야 하는 스키마의 식별자를 지정합니다.
자세한 내용은 다음을 참조하십시오.
3단계: 사용자에게 사용자 지정 역할 부여¶
보안 책임자 또는 개인정보 보호 책임자 역할을 하는 사용자에게 MASKING_ADMIN
사용자 지정 역할을 부여합니다.
use role useradmin;
grant role masking_admin to user jsmith;
4단계: 마스킹 정책 만들기¶
이 대표적인 예에서 ANALYST
사용자 지정 역할의 사용자에게는 토큰화가 해제된 이메일 값이 표시됩니다. ANALYST
사용자 지정 역할이 없는 사용자에게는 토큰화된 값이 표시됩니다.
이메일 값의 토큰화를 해제하기 위한 외부 함수는 de_email()
입니다.
-- create masking policy
create or replace masking policy email_de_token as (val string) returns string ->
case
when current_role() in ('ANALYST') then de_email(val)
else val
end;
팁
기존 마스킹 정책을 업데이트하고 정책의 현재 정의를 확인해야 할 경우 GET_DDL 함수를 호출하거나 DESCRIBE MASKING POLICY 명령을 실행합니다.
5단계: 테이블 또는 뷰 열에 마스킹 정책 적용¶
이런 예에서는 테이블 생성 시에는 테이블 열에, 뷰 생성 시에는 뷰 열에 마스킹 정책이 적용되지 않는 것으로 가정합니다. CREATE TABLE 문이 포함된 테이블 또는 CREATE VIEW 문이 포함된 뷰 열을 만들 때 마스킹 정책을 테이블 열에 선택적으로 적용할 수 있습니다.
다음 문을 실행하여 테이블의 열 또는 뷰의 열에 정책을 적용합니다.
-- apply masking policy to a table column
alter table if exists user_info modify column email set masking policy email_de_token;
-- apply the masking policy to a view column
alter view user_info_v modify column email set masking policy email_de_token;
6단계: Snowflake에서 데이터 쿼리¶
Snowflake에서 ANALYST
사용자 지정 역할의 쿼리와 다른 역할의 쿼리를 실행하여 ANALYST
사용자 지정 역할이 없는 사용자에게 토큰화가 해제된 값이 표시되는지 확인합니다.
-- using the ANALYST custom role
use role ANALYST;
select email from user_info; -- should see plain text value
-- using the PUBLIC system role
use role public;
select email from user_info; -- should see tokenized value
외부 토큰화 모범 사례¶
시스템 동기화. AWS에서는 조직의 ID 공급자(IdP)에 있는 사용자 및 역할을 Snowflake 및 Protegrity와 동기화하는 것이 유용합니다. 사용자 및 역할이 동기화되지 않으면 외부 함수, API 통합, 마스킹 정책 및 토큰화 정책과 관련하여 예기치 않은 동작과 오류 메시지가 발생하고 복잡한 문제 해결이 수행될 수 있습니다. 한 가지 옵션은 SCIM 을 사용하여 IdP 및 Snowflake와 사용자 및 역할의 동기화를 유지하는 것입니다.
오류의 근본 원인. External Tokenization은 여러 시스템(예: IdP, Snowflake, Protegrity, AWS, Azure, GCP)을 조정해야 하므로 권한, 현재 제한 사항, 외부 함수, API 통합, 마스킹 정책 및 Snowflake에서의 External Tokenization을 위한 마스킹 정책이 있는 열을 항상 확인해야 합니다. 근본 원인을 확인하려면 다음을 참조하십시오.
다음 항목: