要为AWS Lambda授予KMS解密权限,可以按照以下步骤进行操作:
创建KMS密钥:在AWS控制台中,导航到KMS服务,创建一个新的KMS密钥。记下该密钥的ARN(Amazon资源名称)。
创建IAM角色:在AWS控制台中,导航到IAM服务,创建一个新的IAM角色。为该角色选择“AWS Lambda”作为受信实体,并为其附加“KMS解密”策略。
以下是一个简单的IAM角色策略示例,该策略授予了KMS解密权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:region:account-id:key/key-id"
]
}
]
}
请将region
替换为你的区域,account-id
替换为你的AWS账户ID,key-id
替换为你创建的KMS密钥的ID。
现在,Lambda函数将具有解密KMS加密数据的权限。你可以在函数代码中使用AWS SDK调用KMS解密API。
以下是一个使用Python的示例代码,演示如何在Lambda函数中解密使用KMS加密的数据:
import boto3
import base64
def lambda_handler(event, context):
encrypted_data = event['encrypted_data']
client = boto3.client('kms')
# 使用KMS解密加密数据
response = client.decrypt(
CiphertextBlob=base64.b64decode(encrypted_data)
)
decrypted_data = response['Plaintext']
# 在这里处理解密后的数据
# ...
return 'Decrypted data: ' + decrypted_data
请确保在Lambda函数的执行角色中配置了正确的KMS解密权限。