AWS KMS会在CMK到达其到期日期时自动轮换CMK以确保其安全性。当CMK自动轮换时,应用程序会受到一定的干扰,因为所有现有的加密密钥均会替换为新的加密密钥。但是,AWS KMS会管理应用程序与新密钥之间的过渡,以确保应用程序不会失去连接。以下是示例代码,说明如何使用AWS SDK在应用程序代码中处理KMS CMK自动轮换:
import boto3
# Create an AWS KMS client
kms = boto3.client('kms')
# Encrypt data using CMK
plaintext = b'my_secret_text'
response = kms.encrypt(
KeyId='arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab',
Plaintext=plaintext
)
# Decrypt data using CMK
ciphertext = response['CiphertextBlob']
response = kms.decrypt(
CiphertextBlob=ciphertext
)
print(response['Plaintext'])
在上述代码中,KMS客户端调用encrypt和decrypt方法使用CMK加密和解密数据。当CMK轮换时,客户端会自动从旧密钥转换为新密钥,以确保应用程序不会失去连接。