AWS KMS加密解密API的调用是受呼叫区域限制的,因为加密密钥和解密密钥存储在特定的区域中,只有在该区域中调用API才能访问这些密钥。因此,您需要在调用API时指定正确的呼叫区域。
以下是一个Python示例代码,演示了如何使用AWS SDK for Python (Boto3)库调用AWS KMS加密解密API,并指定呼叫区域为us-west-2。
import boto3
region_name = 'us-west-2'
kms = boto3.client('kms', region_name=region_name)
plaintext = b"my secret data"
key_id = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
# encrypt data
response = kms.encrypt(
KeyId=key_id,
Plaintext=plaintext
)
ciphertext = response['CiphertextBlob']
# decrypt data
response = kms.decrypt(
CiphertextBlob=ciphertext
)
decrypted_plaintext = response['Plaintext']
print(f"Encrypted ciphertext: {ciphertext}")
print(f"Decrypted plaintext: {decrypted_plaintext.decode('utf-8')}")
在上面的代码中,我们使用boto3.client()
方法创建一个AWS KMS客户端对象,并将呼叫区域指定为us-west-2
。然后,我们使用kms.encrypt()
方法将一些明文数据加密,并将加密密钥的ARN指定为key_id
。然后,我们使用kms.decrypt()
方法将密文数据解密。
请注意,在您的代码中,key_id
需要替换为您实际使用的加密密钥的ARN,plaintext
需要替换为您要加密的实际数据。同时