gpt4 book ai didi

amazon-web-services - lambda 函数 IAM 角色是否需要 IAM 权限才能调用自身?

转载 作者:行者123 更新时间:2023-12-05 02:55:56 24 4
gpt4 key购买 nike

问题

lambda 函数的 IAM 角色是否需要 IAM 权限才能调用自身?

背景

阅读 Tutorial: Process New Items with DynamoDB Streams and Lambda .

enter image description here

看起来处理 DynamoDB 流记录的 lambda 函数的 IAM 角色具有调用该函数本身(以及加上)的 IAM 权限。

"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:region:accountID:function:publishNewBark*"

WooferLambdaRolePolicy

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:region:accountID:function:publishNewBark*"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:region:accountID:*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:DescribeStream",
"dynamodb:GetRecords",
"dynamodb:GetShardIterator",
"dynamodb:ListStreams"
],
"Resource": "arn:aws:dynamodb:region:accountID:table/BarkTable/stream/*"
},
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": [
"*"
]
}
]
}
aws iam put-role-policy --role-name WooferLambdaRole \
--policy-name WooferLambdaRolePolicy \
--policy-document file://role-policy.json

aws lambda create-function \
--region us-east-1 \
--function-name publishNewBark \
--zip-file fileb://publishNewBark.zip \
--role roleARN \ <--- Replace roleARN with the ARN for WooferLambdaRole.
--handler publishNewBark.handler \
--timeout 5 \
--runtime nodejs10.x

调用lambda函数本身的IAM权限是否需要附加到lambda的IAM角色?或者是否有与 DynamoDB 流处理相关的特定原因?

最佳答案

您描述的是 AWS Lambda Event Source Mapping 的示例并且仅适用于 Kinesis、DynamDB 和 SQS。

但是,您并未授予函数调用自身的权限。相反,您授予 AWS Lambda 服务(而不是您的函数)调用您的函数的权限。原因是 Lambda 服务将在后台代表您处理 DynamoDB 流,并且它将在可用时使用流的记录调用您的函数。

请注意,WooferLambdaRole 角色的信任策略适用于 lambda.amazonaws.com:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}

信任策略意味着 lambda 服务(同样不是您的函数,而是 aws lambda 服务本身)将能够承担包含 WooferLambdaRolePolicy 的角色。随后,lambda 服务将能够与 DynamoDB 一起工作并调用您的函数。

关于amazon-web-services - lambda 函数 IAM 角色是否需要 IAM 权限才能调用自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60942182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com