【问题标题】:How to create a yml while to create create a new IAM::ROLE in AWS lambda如何在 AWS lambda 中创建新的 IAM::ROLE 时创建 yml
【发布时间】:2020-11-23 14:31:03
【问题描述】:

在 AWS 云形成模板中如何创建新的 lambda(test_lambda_role) 角色

正在访问 s3:getObject, RDS access(rds-db:connect),

Resources:
    Role:  
        Type: AWS::IAM::Role
        Properties:
            RoleName: !Sub test_lambda_role
            AssumeRolePolicyDocument:
                Version: '2012-10-17'
                Statement:
                    - Effect: Allow
                      Principal: 
                          Lambda:
                              - !Sub "arn:aws:iam::${AWS::AccountId}:saml-provider/${pSamlProviderAdmin}"
                      Action: 
                        - rds-db:connect

Lambda 函数未使用上述模板创建

【问题讨论】:

    标签: amazon-web-services templates yaml amazon-cloudformation


    【解决方案1】:

    AssumeRolePolicyDocument 用于信任策略,如下所述:

    因此,只有 lambda 执行角色的模板可以是:

    AWSTemplateFormatVersion: 2010-09-09
    
    Parameters: 
    
      testlambdarole:
        Type: String
        Default: role-name
          
    Resources: 
    
      Role:  
        Type: AWS::IAM::Role
        Properties:
          RoleName: !Ref testlambdarole
          AssumeRolePolicyDocument:
            Version: '2012-10-17'               
            Statement:
              - Effect: Allow
                Principal: {'Service': ['lambda.amazonaws.com']}
                Action: ['sts:AssumeRole']      
          ManagedPolicyArns:
            - arn:aws:iam::aws:policy/AWSLambdaExecute
          Policies:
            - PolicyName: S3Access
              PolicyDocument: 
                Version: "2012-10-17"
                Statement: 
                  - Effect: "Allow"
                    Action: 
                      - s3:getObject
                    Resource: "*"
            - PolicyName: RdsAccess
              PolicyDocument: 
                Version: "2012-10-17"
                Statement: 
                  - Effect: "Allow"
                    Action: 
                      - rds-db:connect
                    Resource: "*"
    

    您需要将Policies 调整为您所需要的。

    【讨论】:

    • 如果我需要红移访问权限,只需再添加一件事也是正确的`-PolicyName:RdsAccess PolicyDocument:版本:“2012-10-17”声明:-效果:“允许”操作: - redshift-db:connect 资源:“*”`
    • @Maws 是的,您可以为其他权限添加新策略。还有其他的可能,但我认为这种方式是最通用的。
    猜你喜欢
    • 2019-02-28
    • 2023-04-10
    • 2019-12-08
    • 2020-03-21
    • 2021-12-30
    • 2021-10-15
    • 2023-01-18
    • 1970-01-01
    • 2016-06-01
    相关资源
    最近更新 更多