오브젝트 태그 지정¶
이 항목에서는 Snowflake에서 태그를 사용하는 방법에 대한 개념과 지침을 제공합니다.
태그와 함께 마스킹 정책을 사용하는 방법에 대해 자세히 알아보려면 태그 기반 마스킹 정책 섹션을 참조하십시오.
이 항목의 내용:
태그란 무엇입니까?¶
태그를 사용하면 데이터 관리자는 중앙 집중식 또는 분산형 데이터 거버넌스 관리 방식으로 규정 준수, 검색, 보호 및 리소스 사용의 사용 사례를 위해 민감한 데이터를 모니터링할 수 있습니다.
태그는 다른 Snowflake 오브젝트에 할당할 수 있는 스키마 수준 오브젝트입니다. 태그를 Snowflake 오브젝트에 할당할 때 태그에 임의의 문자열 값을 할당할 수 있습니다. Snowflake는 태그 및 해당 문자열 값을 키-값 페어로 저장합니다. 태그는 스키마에 고유하며 태그 값은 항상 문자열이어야 합니다.
CREATE TAG 문을 사용하여 태그를 만들고 태그를 오브젝트에 할당할 때 태그 문자열 값을 지정합니다. 태그가 이미 존재한다고 가정하고 CREATE <오브젝트> 문을 사용하여 오브젝트를 만드는 동안 오브젝트에 태그를 할당할 수 있습니다. 또는 ALTER <오브젝트> 문을 사용하여 기존 오브젝트에 태그를 할당할 수 있습니다.
동시에 단일 태그를 다른 오브젝트 타입에 할당할 수 있습니다(예: 웨어하우스 및 테이블에 동시에). 할당할 때 태그 문자열 값은 중복되거나 고유할 수 있습니다. 예를 들어, 여러 테이블을 cost_center 태그에 할당할 수 있으며 태그의 문자열 값이 항상 sales일 수 있습니다. 아니면, 문자열 값이 다를 수 있습니다(예: engineering, marketing, finance). 태그를 정의하고 태그를 Snowflake 오브젝트에 연결한 후에는 태그를 쿼리하여 오브젝트에서의 태그 사용을 모니터링함으로써 모니터링, 감사 및 보고 등 데이터 거버넌스 작업을 간소화할 수 있습니다.
태그는 테이블, 뷰 및 열에 할당할 수 있으므로, 태그를 설정한 후 태그를 쿼리하면 민감한 정보가 포함된 여러 데이터베이스 오브젝트 및 열을 검색할 수 있습니다. 검색할 때 데이터 관리자는 행 액세스 정책 을 사용한 선택적 필터링 또는 데이터 토큰화, 완전 마스킹, 부분 마스킹 또는 마스킹 미수행을 결정하기 위한 마스킹 정책 사용과 같이 데이터를 가장 잘 활용할 수 있는 방법을 결정할 수 있습니다.
웨어하우스에 태그를 지정하면 리소스 사용을 정확하게 모니터링할 수 있습니다. 리소스에 대한 태그를 쿼리하면 비용 센터 또는 기타 조직 단위를 기준으로 편리하게 리소스를 그룹화할 수 있습니다. 또한, 태그를 사용하면 프로젝트와 같이 상대적으로 단기간의 비즈니스 활동을 편리하게 분석하여 어떤 리소스가 언제 어떻게 사용되었는지에 대한 세부적인 정보를 얻을 수 있습니다.
오브젝트 및 열에 대한 태그 할당량¶
각 태그의 문자열 값은 최대 256자가 될 수 있으며, 태그에 허용되는 값 을 지정하는 옵션이 있습니다.
다음 설명은 테이블과 뷰가 아닌 모든 오브젝트에 적용됩니다.
Snowflake에서는 단일 오브젝트에 설정할 수 있는 고유한 태그 키의 최대 수가 50개입니다. CREATE <오브젝트> 또는 ALTER <오브젝트> 문에서 100은 단일 문에 지정할 수 있는 최대 태그 수입니다.
고유 태그의 최대 개수는 테이블과 뷰의 열을 포함하여 테이블과 뷰에 대해 약간 다릅니다.
테이블, 뷰, 열¶
테이블 또는 뷰와 해당 열의 경우, 단일 CREATE <오브젝트> 또는 ALTER <오브젝트> 문에 지정할 수 있는 고유 태그의 최대 개수는 100개입니다. 이 전체 값에는 다음과 같은 제한이 있습니다.
단일 테이블 또는 뷰 오브젝트: 고유 태그 50개.
단일 테이블 또는 뷰에 결합된 모든 열: 고유 태그 50개.
예를 들어 테이블의 단일 열에 그 열에 대해 설정된 10개의 고유한 태그가 있는 경우 Snowflake에서는 다음을 허용합니다.
테이블에서 같은 열이나 다른 열 또는 테이블에 있는 열의 조합에서 추가 고유 태그 40개 설정.
테이블 자체에서 추가 고유 태그 50개 설정.
테이블 자체와 그 테이블의 열에 대해 고유 태그 50개의 제한이 충족되면 테이블 또는 테이블의 열에서 태그를 추가로 설정할 수 없습니다. 이때 테이블이나 테이블의 열에 추가 태그를 설정하려는 경우, 그다음에 고려해야 할 단계는 오브젝트에 대한 태그 할당량을 관리하는 방법입니다.
태그 할당량 관리하기¶
고유한 태그의 최대 개수 50개에는 DROP TAG 문을 사용해 태그를 삭제한 시점부터 24시간 동안 삭제한 태그가 포함됩니다. 기간을 이렇게 정하는 이유는 필요한 경우에 태그를 삭제한 사용자가 UNDROP TAG 문을 실행할 수 있도록 하기 위해서입니다. UNDROP TAG 작업이 24시간의 간격 내에 실행되면 Snowflake가 해당 삭제 작업 이전의 최신 상태였던 태그 할당(즉, 참조)을 복원합니다.
24시간의 기간이 만료되면 Snowflake가 삭제된 태그와 관련된 모든 참조를 제거합니다. 이때, 삭제된 태그를 한 번 참조한 오브젝트 또는 열에 새 태그를 할당할 수 있습니다.
오브젝트에 대한 태그 할당량을 관리하려면 다음 절차를 따르십시오.
Account Usage에서 TAG_REFERENCES 뷰를 쿼리하여 태그 할당을 결정합니다.
오브젝트 또는 열에서 태그를 설정 해제합니다. 예:
오브젝트의 경우 해당
ALTER <오브젝트> ... UNSET TAG
명령을 사용합니다.테이블 또는 뷰 열의 경우 해당
ALTER { TABLE | VIEW } ... { ALTER | MODIFY } COLUMN ... UNSET TAG
명령을 사용합니다.DROP TAG 문을 사용하여 태그를 삭제합니다.
태그 값 지정하기¶
태그 속성을 사용하여 ALLOWED_VALUES
오브젝트 에서 태그가 설정될 때 태그에 할당할 수 있는 문자열 값을 지정할 수 있습니다. 단일 태그에 가능한 문자열 값의 최대 개수는 300개입니다.
CREATE TAG 문으로 태그를 만들거나 바꿀 때, 또는 ALTER TAG 문으로 기존 태그 키를 수정하는 동안 이러한 값을 지정할 수 있습니다. ALTER TAG 문은 태그에 허용되는 값 추가 및 태그에 대한 기존 값 삭제를 지원합니다.
태그에 대해 허용된 값의 목록을 확인하려면 GET_DDL 함수 또는 SYSTEM$GET_TAG_ALLOWED_VALUES 함수를 호출하십시오.
예:
'finance'
와'engineering'
의 두 가지 허용된 문자열 값만으로cost_center
로 명명된 태그를 생성합니다.create tag cost_center allowed_values 'finance', 'engineering';허용되는 값을 확인합니다.
select get_ddl('tag', 'cost_center') +------------------------------------------------------------------------------+ | GET_DDL('tag', 'cost_center') | |------------------------------------------------------------------------------| | create or replace tag cost_center allowed_values = 'finance', 'engineering'; | +------------------------------------------------------------------------------+허용된 문자열 값으로
'marketing'
을 추가하도록cost_center
로 명명된 태그를 수정합니다.alter tag cost_center add allowed_values 'marketing';허용된 문자열 값으로
'engineering'
을 삭제하도록cost_center
로 명명된 태그를 수정합니다.alter tag cost_center drop allowed_values 'engineering';
주어진 태그에 대해 허용된 문자열 값의 목록을 얻으려면 GET_DDL 함수 또는 SYSTEM$GET_TAG_ALLOWED_VALUES 함수를 호출하십시오. 예를 들어 태그 cost_center
가 governance
로 명명된 데이터베이스와 tags
로 명명된 스키마에 저장되어 있다고 가정합니다.
select system$get_tag_allowed_values('governance.tags.cost_center'); +--------------------------------------------------------------+ | SYSTEM$GET_TAG_ALLOWED_VALUES('GOVERNANCE.TAGS.COST_CENTER') | |--------------------------------------------------------------| | ["finance","marketing"] | +--------------------------------------------------------------+
태그 계보¶
태그는 Snowflake 보안 오브젝트 계층 구조에 따라 상속됩니다. Snowflake는 사용자 Snowflake 환경의 보안 오브젝트 계층 구조에 최대한 가깝게 태그 키를 정의하는 것을 권장합니다.
태그 상속이란 태그가 테이블에 적용되는 경우 해당 태그도 해당 테이블의 열에 적용됨을 의미합니다. 이러한 동작을 태그 계보라고 합니다.
주어진 오브젝트에서 상속된 태그를 재정의할 수 있습니다. 예를 들어 테이블 열이 sales라는 문자열 값과 함께 cost_center라는 이름의 태그를 상속하는 경우, sales_na와 같은 더 구체적인 태그 문자열 값으로 태그를 업데이트하여 북미 영업 비용 센터를 지정할 수 있습니다. 또한, 새 태그를 테이블 열에 적용할 수도 있습니다. ALTER TABLE … ALTER COLUMN 문을 사용하여 해당 열에서 태그 문자열 값을 업데이트하고 열에 하나 이상의 추가 태그를 설정합니다.
태그 키를 정의하고 태그를 Snowflake 오브젝트에 할당한 후에는 지정된 테이블 함수를 사용하여 태그, 태그 참조 및 태그 계보를 모니터링하거나 이 항목의 SQL로 태그 모니터링하기 에서와 같이 뷰를 쿼리할 수 있습니다.
참고
태그 계보에는 중첩된 오브젝트에 대한 전파 가 포함되지 않습니다. 예:
table_1
»view_1
»materialized_view_1
기본 테이블 또는 뷰와 관련하여 중첩된 오브젝트가 이미 존재하는 경우, 기본 오브젝트에 태그가 설정되어 있더라도 중첩된 오브젝트에 자동으로 태그가 설정되지는 않습니다. 이 예에서는 table_1
에 태그를 설정해도 같은 태그가 view_1
과 materialized_view_1
에 설정되지는 않습니다. 이 동작은 열의 경우도 마찬가지입니다.
기본 오브젝트 또는 열의 태그가 중첩된 오브젝트로도 넘어가도록 해야 하는 경우, 중첩된 오브젝트에서 CREATE OR REPLACE 문을 실행하는 것과 함께, SQL 문이 중첩된 오브젝트 또는 열에 태그를 지정하도록 하십시오.
이점¶
- 사용 편의성:
태그를 한 번 정의하면 여러 다른 오브젝트에 여러 번 적용할 수 있습니다.
- 태그 계보:
태그는 상속되므로, 보안 오브젝트 계층 구조에서 높은 수준의 오브젝트에 태그를 적용하면 모든 하위 오브젝트에도 해당 태그가 적용됩니다. 예를 들어, 테이블에 태그를 설정하면 해당 테이블의 모든 열에 태그가 상속됩니다.
- 복제 시 일관적인 할당:
Snowflake는 기본 데이터베이스의 태그 및 태그 할당을 보조 데이터베이스로 복제합니다.
자세한 내용은 이 항목의 복제 섹션을 참조하십시오.
- 민감한 데이터 추적 및 리소스 사용:
태그를 사용하면 민감한 데이터(예: PII, 시크릿)를 편리하게 식별하고 Snowflake 리소스 사용 현황을 확인할 수 있습니다. 동일한 시스템의 데이터와 메타데이터를 사용하여 분석가는 태그 정의(예:
cost_center
,department
)에 따라 어떤 리소스가 Snowflake 크레딧을 가장 많이 사용하는지 빠르게 결정할 수 있습니다.- 중앙 집중식 또는 분산형 관리:
태그는 내부 및 외부 규정 요구 사항을 준수할 수 있도록 다양한 관리 방식을 지원합니다.
중앙 집중식 방식에서
tag_admin
사용자 지정 역할은 태그를 생성하여 Snowflake 오브젝트에 적용합니다.분산형 방식에서 개별 팀은 Snowflake 오브젝트에 태그를 적용하고
tag_admin
사용자 지정 역할은 태그를 생성하여 일관적으로 태그 이름을 지정할 수 있습니다.
고려 사항¶
- 향후 권한 부여:
태그에 대한 향후 권한 부여 는 지원되지 않습니다.
해결 방법으로 APPLY TAG 권한을 사용자 지정 역할에 부여하여 해당 역할이 또 다른 오브젝트에 태그를 적용하도록 허용하십시오.
- Snowflake Native App:
버전이 지정된 스키마에 태그가 있는 경우 설정 스크립트를 생성할 때 주의하십시오. 자세한 내용은 버전 스키마 고려 사항 을 참조하십시오.