ALTER USER … ADD PROGRAMMATIC ACCESS TOKEN

ALTER USER … ADD PROGRAMMATIC ACCESS TOKEN (PAT)

사용자에 대해 프로그래매틱 액세스 토큰(programmatic access token)을 만드는 명령이에요.

출처: 문서

본문

관련 명령: ALTER USER … MODIFY PROGRAMMATIC ACCESS TOKEN (PAT), ALTER USER … ROTATE PROGRAMMATIC ACCESS TOKEN (PAT), ALTER USER … REMOVE PROGRAMMATIC ACCESS TOKEN (PAT), SHOW USER PROGRAMMATIC ACCESS TOKENS

구문 (Syntax)

ALTER USER [ IF EXISTS ] [ <username> ] ADD { PROGRAMMATIC ACCESS TOKEN | PAT } [ IF NOT EXISTS ] <token_name>
  [ ROLE_RESTRICTION = '<string_literal>' ]
  [ DAYS_TO_EXPIRY = <integer> ]
  [ MINS_TO_BYPASS_NETWORK_POLICY_REQUIREMENT = <integer> ]
  [ COMMENT = '<string_literal>' ]

필수 매개변수 (Required parameters)

ADD { PROGRAMMATIC ACCESS TOKEN | PAT } token_name — 지정된 이름으로 프로그래매틱 액세스 토큰을 만들어요. PAT 키워드는 PROGRAMMATIC ACCESS TOKEN 키워드를 짧게 지정하는 방법으로 사용할 수 있어요.

선택 매개변수 (Optional parameters)

IF NOT EXISTS — 지정된 이름의 토큰이 사용자에게 아직 없을 때만 프로그래매틱 액세스 토큰을 만들어요. 같은 이름의 토큰이 이미 있으면 명령은 새 토큰을 만들거나 토큰 비밀을 반환하지 않고 아무 작업도 하지 않은 채 성공적으로 완료돼요. 이 절을 사용해 프로비저닝 스크립트를 다시 실행하는 경우처럼 명령을 멱등(idempotent)하게 실행해요.

username — 토큰과 연결되는 사용자의 이름이에요. 사용자는 다른 사용자의 프로그래매틱 액세스 토큰으로 인증할 수 없어요.

사용자를 대신해 프로그래매틱 액세스 토큰을 만들려면 관리자가 ALTER USER 명령에 그 사용자의 이름을 지정해야 해요. username을 생략하면 명령은 현재 로그인한 사용자(이 세션의 활성 사용자)에 대해 토큰을 생성해요.

ROLE_RESTRICTION = 'string_literal' — 권한 평가와 객체 생성에 사용되는 역할의 이름이에요. 사용자에게 이미 부여된 역할 중 하나여야 해요.

참고: 기본적으로 이 매개변수는 서비스 사용자(TYPE=SERVICE 또는 TYPE=LEGACY_SERVICE)에게는 필수이고, 사람 사용자(TYPE=PERSON 또는 TYPE=NULL)에게는 선택이에요. 인증 정책으로 이 동작을 변경할 수 있어요. 프로그래매틱 액세스 토큰용 역할 제한 구성을 참고하세요.

사용자가 BLOCKED_ROLES_LIST가 있는 인증 정책의 적용을 받는다면 지정된 역할은 차단된 역할 중 하나가 될 수 없어요. 특정 역할 차단을 참고하세요.

이 토큰으로 인증하면 생성하는 객체는 이 역할이 소유하고, 권한 평가에 이 역할이 사용돼요.

참고: 사용자에 대해 DEFAULT_SECONDARY_ROLES가 ('ALL')로 설정되어 있어도 보조 역할은 사용되지 않아요.

이 역할이 프로그래매틱 액세스 토큰과 연결된 사용자에게서 취소되면 토큰으로 인증하려는 모든 시도가 실패해요.

참고: ROLE_RESTRICTION 값으로 역할을 지정한다고 해서 지정된 역할이 프로그래매틱 액세스 토큰에 부여되지는 않아요. 사용자에게 이미 이 역할이 부여되어 있어야 해요.

ROLE_RESTRICTION을 생략하면 생성하는 객체는 기본 역할이 소유하고, 권한은 기본 및 보조 역할을 기준으로 평가돼요(기본 역할 및 보조 역할을 통한 인가 참고).

DAYS_TO_EXPIRY = integer — 프로그래매틱 액세스 토큰을 인증에 사용할 수 있는 일수예요. 1부터 최대 만료 시간까지의 값을 지정할 수 있어요.

기본값: 15

MINS_TO_BYPASS_NETWORK_POLICY_REQUIREMENT = integer — 사용자가 활성 네트워크 정책의 적용을 받지 않고 이 토큰으로 Snowflake에 접근할 수 있는 시간(분)이에요. 네트워크 정책의 적용을 받지 않지만 인증에 프로그래매틱 액세스 토큰을 사용해야 하는 사람(USER 객체가 TYPE=PERSON인 경우)의 토큰에 대해 이 값을 설정할 수 있어요. 네트워크 정책 요구사항을 참고하세요.

참고: MINS_TO_BYPASS_NETWORK_POLICY_REQUIREMENT를 설정해도 사용자가 네트워크 정책 자체를 우회할 수는 없어요.

1부터 1440(1일)까지의 값으로 설정할 수 있어요.

기본값: 0

COMMENT = 'string_literal' — 프로그래매틱 액세스 토큰에 대한 설명 주석이에요. 이 주석은 Snowsight의 프로그래매틱 액세스 토큰 목록에 표시돼요.

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

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

권한 객체 설명
MODIFY PROGRAMMATIC AUTHENTICATION METHODS User 자신이 아닌 다른 사용자에 대해 프로그래매틱 액세스 토큰을 생성할 때만 필요해요.

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

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

출력 (Output)

명령 출력은 다음 열로 새로 생성된 프로그래매틱 액세스 토큰에 대한 정보를 제공해요:

설명
token_name 생성된 토큰의 이름.
token_secret 토큰 자체. 엔드포인트 인증에 사용해요. 참고: 토큰은 ALTER USER … ADD PROGRAMMATIC ACCESS TOKEN 명령의 출력에만 나타나요. 다른 SQL 명령이나 함수는 토큰을 출력하거나 반환하지 않아요. 이 토큰에 프로그래매틱하게 접근해야 한다면 이 명령을 실행하고 반환된 결과에서 토큰을 검색하면 돼요.

사용 메모 (Usage notes)

  • 각 사용자는 최대 15개의 프로그래매틱 액세스 토큰을 가질 수 있어요.
  • 이 숫자에는 비활성화된 토큰도 포함돼요.
  • 만료된 토큰은 포함되지 않아요.

예시 (Examples)

사용자 example_user와 연결되고 연결된 사용자의 모든 권한을 상속하는 example_token이라는 프로그래매틱 액세스 토큰을 만들어요.

ALTER USER IF EXISTS example_user ADD PROGRAMMATIC ACCESS TOKEN example_token
  COMMENT = 'a reference example';

사용자 example_user와 연결되고 역할 example_role의 모든 권한을 상속하며 15일 후 만료되는 example_token이라는 프로그래매틱 액세스 토큰을 만들어요.

ALTER USER IF EXISTS example_user ADD PROGRAMMATIC ACCESS TOKEN example_token
  ROLE_RESTRICTION = 'example_role'
  DAYS_TO_EXPIRY = 15;

사용자 example_user에 대해 그 이름의 토큰이 아직 없을 때만 example_token이라는 프로그래매틱 액세스 토큰을 만들어요. 토큰이 이미 있으면 명령은 새 토큰을 만들지 않고 성공적으로 완료돼요.

ALTER USER IF EXISTS example_user ADD PROGRAMMATIC ACCESS TOKEN IF NOT EXISTS example_token;

더 알아보기 (Learn more)