ALTER SECURITY INTEGRATION

ALTER SECURITY INTEGRATION (외부 API 인증)

외부 API 인증(External API Authentication)용으로 만든 기존 보안 통합의 속성을 수정하는 명령이에요.

출처: 문서

본문

다른 유형의 보안 통합(예: Snowflake OAuth)을 수정하는 방법은 ALTER SECURITY INTEGRATION을 참고하세요.

관련 명령: CREATE SECURITY INTEGRATION (외부 API 인증), DESCRIBE INTEGRATION, DROP INTEGRATION, SHOW INTEGRATIONS

구문 (Syntax)

OAuth: 클라이언트 자격 증명 (Client credentials)

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = { CLIENT_SECRET_BASIC | CLIENT_SECRET_POST } ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'CLIENT_CREDENTIALS']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_ALLOWED_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

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

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}

OAuth: 인가 코드 부여 흐름 (Authorization code grant flow)

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = { CLIENT_SECRET_BASIC | CLIENT_SECRET_POST } ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'AUTHORIZATION_CODE']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

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

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}

OAuth: JWT 베어러 흐름 (JWT bearer flow)

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = { CLIENT_SECRET_BASIC | CLIENT_SECRET_POST } ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'JWT_BEARER']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

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

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}

매개변수 (Parameters)

name — 통합의 식별자(이름)를 지정하는 문자열이에요.

SET ... — 공백, 콤마 또는 줄바꿈으로 구분해 통합에 설정할 하나 이상의 속성/매개변수를 지정해요:

ENABLED = { TRUE | FALSE } — 이 보안 통합이 활성화되는지 비활성화되는지를 지정해요.

  • TRUE — 통합이 통합 정의에 지정된 매개변수를 기반으로 실행되도록 허용해요.
  • FALSE — 유지 관리를 위해 통합을 중지해요. Snowflake와 서드파티 서비스 간의 모든 통합이 작동하지 않아요.

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal' — 외부 서비스에 인증하기 위한 URL을 지정해요. 예를 들어 ServiceNow 인스턴스에 연결하려면 URL을 다음 형식으로 지정해요:

https://<instance_name>.service-now.com/oauth_token.do

여기서 instance_name은 ServiceNow 인스턴스의 이름이에요.

OAUTH_TOKEN_ENDPOINT = 'string_literal' — 클라이언트가 인가 부여(grant) 또는 새로고침 토큰을 제시해 액세스 토큰을 얻는 데 사용하는 토큰 엔드포인트를 지정해요. 토큰 엔드포인트는 암시적 부여(implicit grant) 유형(액세스 토큰을 직접 발급하므로)을 제외한 모든 인가 부여에 사용돼요.

OAUTH_CLIENT_AUTH_METHOD = { CLIENT_SECRET_BASIC | CLIENT_SECRET_POST } — 클라이언트 자격 증명을 외부 서비스로 보내는 방식을 제어해요.

  • CLIENT_SECRET_BASIC — 클라이언트 자격 증명을 HTTP Basic 인증 체계로 보낸다고 지정해요.
  • CLIENT_SECRET_POST — 클라이언트 자격 증명을 POST 요청의 HTTP 요청 본문으로 보낸다고 지정해요.

기본값: CLIENT_SECRET_BASIC

OAUTH_CLIENT_ID = 'string_literal' — 외부 서비스의 OAuth 애플리케이션에 대한 클라이언트 ID를 지정해요.

OAUTH_CLIENT_SECRET = 'string_literal' — ServiceNow 인스턴스의 OAuth 애플리케이션에 대한 클라이언트 비밀을 지정해요. 커넥터는 이를 사용해 ServiceNow 인스턴스에서 액세스 토큰을 요청해요.

OAUTH_GRANT = 'string_literal' — OAuth 흐름의 유형을 지정해요. 다음 중 하나예요:

  • 통합이 클라이언트 자격 증명을 사용할 때 'CLIENT_CREDENTIALS'
  • 통합이 인가 코드를 사용할 때 'AUTHORIZATION_CODE'
  • 통합이 JWT 베어러 토큰을 사용할 때 'JWT_BEARER'

OAUTH_ACCESS_TOKEN_VALIDITY = integer — OAuth 서버가 발급한 OAuth 액세스 토큰의 기본 수명(초)을 지정해요. 이 속성에 설정된 값은 액세스 토큰 수명이 OAuth 토큰 응답의 일부로 반환되지 않을 때 사용돼요. 두 값이 모두 있으면 더 작은 값이 액세스 토큰을 새로고침하는 데 사용돼요.

OAUTH_REFRESH_TOKEN_VALIDITY = integer — OAuth 서버에서 얻은 새로고침 토큰의 유효성을 결정하는 값을 지정해요.

OAUTH_ALLOWED_SCOPES = ( list ) — OAuth 클라이언트 자격 증명 흐름 중에 통합에 USAGE 권한이 있는 역할이 OAuth에서 요청할 때 사용할, 각 스코프를 단일 따옴표로 감싼 콤마 구분 스코프 목록을 지정해요.

이 목록은 보안 통합의 OAUTH_ALLOWED_SCOPES 속성에 정의된 스코프의 부분 집합이어야 해요. OAUTH_SCOPES 속성 값이 지정되지 않으면 비밀은 보안 통합에 지정된 모든 스코프를 상속해요.

ServiceNow 커넥터의 경우 유일한 가능한 스코프 값은 'useraccount'예요.

기본값: 빈 목록(즉 []).

COMMENT = 'string_literal' — 통합의 주석을 추가하거나 기존 주석을 덮어써요.

기본값: 값 없음

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.

접근 제어 요구사항 (Access control requirements)

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요: GRANT OWNERSHIP

권한 객체 설명
OWNERSHIP Integration OWNERSHIP은 객체를 만든 역할에 자동으로 부여되는 객체의 특별한 권한이에요. 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수도 있어요.

지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.

보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.

사용 메모 (Usage notes)

메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.

예시 (Examples)

다음 예시는 중지된 통합의 작동을 시작해요.

ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;

더 알아보기 (Learn more)