如何为S3和CF用户分配对S3存储桶的访问权限?

时间:2016-12-30 16:33:57

标签: amazon-web-services amazon-s3 permissions amazon-cloudfront amazon-iam

我正在尝试为我的S3存储桶设置云端分发。当前不同用户使用S3存储桶,并为这些用户设置存储桶策略。我想为完全不同的用户X设置cloudfront分发。

我创建了分发,将用户X添加到可信签名者。现在我明白我需要创建一个原始访问标识并修改存储桶策略以授予对该标识的访问权限,以便CF可以访问该存储桶。

我想确保我不会从已经拥有它的用户那里拿走S3存储桶访问权限,并允许CF访问该存储桶。我修改了桶策略,如下所示。这是正确的方法吗?

function lw_gpf_exclude_product($excluded, $product_id, $feed_format) {
    // Return TRUE to exclude a product, FALSE to include it, $excluded to use the default behaviour.
    $cats = wp_get_post_terms( $product_id, 'product_cat', array( 'fields' => 'ids' ) );
    if ( in_array( 13, $cats ) ) {
        return TRUE;
    }
    return $excluded;
}

1 个答案:

答案 0 :(得分:0)

是的,这似乎是正确的。

使用以下逻辑处理IAM策略(包括存储桶策略):

  • 如果任何匹配的政策声明拒绝该行动,则拒绝该请求;否则,继续:
  • 如果任何匹配的策略声明允许该操作,则允许该请求;否则,继续:
  • 拒绝请求

在当前情况下,一些请求匹配一个语句,一些请求匹配另一个语句,并且在两种情况下,都允许请求。任何与两种语句都不匹配的请求都将被隐式拒绝。

有些人被绊倒是因为没有完全理解没有匹配deny语句永远被匹配的允许覆盖的事实,但每个匹配allow语句始终被匹配的deny覆盖。你的陈述不否认,所以这不是问题。

另请注意,所有策略语句都经过测试,因此声明声明的顺序并不重要。

  

评估政策的顺序对评估结果没有影响。评估所有策略,结果始终是允许或拒绝请求。

     

http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html