gpt4 book ai didi

aws-lambda - 如何使用 cloudformation 和 SAM 将所需的策略添加到 lambda

转载 作者:行者123 更新时间:2023-12-03 07:41:03 25 4
gpt4 key购买 nike

我想创建一个可以访问 dynamoDB 和其他 lambda 函数的 lambda 函数。但是,我不知道如何为 SAM 制作适当的 YAML 模板来授予适当的权限。

特别是,我不明白包括定义在内的令人困惑的3个条目权限(AWS::IAM::Role、AWS::Serverless::Function、AWS::Lambda::Permission)。我应该使用哪个条目来添加必要的权限?

下面是我的 YAML。但创建的 my_lambda_role 没有 AWSLambdaRole 策略和 dynamoDB 策略。因此,lambda 无法访问 dynamoDB。请告诉我如何修复它。

  MyLambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: lambda.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
- arn:aws:iam::aws:policy/service-role/AWSLambdaRole
RoleName: my_lambda_role

OnConnectFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: onconnect/
Handler: index.lambda_handler
MemorySize: 256
Role: !GetAtt MyLambdaRole.Arn
Runtime: python3.6
Environment:
Variables:
TABLE_NAME: !Ref TableName
Policies:
- DynamoDBCrudPolicy:
TableName: !Ref TableName
- Statement:
- Effect: Allow
Action:
- 'execute-api:ManageConnections'
Resource:
- 'arn:aws:execute-api:*:*:*/@connections/*'

OnConnectPermission:
Type: AWS::Lambda::Permission
DependsOn:
- MyAPI
Properties:
Action: lambda:InvokeFunction
FunctionName: !Ref OnConnectFunction
Principal: apigateway.amazonaws.com

最佳答案

您可以添加缺少的政策。根据您的需要,但如果您想要完全访问权限,则可以添加 AmazonDynamoDBFullAccess:

      ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
- arn:aws:iam::aws:policy/service-role/AWSLambdaRole
- arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess

关于aws-lambda - 如何使用 cloudformation 和 SAM 将所需的策略添加到 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68244949/

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