4
如果您拥有大量AWS账户,则Lambda登录CloudWatch可能会成为巨大的隐藏成本,因为无法告知AWS停止在CloudWatch平台上登录。 我发现做到这一点的唯一方法是管理自定义IAM策略(与每一个拉姆达相关)和explicitally拒绝访问日志:...操作:如何停止AWS Lambda功能以登录CloudWatch
{
"Sid": "DisableAllLogs",
"Resource": "*",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Deny"
}
现在我正在努力细化政策,让只有一些lambda登录。要做到这一点我使用的政策条件参数:
{
"Sid": "EnableLogsForWantedLambdaTriggers",
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:lambda:REGION:ACCOUNT-ID:function:FUNCTION-NAME"
}
},
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow"
}
但这种方式没有日志发送到CloudWatch的。我认为源ARN是错误的,但我无法找到正确的。
任何线索?
我假设你在你的CloudFormation创建拉姆达呢?如果是这样,你应该能够用'“Fn :: GetAtt”获取正确的ARN:[“FUNCTION-NAME”,“Arn”]' – Squirrel
我假设删除日志或在一段时间后存档以便存钱被看着。在做所有的功能日志之前,我会这样做,然后选择某些功能并拒绝对它们的访问。 – arjabbar
不幸的是,大部分成本与CloudWatch调用相关,而不是日志存储大小,因此将过期日期设置为1天是不够的 –