我想從外部 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"]
但我收到此錯誤:IAM Resource Policy statement shouldnt have Principal or NotPrincipal.
如何使用 Principal 定義將該策略附加到我的 Lambda?
uj5u.com熱心網友回復:
此錯誤是因為您沒有將主體添加到策略中。您需要添加一個權限:
permission:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !GetAtt function.Arn
Action: lambda:InvokeFunction
Principal: 123456789012
在檔案中閱讀更多內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371361.html
