0
我知道這個問題已被問了幾次,並且我已經通過了一些文檔和示例。但是我仍然無法讓它工作。AWS S3存儲桶策略阻止源IP地址不起作用
我想阻止一個特定的IP地址訪問我的S3存儲,並允許所有其他人。我不要想要阻止屬於IAM角色的實例,因此我使用NotIpAddress條件。以下是我在我的存儲區上應用的政策:
{
"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。如果您擁有公共ACL,則默認情況下將允許所有IP。爲該IP創建另一個具有「拒絕」效果的語句。 –
@SergeyKovalev,謝謝,你能幫我解決這個問題嗎?我試圖 '{ \t 「版本」: 「2012年10月17日」, \t 「ID」: 「Policy1486984747194」, \t 「聲明」: \t \t { \t \t \t 「SID」:「AllowAll 」 \t \t \t 「效果」: 「允許」, \t \t \t 「校長」:{ \t \t \t \t 「AWS」: 「*」 \t \t \t}, \t \t \t 「行動」: 「S3:*」, \t \t \t 「資源」: 「阿爾恩:AWS:S3 :::我的測試鬥」 \t \t}, \t \t { \t \t \t 「SID」: 「DenyOneIP」, \t \t \t 「效果」: 「拒絕」, \t \t \t 「校長」:{ \t \t \t \t 「AWS」: 「*」 \t \t \t}, \t \t \t 「行動」: 「S3:*」, \t \t \t 「資源」:「阿爾恩: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