2017-02-14 12 views
0

私はこの質問が何度か尋ねられていることを知っており、これに関するいくつかの文書と例を見てきました。しかし、私はまだそれを働かせることができません。送信元IPアドレスがブロックされないAWS S3バケットポリシー

特定の1つのIPアドレスからS3バケットへのアクセスをブロックし、他のすべてのアクセスを許可します。 I IAMロールに属するインスタンスをブロックしたいので、このためにNotIpAddress Conditionを使用しています。以下はバケットに適用したポリシーです:

{ 
    "Version": "2012-10-17", 
    "Id": "Policy1486984747194", 
    "Statement": [ 
     { 
      "Sid": "AllowAllExceptOneIP", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::my-test-bucket", 
      "Condition": { 
       "NotIpAddress": { 
        "aws:SourceIp": "52.38.90.46" 
       } 
      } 
     } 
    ] 
} 

しかし、このポリシーは機能していません。このマシンからバケットにファイルをアップロードすることができます。私はs3-curl.plを使ってファイルを一時的にアップロードしています。

ここで間違っている箇所を見つけてもらえますか?ありがとう。特定のIPからのS3バケットにすべてのアクションをブロックするように

+0

これは、IPを明示的に拒否していません。パブリックACLがある場合、すべてのIPはデフォルトで許可されます。そのIPに対して「拒否」効果を持つ別のステートメントを作成します。 –

+0

@ SergeyKovalev、ありがとう、それで私を助けることができますか?私は '{\t "バージョン" を試みた: "2012年10月17日"、 \t "ID": "Policy1486984747194"、 \t "文":[ \t \t { \t \t \t "シド":「AllowAll 」、 \t \t \t "効果": "校長" \t \t \t、 "許可する":{ \t \t \t \t "AWS": "*" \t \t \t}、 \t \t \t "アクション": "S3:*"、 \t \t \t "リソース": "ARN:AWS:S3 :::私のテスト・バケット" \t \t}、 \t \t { \t \t \t "シド": "DenyOneIP"、 \t \t \t "効果"、 \t \t \t "プリンシパル"、 "拒否":{ \t \t \t \t "AWS": "*" \t \t \t}、 \t \t \t "アクション": "S3:*"、 \t \t \t "リソース":「ARN:AWS:S3 :::私のテスト-bucket」、 \t \t \t "条件":{ \t \t \t \t "IPアドレス":{ \t \t \t \t \t "AWS:SOURCEIP": "52.38.90.46" \t \t \t \t} \t \t \t} \t \t} \t] } ' しかし、これはどちらか動作していません。 – Rashida

+0

私が間違っていたことが分かりました。前述の@SergeyKovalevのように、拒否効果を持つ別のステートメントを作成する必要があります。 "私はリソースを否定していたので": "arn:aws:s3 ::: my-test-bucket"ではなく、arn:aws:s3 ::: my-test-bucket/*、ファイルをアップロードできました。そのIPからブロックされました。 – Rashida

答えて

1

、ポリシーはそのIPのための個別の拒否効果ステートメントを持っている必要があり、サンプル:

{ 
    "Version": "2012-10-17", 
    "Id": "Policy1487062767078", 
    "Statement": [ 
     { 
      "Sid": "AllowAll", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:*", 
      "Resource": [ 
       "arn:aws:s3:::my-test-bucket", 
       "arn:aws:s3:::my-test-bucket/*" 
      ] 
     }, 
     { 
      "Sid": "DenyIP", 
      "Effect": "Deny", 
      "Principal": "*", 
      "Action": "s3:*", 
      "Resource": [ 
       "arn:aws:s3:::my-test-bucket", 
       "arn:aws:s3:::my-test-bucket/*" 
      ], 
      "Condition": { 
       "IpAddress": { 
        "aws:SourceIp": "52.38.90.46" 
       } 
      } 
     } 
    ] 
} 

アクションとリソースは、1つのに必要なものに基づいて変更することができますブロック。

このソリューションを手伝ってくれてありがとう@SergeyKovalevありがとうございます。

関連する問題