zoukankan      html  css  js  c++  java
  • AWS中S3的Bucket桶访问策略

    S3的访问控制有几种:

    对用户的访问控制

    对桶的访问控制

    今天研究了一下对桶的访问控制。

    我新建了一个桶,下面有好多的folder,需要针对某一folder设置外部匿名访问权限的开放。

    如果你在控制台点击这个folder,对其设置“make public”的权限设置(图一),

    他会询问你是否将该folder以及其下包含的文件(它会统计个数)全部设置为对所有人可读(图二)。

    那你肯定会选择是啦,但是,这只针对当前存在于此folder中的文件所言

    问题来了,如果我们之后还会不断在这个folder下添加文件,并且新的添加进去的文件都要可以对外可读,该肿么办呢?

    我要设置整个桶都对外可读吗?这样做的风险未免有些大。

    一说是,在上传文件的时候,有接口可以实现该被上传的文件设置为public权限。

     1 _s3Client.MakeObjectPublic(bucketName,objectKey,true); 2 _s3Client.MakeObjectPublicAsync(bucketName,objectKey,true); 

    此种需要在代码层实现,应用起来多有不便。灵活性又不够。当然也有他固有的优点。

    另一种是,在整个bucket的permission中设置对everyone可读。嗯,不知道为什么我设置了,但是不起作用。┓( ´∀` )┏

    还有一种方法比较简单,就是做一个针对此folder的策略。

    在控制台点开permission-->bucket policy,复制黏贴进这段代码即可。

     1 {
     2     "Version": "2012-10-17",
     3     "Statement": [
     4         {
     5             "Sid": "AddPerm",
     6             "Effect": "Allow",
     7             "Principal": "*",
     8             "Action": "s3:GetObject",
     9             "Resource": "arn:aws-cn:s3:::bucketname/foldername/*"
    10         }
    11     ]
    12 }

    你问我,这策略怎么写啊?我想做些别的设置怎么办呢?

    其实AWS自带了policygen,可以用来生成。https://awspolicygen.s3.amazonaws.com/policygen.html

    A Policy is a container for permissions. The different types of policies you can create are an IAM Policy, an S3 Bucket Policy, an SNS Topic Policy, a VPC Endpoint Policy, and an SQS Queue Policy.

    这是一个很好用的AWS自己的生成器,支持好多种AWS的policy,只是好像不支持中国地区。。,因此在resource中替换你原来bucket的region黏贴入Amazon Resource Name (ARN)

     1 arn:aws-cn:s3:::bucketname/foldername/* 2 3 -->替换region 4 5 arn:aws:s3:::bucketname/foldername/* 

    生成后再把region替换回来即可啦。(~ ̄▽ ̄)~

  • 相关阅读:
    回调函数和表驱动法编程
    学会看datasheet W25Q128为例
    STM32 Makefile的一次bug解决过程
    STM32 一种参数检查用法介绍
    STM32 中断和事件
    STM32 OV2640将数据缓存至SRAM
    STM32 .ld链接文件分析及一次bug解决过程
    浅谈嵌入式软件设计
    STM32 Makefile的设置和工程管理
    [转]Linux下的lds链接脚本详解
  • 原文地址:https://www.cnblogs.com/riusmary/p/8573681.html
Copyright © 2011-2022 走看看