[英]Using aws:ResourceTag in conditions on an IAM policy for lambda functions does not work
[英]AWS IAM Policy Assistance with Lambda Permissions for SMTP
我正在創建一個 lambda function 來發送電子郵件(沒什么新東西)。 我在制定政策時遇到問題。 TFSec 使用 Resource 元屬性阻止了我,並指出不允許使用“*”。 所以我想做的就是將我的策略限制為我的 lambda function。我想我可以像過去那樣動態創建 ARN。 好吧,我發現它起作用的唯一方法是利用“條件”元屬性但是......,當我使用條件時,我得到這個錯誤:
│ 錯誤:創建錯誤 Lambda Function (1): InvalidParameterValueException: 提供的執行角色沒有在 EC2 上調用 CreateNetworkInterface 的權限
│ { │ RespMetadata: { │ StatusCode: 400, │ RequestID: "3b8fc1dd-21d8-xxxx-xxx-xxxxxxx" │ }, │ Message_: "提供的執行角色無權在 EC2 上調用 CreateNetworkInterface", │ 類型: “用戶”│}
讓我難受的是我的政策中設置了權限,見下文:
resource "aws_iam_role_policy" "lambda_sendmail_policy" {
name = "lambda-sendmail"
role = aws_iam_role.lambda_sendmail_role.id
policy = jsonencode({
"Version" : "2012-10-17",
"Statement" : [
{
"Sid" : "Stmt163546987325",
"Effect" : "Allow",
"Action" : [
"ec2:DescribeInstances",
"ec2:CreateNetworkInterface",
"ec2:AttachNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DeleteNetworkInterface",
"autoscaling:CompleteLifecycleAction"
],
"Resource" : "*",
"Condition" : {
"StringEquals" : {
"lambda:FunctionArn" : "arn:aws:lambda:us-east-1:${local.accountid}:function:${var.appenv}-${var.lambda_appname}"
}
}
},
{
"Effect" : "Allow",
"Action" : [
"logs:PutLogEvents",
"logs:CreateLogStream"
],
"Resource" : [
"arn:aws:logs:us-east-1:${local.accountid}:log-group:/aws/lambda/*"
]
},
{
"Effect" : "Allow",
"Action" : [
"xray:PutTraceSegments",
"xray:PutTelemetryRecords"
],
"Resource" : "*"
}
]
})
}
顯然有權限,但我錯誤地傳遞了 Lambda ARN,這里需要一些幫助。
如果我刪除條件,它會起作用,但 TFSEC 發現我告訴我需要指定資源。
我不確定條件屬性是否支持 Lambda,但這里的任何幫助都會很棒。
您不能將此條件用於提到的 ec2 操作:
"Condition" : {
"StringEquals" : {
"lambda:FunctionArn" : "arn:aws:lambda:us-east-1:${local.accountid}:function:${var.appenv}-${var.lambda_appname}"
}
}
用於大多數 ec2:* 操作的條件是......
"Condition": {
"ArnLikeIfExists": {
"ec2:Vpc": "your_vpc_arn"
}
}
此塊限制對 function 共享的 vpc 的權限,並且對於某些 lambda 操作(例如創建/更新,其中 api 調用不包括 vpc arn)無法為真。 這幾乎是你能得到的最嚴格的政策。
我也會將自動縮放移動到它自己的塊中,因為你絕對可以收緊它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.