ALTER USER … ROTATE KEY PAIR
ALTER USER … ROTATE KEY PAIR
저장된 공개 키를 사용자가 제공한 새 공개 키로 교체해 키 페어(key pair)를 회전시키는 명령이에요. 원래 키 페어의 이름은 새 키에 유지돼요. 이전 키는 진행 중인 클라이언트가 가동 중단 없이 전환할 수 있도록 구성 가능한 유예 기간 동안 유지돼요.
이전 키는 <key_pair_name>_ROTATED_<epoch_ms> 형태의 생성된 이름으로 유지되며, <epoch_ms>는 회전 시간을 Unix epoch 밀리초 정수로 나타낸 값이에요. 이전 키는 구성된 시간(시간) 후에 만료되도록 설정되고(EXPIRE_ROTATED_KEY_PAIR_AFTER_HOURS = 0이면 즉시 비활성화) SHOW USER KEY PAIRS로 이전 키를 검사할 수 있어요. 주석, 만료 기간, 역할 제한은 회전된 키 페어에서 상속돼요.
출처: 문서
본문
관련 명령: ALTER USER … ADD KEY PAIR, ALTER USER … MODIFY KEY PAIR, ALTER USER … REMOVE KEY PAIR, SHOW USER KEY PAIRS
구문 (Syntax)
ALTER USER [ IF EXISTS ] [ <username> ] ROTATE KEY PAIR <key_pair_name>
PUBLIC_KEY = '<string_literal>'
[ EXPIRE_ROTATED_KEY_PAIR_AFTER_HOURS = <integer> ]
필수 매개변수 (Required parameters)
ROTATE KEY PAIR key_pair_name — 이름 있는 키 페어를 회전시켜요.
PUBLIC_KEY_1과 PUBLIC_KEY_2 이름은 레거시 RSA_PUBLIC_KEY와 RSA_PUBLIC_KEY_2 사용자 속성으로 할당된 키를 위해 예약되어 있어 이 명령으로 회전시킬 수 없어요. 그 레거시 키를 업데이트하려면 ALTER USER … SET RSA_PUBLIC_KEY를 사용해요.
PUBLIC_KEY = 'string_literal' — key_pair_name과 연결할 새 공개 키예요. 공개 키는 사용자의 모든 활성 키 중에서 고유해야 해요.
선택 매개변수 (Optional parameters)
username — 키 페어와 연결되는 사용자의 이름이에요. 이 매개변수를 생략하면 명령은 현재 로그인한 사용자(현재 세션의 활성 사용자)의 키 페어를 회전시켜요.
EXPIRE_ROTATED_KEY_PAIR_AFTER_HOURS = integer — 이전 키 페어(회전된 키)의 만료 시간을 시간 단위로 설정해요. 0으로 설정하면 이전 키 페어를 즉시 비활성화할 수 있어요. 현재 키 페어가 만료되기까지 남은 시간 범위 내의 값으로 설정할 수 있어요.
기본값: 24
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요:
| 권한 | 객체 | 설명 |
|---|---|---|
| MODIFY PROGRAMMATIC AUTHENTICATION METHODS | User | 키 페어를 회전시키는 데 필요해요. |
지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.
보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.
사용 메모 (Usage notes)
- 유예 기간 동안 새 키와 이전(이름이 바뀐) 키가 모두 저장되며, 둘 다 사용자당 10개 키 페어 한도에 포함돼요. 이미 한도에 도달한 사용자는 회전된 툼스톤이 만료될 때까지 키를 회전시킬 수 없어요.
- 이미 회전된 키 페어(
<name>_ROTATED_<epoch_ms>툼스톤 키)는 회전시킬 수 없어요. 대신 원래 이름의 활성 키 페어를 회전시켜요.
예시 (Examples)
사용자 example_user와 연결된 키 페어를 회전시키며, 클라이언트가 새 키를 받아들일 시간으로 최대 24시간을 허용해요.
ALTER USER IF EXISTS example_user ROTATE KEY PAIR my_key
PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgK...';
키 페어를 회전시키고 이전 키 페어를 즉시 만료시켜요(개인 키 손상이 의심될 때 유용).
ALTER USER IF EXISTS example_user ROTATE KEY PAIR my_key
PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgK...'
EXPIRE_ROTATED_KEY_PAIR_AFTER_HOURS = 0;
더 알아보기 (Learn more)
- ALTER USER … ADD KEY PAIR — 키 페어 추가
- ALTER USER … MODIFY KEY PAIR — 키 페어 수정
- ALTER USER … REMOVE KEY PAIR — 키 페어 제거