我刚刚将lambda(使用gitlab runner中的Terraform)部署到一个新的aws帐户。此管道将lambda部署到另一个(dev/test)帐户而没有问题,但是当我尝试部署到我的prod帐户时,我得到以下错误:
我在反复强调这句话,“密文指的是一个客户主密钥,它不存在,在这个地区不存在,或者不允许您访问。”
我已经确认,env vars的加密配置设置为使用默认的aws/lambda密钥而不是客户主密钥。这似乎与客户主密钥错误的语言相矛盾...?
lambda承担的角色确实有一项政策,其中包括两个公里行动:
"Sid": "AWSKeyManagementService",
"Action": [
"kms:Decrypt",
"kms:DescribeKey"
]
通过消除过程,我想知道问题是否在于kms密钥上基于资源的政策方面的不足。查看aws managed下的kms密钥,我发现aws/lambda密钥具有以下密钥策略:
{
"Version": "2012-10-17",
"Id": "auto-awslambda",
"Statement": [
{
"Sid": "Allow access through AWS Lambda for all principals in the account that are authorized to use AWS Lambda",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:CreateGrant",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": "lambda.us-east-1.amazonaws.com",
"kms:CallerAccount": "REDACTED"#<-- Account where lambda deployed
}
}
},
{
"Sid": "Allow direct access to key metadata to the account",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::REDACTED:root"#<-- Account where lambda deployed
},
"Action": [
"kms:Describe*",
"kms:Get*",
"kms:List*",
"kms:RevokeGrant"
],
"Resource": "*"
}
]
}
这就很让人费解了。任何指针赞赏!
只需删除lambda,然后重新运行管道以重新部署它,就可以解决这个问题。我所能得出的结论是,在第一次部署中有些东西被破坏了。
问题内容: ABstractMethodError的可能原因是什么? 线程“ pool-1-thread-1”中的异常java.lang.AbstractMethodError: 问题答案: 简单的答案是这样的:一些代码试图调用一个声明的方法。抽象方法没有主体,无法执行。由于您提供的信息很少,因此我无法真正详细说明如何发生这种情况,因为编译器通常会遇到此问题- 如此处所述,这意味着该类必须在运行时
我编写了一个扩展并使用TYPO3 8.7 extbase。当我清除所有缓存时,我的扩展仅在第一次页面访问时工作,第二次页面访问会收到以下错误消息: 无法创建类“Pit\PitExt\Domain\Model\Settings”的空实例,因为它未实现TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface。 问题在哪里?第一次访问它实现了接口,第二次没
异常消息 上下文名称空间元素“component scan”及其解析器类[org.springframework.Context.annotation.ComponentScanBeanDefinitionParser]仅在JDK 1.5及更高版本上可用 Java版本
问题内容: 我正在遵循一个教程来尝试学习如何使用BeautifulSoup。我正在尝试从下载的HTML页面上的URL中删除名称。至此,我的工作非常顺利。 但是当我进入下一部分时 我得到这个错误 问题答案: 这是IDLE和BeautifulSoup对象(子类)之间的错误交互。见问题1757057;已经有一段时间了。 解决方法是先将对象转换为纯unicode值:
问题内容: 如果声明类型为byte或short的变量并尝试对其进行算术运算,则会收到错误“类型不匹配:无法将int转换为short”(或相应的“类型不匹配:不能将int转换为byte”)。 在此示例中,编译错误在第三行。 问题答案: 尽管算术运算符被定义为可以对任何数字类型进行运算,但是根据Java语言规范(5.6.2 Binary Numeric Promotion),字节和short类型的操作
问题内容: 我最近尝试使用sftp访问我的linux机器,在那里我实现了自己的简单外壳。并且我设置了除root用户以外的其他用户默认使用我的shell(通过编辑/ etc / passwd文件)。然后问题出现了,一旦我尝试通过sftp访问,我将收到一条消息:“接收的消息太长:”,我搜索了解决方案,一种解决方案是将该用户的默认shell改回普通的bash shell。我试过了,而且奏效了,问题在于,