amazon-web-services - cloudformation中定义的资源权限

标签 amazon-web-services amazon-s3 aws-lambda aws-cloudformation

我正在制作一个 cloudformation 模板来创建具有其权限的 lambda。 我需要访问特定的 s3 存储桶,并且放置其特定的 arn,但是当我执行 lambda 时,它告诉我它没有访问该存储桶 (getObject) 的权限,但如果我输入 s3 的几乎全名只是我在末尾添加了 *,如果它允许我访问该存储桶中的文件。

存储桶名称:bucket-test-impl

LambdaSSMPermissions:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lambda.amazonaws.com
            Action:
              - sts:AssumeRole
      Policies:
        - PolicyName: allowSsmS3
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - ssm:PutParameters
                  - ssm:PutParameter
                  - s3:GetObject
                Resource:
                  - arn:aws:s3:::bucket-test-* //THIS WORKS
                  - arn:aws:s3:::bucket-test-impl //IT DOESN'T WORK AND IT'S THE ONE I NEED, 
                  - !Sub 'arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/abcd/*/*'
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'

最佳答案

要访问 s3 存储桶,您必须在路径末尾提供/*。

改变

arn:aws:s3:::bucket-test-impl

arn:aws:s3:::bucket-test-impl/*

关于amazon-web-services - cloudformation中定义的资源权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74536926/

相关文章:

javascript - 如何修复 Cloudflare Worker 中的 'Uncaught (in promise) TypeError: Cannot read property ' 方法“未定义”?

amazon-web-services - 如何销毁 aws SAM Local lambda?

amazon-web-services - 获取 AWS 实例的最新 AMI ID

ruby-on-rails - Rails 4,如何将 s3 图像添加到 wicked pdf

postgresql - AWS DMS CDC 任务不检测列名称和类型更改

amazon-web-services - 卡夫卡 + AWS lambda

amazon-web-services - 如何将默认 VPC 导入 CloudFormation 堆栈并使用 AWS CDK 重新创建它?

java - 使用 Java SDK 列出 Amazon S3 中的所有对象

amazon-web-services - 使用 AWS lambda 的异步后台作业

node.js - NodeJS csv 数据转储到 s3 对象