RDS for SQL Server에서 TDE 인증서 백업 및 복원
RDS for SQL Server는 TDE 인증서를 백업, 복원 및 삭제하기 위한 저장 프로시저를 제공합니다. RDS for SQL Server는 복원된 사용자 TDE 인증서를 보는 기능도 제공합니다.
사용자 TDE 인증서는 온프레미스에 있고 TDE가 설정된 RDS for SQL Server로 데이터베이스를 복원하는 데 사용됩니다. 이러한 인증서에는 접두사 UserTDECertificate_
가 붙습니다. RDS는 데이터베이스를 복원한 후 사용할 수 있게 하기 전에 TDE가 활성화된 데이터베이스를 수정하여 RDS 생성 TDE 인증서를 사용합니다. 이러한 인증서에는 접두사 RDSTDECertificate
가 붙습니다.
사용자 TDE 인증서는 rds_drop_tde_certificate
저장 프로시저를 사용하여 삭제하지 않는 한 RDS for SQL Server DB 인스턴스에 남아 있습니다. 자세한 내용은 복원된 TDE 인증서 삭제 단원을 참조하십시오.
사용자 TDE 인증서를 사용하여 소스 DB 인스턴스에서 다른 데이터베이스를 복원할 수 있습니다. 복원할 데이터베이스는 동일한 TDE 인증서를 사용해야 하며, TDE가 활성화되어 있어야 합니다. 동일한 인증서를 다시 가져올(복원) 필요가 없습니다.
사전 조건
RDS for SQL Server에 TDE 인증서를 백업하거나 복원하려면 먼저 다음 태스크를 수행해야 합니다. 처음 3개는 기본 백업 및 복원 설정에 설명되어 있습니다.
-
백업 및 복원할 파일을 저장하기 위한 Amazon S3 버킷을 생성합니다.
데이터베이스 백업 및 TDE 인증서 백업에는 별도의 버킷을 사용하는 것이 좋습니다.
-
파일 백업 및 복원을 위한 IAM 역할을 생성합니다.
IAM 역할은 AWS KMS key의 관리자이며 사용자여야 합니다.
SQL Server 기본 백업 및 복원에 필요한 권한 외에도 IAM 역할에는 다음과 같은 권한이 필요합니다.
-
S3 버킷 리소스의
s3:GetBucketACL
,s3:GetBucketLocation
,s3:ListBucket
-
*
리소스의s3:ListAllMyBuckets
-
-
DB 인스턴스의 옵션 그룹에
SQLSERVER_BACKUP_RESTORE
옵션을 추가합니다.이는
TRANSPARENT_DATA_ENCRYPTION
(TDE
) 옵션에 추가됩니다. -
대칭 암호화 KMS 키가 있는지 확인합니다. 다음과 같은 옵션이 있습니다:
-
계정에 기존 KMS 키가 있는 경우 사용할 수 있습니다. 별도로 조치를 취할 필요가 없습니다.
-
계정에 사용 중이던 대칭 암호화 KMS 키가 없는 경우 AWS Key Management Service 개발자 가이드의 키 생성 지침에 따라 KMS 키를 생성합니다.
-
-
Amazon S3 통합을 활성화하여 DB 인스턴스와 Amazon S3 간에 파일을 전송합니다.
Amazon S3 통합에 대한 자세한 내용은 Amazon RDS for SQL Server DB 인스턴스와 Amazon S3 통합 섹션을 참조하세요.
제한 사항
저장 프로시저를 사용하여 TDE 인증서를 백업 및 복원하는 데는 다음과 같은 제한이 있습니다.
-
SQLSERVER_BACKUP_RESTORE
및TRANSPARENT_DATA_ENCRYPTION
(TDE
) 옵션을 모두 DB 인스턴스에 연결된 옵션 그룹에 추가해야 합니다. -
다중 AZ DB 인스턴스에는 TDE의 인증서 백업 및 복원이 지원되지 않습니다.
-
TDE 인증서 백업 및 복원 태스크는 취소할 수 없습니다.
-
RDS for SQL Server DB 인스턴스에 있는 다른 데이터베이스의 TDE 암호화에 사용자 TDE 인증서를 사용할 수 없습니다. 이를 사용하여 TDE가 활성화되어 있고 동일한 TDE 인증서를 사용하는 소스 DB 인스턴스에서 다른 데이터베이스만 복원할 수 있습니다.
-
사용자 TDE 인증서만 삭제할 수 있습니다.
-
RDS에서 지원되는 최대 사용자 TDE 인증서 수는 10개입니다. 개수가 10개를 초과하면 사용하지 않는 TDE 인증서를 삭제하고 다시 시도하세요.
-
인증서 이름은 비어 있거나 null일 수 없습니다.
-
인증서를 복원할 때 인증서 이름에
RDSTDECERTIFICATE
키워드를 포함할 수 없으며,UserTDECertificate_
접두사로 시작해야 합니다. -
@certificate_name
파라미터에는 a-z, 0-9, @, $, #, 밑줄(_) 문자만 포함할 수 있습니다. -
@certificate_file_s3_arn
파일 확장명은 .cer(대/소문자를 구분하지 않음)이어야 합니다. -
@private_key_file_s3_arn
파일 확장명은 .pvk(대/소문자를 구분하지 않음)이어야 합니다. -
프라이빗 키 파일의 S3 메타데이터에는
x-amz-meta-rds-tde-pwd
태그가 포함되어야 합니다. 자세한 내용은 온프레미스 데이터베이스에 대한 TDE 인증서 백업 및 복원 단원을 참조하십시오.
TDE 인증서 백업
TDE 인증서를 백업하려면 rds_backup_tde_certificate
저장 프로시저를 사용하면 됩니다. 다음 구문을 사용합니다.
EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='UserTDECertificate_
certificate_name
| RDSTDECertificatetimestamp
', @certificate_file_s3_arn='arn:aws:s3:::bucket_name
/certificate_file_name.cer
', @private_key_file_s3_arn='arn:aws:s3:::bucket_name
/key_file_name.pvk
', @kms_password_key_arn='arn:aws:kms:region
:account-id
:key/key-id
', [@overwrite_s3_files=0|1
];
다음 파라미터는 필수 파라미터입니다.
-
@certificate_name
- 백업할 TDE 인증서의 이름입니다. -
@certificate_file_s3_arn
- Amazon S3의 인증서 백업 파일에 대한 대상 Amazon 리소스 이름(ARN)입니다. -
@private_key_file_s3_arn
- TDE 인증서를 보호하는 프라이빗 키 파일의 대상 S3 ARN입니다. -
@kms_password_key_arn
- 프라이빗 키 암호를 암호화하는 데 사용되는 대칭 KMS 키의 ARN입니다.
다음 파라미터는 선택 사항입니다.
-
@overwrite_s3_files
- S3의 기존 인증서 및 프라이빗 키 파일을 덮어쓸지를 나타냅니다.-
0
– 기존 파일을 덮어쓰지 않습니다. 이 값이 기본값입니다.@overwrite_s3_files
를 0으로 설정하면 파일이 이미 존재할 경우 오류를 반환합니다. -
1
– 백업 파일이 아니더라도 지정된 이름이 있는 기존 파일을 덮어씁니다.
-
예 TDE 인증서 백업
EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='RDSTDECertificate20211115T185333', @certificate_file_s3_arn='arn:aws:s3:::
TDE_certs
/mycertfile.cer
', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs
/mykeyfile.pvk
', @kms_password_key_arn='arn:aws:kms:us-west-2
:123456789012
:key/AKIAIOSFODNN7EXAMPLE
', @overwrite_s3_files=1
;
TDE 인증서 복원
rds_restore_tde_certificate
저장 프로시저를 통해 사용자 TDE 인증서를 복원(가져오기)할 수 있습니다. 다음 구문을 사용합니다.
EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_
certificate_name
', @certificate_file_s3_arn='arn:aws:s3:::bucket_name
/certificate_file_name.cer
', @private_key_file_s3_arn='arn:aws:s3:::bucket_name
/key_file_name.pvk
', @kms_password_key_arn='arn:aws:kms:region
:account-id
:key/key-id
';
다음 파라미터는 필수 파라미터입니다.
-
@certificate_name
- 복원할 TDE 인증서의 이름입니다. 이름이UserTDECertificate_
접두사로 시작해야 합니다. -
@certificate_file_s3_arn
- TDE 인증서를 복원하는 데 사용된 백업 파일의 S3 ARN입니다. -
@private_key_file_s3_arn
- 복원할 TDE 인증서에 대한 프라이빗 키 백업 파일의 S3 ARN입니다. -
@kms_password_key_arn
- 프라이빗 키 암호를 암호화하는 데 사용되는 대칭 KMS 키의 ARN입니다.
예 TDE 인증서 복원
EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_
myTDEcertificate
', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs
/mycertfile.cer
', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs
/mykeyfile.pvk
', @kms_password_key_arn='arn:aws:kms:us-west-2
:123456789012
:key/AKIAIOSFODNN7EXAMPLE
';
복원된 TDE 인증서 보기
rds_fn_list_user_tde_certificates
함수를 통해 복원된(가져온) 사용자 TDE 인증서를 볼 수 있습니다. 다음 구문을 사용합니다.
SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();
다음과 유사하게 출력됩니다. 여기에는 일부 열이 표시되지 않습니다.
name |
certificate_id |
principal_id |
pvt_key_encryption_type_desc |
issuer_name |
cert_serial_number |
thumbprint |
subject |
start_date |
expiry_date |
pvt_key_last_backup_date |
UserTDECertificate_tde_cert |
343 |
1 |
ENCRYPTED_BY_MASTER_KEY |
AnyCompany Shipping |
79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af |
0x6BB218B34110388680B FE1BA2D86C695096485B5 |
AnyCompany Shipping |
2022-04-05 19:49:45.0000000 |
2023-04-05 19:49:45.0000000 |
NULL |
복원된 TDE 인증서 삭제
사용하지 않는 복원된(가져온) 사용자 TDE 인증서를 삭제하려면 rds_drop_tde_certificate
저장 프로시저를 사용합니다. 다음 구문을 사용합니다.
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_
certificate_name
';
다음 파라미터는 필수입니다.
-
@certificate_name
- 삭제할 TDE 인증서의 이름입니다.
복원된(가져온) TDE 인증서만 삭제할 수 있습니다. RDS 생성 인증서는 삭제할 수 없습니다.
예 TDE 인증서 삭제
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_
myTDEcertificate
';