【问题标题】:Granting write access to S3 in python cdk在 python cdk 中授予对 S3 的写访问权限
【发布时间】:2021-12-28 16:38:17
【问题描述】:

我能够按照这个示例1 让我的 ec2 实例从 S3 读取。 为了写入同一个存储桶,我想将第 572 行从 grant_read() 更改为 grant_read_write() 应该可以。

    ...
            # Userdata executes script from S3
            instance.user_data.add_execute_file_command(
                file_path=local_path
                )
            # asset.grant_read(instance.role)
            asset.grant_read_write(instance.role) 
    ...

但是根据报错信息,无法访问记录在案的3函数。

>> 57: Pyright: Cannot access member "grant_read_write" for type "Asset"

我错过了什么?


1https://github.com/aws-samples/aws-cdk-examples/tree/master/python/ec2/instance

2https://github.com/aws-samples/aws-cdk-examples/blob/master/python/ec2/instance/app.py#L57

3https://docs.aws.amazon.com/cdk/latest/guide/permissions.html#permissions_grants

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-cdk


    【解决方案1】:

    这是资产的documentation:

    资产代表一个本地文件或目录,它会自动 上传到 S3,然后可以在 CDK 应用程序中引用。

    没有提供方法grant_read_write,因为它没有意义。您链接的文档不适用于此处。

    【讨论】:

      【解决方案2】:

      资产只是一个 Zip 文件,将上传到引导的 CDK s3 存储桶,然后在部署时由 Cloudformation 引用。

      如果您想要将脚本放入 s3 存储桶中,则您不想使用任何形式的资产,因为它是一个 zip 文件。一旦存储桶已经存在,您将更适合使用 boto3 命令上传它,或者使其成为 codePipeline 的一部分以使用 CDK 创建存储桶,然后管道中的下一步上传它。

      在这种情况下,grant_read_write 用于aws_cdk.aws_s3.Bucket 构造。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-07
        • 1970-01-01
        • 2016-09-05
        相关资源
        最近更新 更多