ALTER STORAGE INTEGRATION

기존 저장소 통합의 속성을 수정합니다.

참고 항목:

CREATE STORAGE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS , DESCRIBE INTEGRATION

구문

ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET
  [ cloudProviderParams ]
  [ ENABLED = { TRUE | FALSE } ]
  [ STORAGE_ALLOWED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
  [ STORAGE_BLOCKED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
  [ COMMENT = '<string_literal>' ]

ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ STORAGE ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name>  UNSET {
                                                          ENABLED                   |
                                                          STORAGE_BLOCKED_LOCATIONS |
                                                          COMMENT
                                                          }
                                                          [ , ... ]
Copy

여기서

cloudProviderParams (for Amazon S3) ::=
  STORAGE_AWS_ROLE_ARN = '<iam_role>'
  [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ]
  [ STORAGE_AWS_EXTERNAL_ID = '<external_id>' ]
Copy
cloudProviderParams (for Microsoft Azure) ::=
  AZURE_TENANT_ID = '<tenant_id>'
Copy

매개 변수

name

변경할 통합의 식별자입니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

SET ...

테이블에 대해 설정할 하나 이상의 속성/매개 변수를 지정합니다(공백, 쉼표 또는 새 줄로 구분).

ENABLED = TRUE | FALSE

이 저장소 통합을 스테이지에 사용할 수 있을지 여부를 지정합니다.

  • TRUE 로 지정하면 사용자가 이 통합을 참조하는 새 스테이지를 만들 수 있습니다. 이 통합을 참조하는 기존 스테이지는 정상적으로 작동합니다.

  • FALSE 로 지정하면 사용자가 이 통합을 참조하는 새 스테이지를 만들지 못하게 됩니다. 이 통합을 참조하는 기존 스테이지는 스테이지 정의의 저장소 위치에 액세스할 수 없습니다.

STORAGE_ALLOWED_LOCATIONS = ('cloud_specific_url')

통합을 사용하여 하나 이상의 저장소 위치(Amazon S3, Google Cloud Storage 또는 Microsoft Azure)를 참조하는 외부 스테이지를 명시적으로 제한합니다. 기존 버킷의 URL로 구성된 쉼표로 구분된 목록을 지원하고, 선택적으로 로딩/언로딩할 데이터 파일을 저장하는 데 사용되는 경로도 지원합니다. 또는 “모든 버킷 및/또는 경로에 대한 액세스 허용”을 의미하는 * 와일드카드를 지원합니다.

STORAGE_ALLOWED_LOCATIONS 값에 특정 저장 위치가 포함된 경우, 동일한 위치의 모든 하위 경로가 허용되어야 합니다. STORAGE_BLOCKED_LOCATIONS 값에는 하위 경로를 포함할 수 없습니다. 예를 들어 STORAGE_ALLOWED_LOCATIONSstorage_location/ 이 포함되어 있으면 STORAGE_BLOCKED_LOCATIONSstorage_location/path1/ 이 포함될 수 없습니다. 마찬가지로, STORAGE_ALLOWED_LOCATIONSstorage_location/path1/ 이 포함된 경우 STORAGE_BLOCKED_LOCATIONS 에는 storage_location/path1/path2/ 가 포함될 수 없으며 이외의 경우도 마찬가지입니다.

Amazon S3

STORAGE_ALLOWED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] ) | STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )

  • bucket 은 데이터 파일을 저장하는 S3 버킷의 이름입니다(예: mybucket).

  • path 는 파일 세트에 대한 액세스를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.

Google Cloud Storage

STORAGE_ALLOWED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )

  • bucket 은 데이터 파일을 저장하는 GCS 버킷의 이름입니다(예: mybucket).

  • path 는 파일 세트에 대한 액세스를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.

Microsoft Azure

STORAGE_ALLOWED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )

  • account 는 Azure 계정의 이름입니다(예: myaccount). Data Lake Storage Gen2를 포함하여, 지원되는 모든 타입의 Azure blob 저장소 계정에 대해 blob.core.windows.net 엔드포인트를 사용합니다.

  • container 는 데이터 파일을 저장하는 Azure 컨테이너의 이름입니다(예: mycontainer).

  • path 는 파일 세트에 대한 액세스를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.

STORAGE_BLOCKED_LOCATIONS = ('cloud_specific_url')

통합을 사용하는 외부 스테이지가 하나 이상의 저장소 위치(Amazon S3, Google Cloud Storage, Microsoft Azure)를 참조하는 것을 명시적으로 금지합니다. 기존 저장소 위치의 URL로 구성된 쉼표로 구분된 목록을 지원하고, 선택적으로 로딩/언로딩할 데이터 파일을 저장하는 데 사용되는 경로도 지원합니다. 일반적으로 STORAGE_ALLOWED_LOCATIONS가 * 와일드카드로 설정되어 있을 때 사용되어 차단된 저장소 위치 그리고 선택적으로 경로를 제외한 계정의 모든 버킷에 대한 액세스를 허용합니다.

참고

개별 클라우드 저장소 위치 URL만 따옴표로 묶어야 합니다. 전체 STORAGE_BLOCKED_LOCATIONS 값을 따옴표로 묶으면 값이 유효하지 않습니다. 결과적으로, 사용자가 저장소 통합을 참조하는 스테이지를 만들 때 STORAGE_BLOCKED_LOCATIONS 매개 변수 설정이 무시됩니다.

Amazon S3

STORAGE_BLOCKED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] ) | STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )

  • bucket 은 데이터 파일을 저장하는 S3 버킷의 이름입니다(예: mybucket).

  • path 는 데이터 파일에 대한 액세스를 추가로 제한하는 버킷의 선택적 경로(또는 디렉터리)입니다.

Google Cloud Storage

STORAGE_BLOCKED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )

  • bucket 은 데이터 파일을 저장하는 GCS 버킷의 이름입니다(예: mybucket).

  • path 는 데이터 파일에 대한 액세스를 추가로 제한하는 버킷의 선택적 경로(또는 디렉터리)입니다.

Microsoft Azure

STORAGE_BLOCKED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )

  • account 는 Azure 계정의 이름입니다(예: myaccount).

  • container 는 데이터 파일을 저장하는 Azure 컨테이너의 이름입니다(예: mycontainer).

  • path 는 데이터 파일에 대한 액세스를 추가로 제한하는 컨테이너의 선택적 경로(또는 디렉터리)입니다.

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.

COMMENT = 'string_literal'

통합에 대한 설명을 지정하는 문자열(리터럴)입니다.

UNSET ...

저장소 통합에 대해 설정 해제할 속성/매개 변수를 하나 이상 지정하여 다시 기본값으로 재설정합니다.

  • ENABLED

  • STORAGE_BLOCKED_LOCATIONS

  • TAG tag_name [ , tag_name ... ]

  • COMMENT

클라우드 공급자 매개 변수(cloudProviderParams)

Amazon S3

STORAGE_AWS_ROLE_ARN = 'iam_role'

데이터 파일을 포함한 S3 버킷에 대한 권한을 부여하는 AWS ID 및 액세스 관리(IAM) 역할의 ARN(Amazon Resource Name)을 지정합니다. 자세한 내용은 Amazon S3에 대한 보안 액세스 구성하기 를 참조하십시오.

STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'

AWS ACLs(액세스 제어 목록)에 대한 지원을 사용하여 S3 버킷 소유자에게 모든 권한을 부여합니다. 언로딩된 테이블 데이터의 Amazon S3 버킷에 만든 파일은 AWS ID 및 액세스 관리(IAM) 역할이 소유합니다. ACL은 한 AWS 계정의 IAM 역할이 하나 이상의 다른 AWS 계정에 있는 S3 버킷에 액세스하도록 구성된 사용 사례를 지원합니다. ACL 지원이 없으면, 버킷 소유자 계정의 사용자가 저장소 통합을 사용하여 외부(S3) 스테이지로 언로딩된 데이터 파일에 액세스할 수 없습니다.

사용자가 COPY INTO <위치> 을 사용하여 Snowflake 테이블 데이터를 S3 스테이지의 데이터 파일로 언로딩할 때 이 언로딩 작업은 ACL을 언로딩된 데이터 파일에 적용합니다. 데이터 파일은 파일에 "s3:x-amz-acl":"bucket-owner-full-control" 권한을 적용하여 S3 버킷 소유자에게 파일에 대한 모든 권한을 부여합니다.

STORAGE_AWS_EXTERNAL_ID = 'external_id'

Snowflake가 AWS와의 신뢰 관계를 설정하는 데 사용하는 외부 ID를 지정합니다. 이 저장소 통합을 위해 구성한 IAM 역할의 신뢰 정책에 동일한 외부 ID를 지정해야 합니다. 자세한 내용은 서드 파티에 AWS 리소스에 대한 액세스 권한을 부여하는 경우 외부 ID를 사용하는 방법 을 참조하십시오.

Microsoft Azure

AZURE_TENANT_ID = 'tenant_id'

허용 및 차단된 저장소 계정이 속한 Office 365 tenant의 ID를 지정합니다. 저장소 통합은 하나의 tenant에만 인증할 수 있으므로, 허용 및 차단된 저장소 위치는 모두 이 tenant에 속하는 저장소 계정을 참조해야 합니다.

Tenant ID를 찾으려면 Azure 포털에 로그인하여 Azure Active Directory » Properties 를 클릭하십시오. Tenant ID는 Tenant ID 필드에 표시됩니다.

사용법 노트

메타데이터 관련:

주의

고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

다음은 일시 중단된 통합 작업을 시작하는 예입니다.

ALTER STORAGE INTEGRATION myint SET ENABLED = TRUE;
Copy