私はこの質問が何度か尋ねられていることを知っており、これに関するいくつかの文書と例を見てきました。しかし、私はまだそれを働かせることができません。送信元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バケットにすべてのアクションをブロックするように
これは、IPを明示的に拒否していません。パブリックACLがある場合、すべてのIPはデフォルトで許可されます。そのIPに対して「拒否」効果を持つ別のステートメントを作成します。 –
@ 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
私が間違っていたことが分かりました。前述の@SergeyKovalevのように、拒否効果を持つ別のステートメントを作成する必要があります。 "私はリソースを否定していたので": "arn:aws:s3 ::: my-test-bucket"ではなく、arn:aws:s3 ::: my-test-bucket/*、ファイルをアップロードできました。そのIPからブロックされました。 – Rashida