aka*_*kai 5 amazon-web-services aws-cloudformation amazon-iam aws-sam
我想从外部 AWS 账户调用 Lambda,我设法通过在控制台的基于资源的策略选项卡(Lambda > 配置 > 权限 > 基于资源的策略)中创建策略语句来实现此目的。尽管如此,我找不到在我的 CloudFormation 模板中编写这样的策略的方法。这是我写的:
InvokePolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: 'InvokeLambdaFromGateway'
Roles:
- !Sub "arn:aws:iam::${AWS::AccountId}:role/NameOfLambda"
PolicyDocument:
Version: '2012-10-17'
Statement:
- Sid: InvokeLambdaExternally
Effect: Allow
Resource:
- !Ref NameOfLambda
Action:
- lambda:InvokeFunction
Principal:
AWS: ["arn:aws:iam::AccountIUseToInvokeTheLambda:root"]
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:IAM Resource Policy statement shouldnt have Principal or NotPrincipal。
如何使用主体定义将该策略附加到我的 Lambda?
此错误是因为您没有将主体添加到策略中。您需要添加一个权限:
permission:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !GetAtt function.Arn
Action: lambda:InvokeFunction
Principal: 123456789012
Run Code Online (Sandbox Code Playgroud)
请阅读文档了解更多内容。
| 归档时间: |
|
| 查看次数: |
4785 次 |
| 最近记录: |