Amazon dynamodb DynamoDB,can';t保存加密数据,";未授权执行:kms:GeneratedTakey on resource“;

Amazon dynamodb DynamoDB,can';t保存加密数据,";未授权执行:kms:GeneratedTakey on resource“;,amazon-dynamodb,serverless-framework,aws-kms,Amazon Dynamodb,Serverless Framework,Aws Kms,我正试图在“AmazonDynamodbEncryptionClient for Java”的帮助下将加密数据保存到DynamoDB。 我还使用无服务器框架来部署我的应用程序(一些使用DynamoDB的Lamdba函数)。AWS Lamdba函数是用Kotlin编写的 我在我的serverless.yml中的iarolestatements部分(在provider部分下)有这个: -效果:“允许” 行动: -“kms:GenerateDakey” 资源:“*” 我认为这应该足够了,但当我试图

我正试图在“AmazonDynamodbEncryptionClient for Java”的帮助下将加密数据保存到DynamoDB。 我还使用无服务器框架来部署我的应用程序(一些使用DynamoDB的Lamdba函数)。AWS Lamdba函数是用Kotlin编写的

我在我的
serverless.yml
中的
iarolestatements
部分(在
provider
部分下)有这个:

-效果:“允许”
行动:
-“kms:GenerateDakey”
资源:“*”

我认为这应该足够了,但当我试图将加密数据保存到DynamoDB时,出现了以下错误:

com.amazonaws.services.kms.model.AWSKMSException:用户:arn:aws:sts::120102300450:假定角色/appname-username-eu-west-1-lambdaRole/appname-username函数名无权执行:kms:GenerateDataKey on resource:arn:aws:kms:eu-west-1:120102300450:key/12d3f45c-6fff-0007-b123-5bfe5678e012(服务:AWSKMS;状态代码:400;错误代码:AccessDeniedException;请求ID:…)
(此处对字母数字ID进行了模糊处理,以避免披露真实数据)

我还尝试添加其他几个KMS权限,但没有帮助:

-效果:“允许”
行动:
-“kms:GenerateDakey”
-“kms:GeneratedTakeyWithOutplainText”
-“kms:CreateAlias”
-“kms:CreateKey”
-“kms:解密”
-“kms:加密”
-“kms:启用密钥”
-“kms:UpdateAlias”
资源:“*”

因此,在这种情况下无法实现“Amazon DynamoDB Java加密客户端”的全部目的


这里缺少什么?

我发现了问题所在。我使用了默认的KMS密钥,并且必须使用自定义密钥。然后它工作了。

我发现了问题所在。我使用了默认的KMS密钥,并且必须使用自定义密钥。然后它工作了