ALTER USER … ADD KEY PAIR

ALTER USER … ADD KEY PAIR

사용자에 대해 이름 있는 키 페어(key pair)를 등록하는 명령이에요.

출처: 문서

본문

관련 명령: ALTER USER … MODIFY KEY PAIR, ALTER USER … ROTATE KEY PAIR, ALTER USER … REMOVE KEY PAIR, SHOW USER KEY PAIRS

구문 (Syntax)

ALTER USER [ IF EXISTS ] [ <username> ] ADD KEY PAIR <key_pair_name>
  PUBLIC_KEY = '<string_literal>'
  [ ROLE_RESTRICTION = '<string_literal>' ]
  [ DAYS_TO_EXPIRY = <integer> ]
  [ COMMENT = '<string_literal>' ]

필수 매개변수 (Required parameters)

ADD KEY PAIR key_pair_name — 지정된 이름으로 키 페어를 등록해요.

PUBLIC_KEY_1PUBLIC_KEY_2 이름은 레거시 RSA_PUBLIC_KEYRSA_PUBLIC_KEY_2 사용자 속성으로 할당된 키를 위해 예약되어 있어(참고: ALTER USER) 키 페어 이름으로 사용할 수 없어요.

PUBLIC_KEY = 'string_literal'키 페어 인증에 사용되는 사용자의 공개 키예요. 공개 키는 사용자의 모든 활성 키 중에서 고유해야 해요.

선택 매개변수 (Optional parameters)

username — 키 페어와 연결되는 사용자의 이름이에요. 사용자는 다른 사용자의 키 페어로 인증할 수 없어요.

다른 사용자를 대신해 키 페어를 등록하려면 관리자가 ALTER USER 명령에 그 사용자의 이름을 지정해야 해요. username을 생략하면 명령은 현재 로그인한 사용자(이 세션의 활성 사용자)에 대해 키 페어를 등록해요.

ROLE_RESTRICTION = 'string_literal' — 이 키 페어로 인증된 세션에서 권한 평가에 사용되는 역할의 이름이에요. 사용자에게 이미 부여된 역할 중 하나여야 해요.

ROLE_RESTRICTION이 설정되면 JWT에서 요청된 역할이 이 역할과 일치할 때만 키 페어로 인증할 수 있어요. 이 역할이 키 페어와 연결된 사용자에게서 취소되면 키 페어로 인증하려는 모든 시도가 실패해요.

참고: ROLE_RESTRICTION 값으로 역할을 지정한다고 해서 지정된 역할이 키 페어에 부여되지는 않아요. 사용자에게 이미 이 역할이 부여되어 있어야 해요.

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

DAYS_TO_EXPIRY = integer — 키 페어를 인증에 사용할 수 있는 일수예요. 1 이상이어야 해요.

기본값: 값 없음 (키 페어는 만료되지 않으며 회전, 비활성화 또는 제거될 때까지 유효).

COMMENT = 'string_literal' — 키 페어에 대한 주석을 지정해요.

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

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

권한 객체 설명
MODIFY PROGRAMMATIC AUTHENTICATION METHODS User 키 페어를 등록하는 데 필요해요.

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

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

사용 메모 (Usage notes)

  • 각 사용자는 기본적으로 최대 10개의 키 페어를 가질 수 있어요. 유예 기간 내의 회전된 키 페어는 만료될 때까지 이 한도에 포함돼요.
  • RSA와 EC 공개 키 모두 지원돼요. EC 키의 경우 P-256, P-384, P-521 곡선만 허용돼요.
  • 키 페어를 만들어도 비밀이 반환되지는 않아요. 사용자가 일치하는 개인 키를 보유하고, Snowflake는 공개 키만 저장해요.

예시 (Examples)

사용자 example_user에 대해 my_key라는 키 페어를 등록해요.

ALTER USER IF EXISTS example_user ADD KEY PAIR my_key
  PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgK...'
  COMMENT = 'primary workload key';

역할 example_role의 권한을 상속하고 90일 후에 만료되는 키 페어를 등록해요.

ALTER USER IF EXISTS example_user ADD KEY PAIR scoped_key
  PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgK...'
  ROLE_RESTRICTION = 'example_role'
  DAYS_TO_EXPIRY = 90;

더 알아보기 (Learn more)