簡體   English   中英

如何在 Cloudformation 中編寫基於資源的策略

[英]How to write Resource-based policy in Cloudformation

我想從外部 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?

此錯誤是因為您沒有將主體添加到策略中。 您需要添加權限:

  permission:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !GetAtt function.Arn
      Action: lambda:InvokeFunction
      Principal: 123456789012

文檔中閱讀更多內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM