単純なWebホストとしてs3バケットを使用しようとしていますが、必要なセキュリティコントロールをレイヤーできるリバースプロキシの背後に配置したいと考えています。AWSリバースプロキシのバケットポリシー
私はリバースプロキシに関連付けられたIPアドレスを持っており、s3 Webアクセスを制限したいと考えています。バケツポリシーにIPベースの制限を適用すると、アカウントの管理上のやり取りをブロックするのが非常に難しいようです。
コンソール/ IAMユーザー/フェデレーションの役割でアカウント内からのアクセスを中断しないでくださいが、リバースプロキシに関連付けられたIPだけのs3サイトへのHTTPアクセスを有効にします。
Webアクセスを有効にするために必要なものに関するAWSのドキュメントには、このポリシーステートメントが必要であることが示されています。
次に、Webトラフィックを特定のIPセットに制限して、このステートメントを追加します。
{
"Id": "S3_Policy",
"Statement": [
{
"Sid": "AllowWebAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Sid": "DenyNonProxyWebAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"99.99.99.1/32",
"99.99.99.2/32",
"99.99.99.3/32",
"99.99.99.4/32",
"99.99.99.5/32"
]
}
}
}
]
}
このポリシーを否定するには、IAMユーザーとアカウントの中からそれにアクセスしたり、連合の役割を仮定するために私の能力を阻止する意図せぬ結果を持っているので、私は、これらのリソースを可能に明示的に追加されました。可能であれば、 "口座"にブランケットを許可するだけです。それは私にこの政策を残し、私はそれをどのようにしたいのかちょうどうまくいかないようです。私はそれをユーザーとして管理したり、プロキシからWebコンテンツにアクセスすることはできません。
{
"Id": "S3_Policy",
"Statement": [
{
"Sid": "AllowWebAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Sid": "DenyNonProxyWebAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"99.99.99.1/32",
"99.99.99.2/32",
"99.99.99.3/32",
"99.99.99.4/32",
"99.99.99.5/32"
]
}
}
},
{
"Sid": "AllowAccountUsersAccess",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:IAM::999999999999:user/[email protected]",
"arn:aws:IAM::999999999999:user/[email protected]",
"999999999999"
]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::my bucket"
]
}
]
}
S3バケットはアカウントからバケット自体を管理する機能を中断することなくIPは、Webアクセスのための範囲のみ選択に制限静的なWebホストである持っている方法はありますか?