Мне нужно создать политику AWS Bucket, которая блокирует все внешние IP-адреса, кроме IP-адреса нашего офиса, но все же позволяет функциям Lambda получить доступ к Bucket.
Я знаю, как заставить это работать, используя AWS VP C и NAT, однако из-за высоких затрат клиент не хочет их активировать.
Пока так выглядит моя политика корзины, но она не работает:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "GiveSESPermissionToWriteEmail",
"Effect": "Allow",
"Principal": {
"Service": "ses.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::files-dev/*"
},
{
"Sid": "SourceIP",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::files-dev/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"81.111.111.111/24"
]
}
}
},
{
"Sid": "GiveLambdaPermisssion",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::6XXXXXX:role/app-backend-dev-lambdaFunctionRole-1XXXX"
],
"Service": "lambda.amazonaws.com"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::files-dev/*"
}
]
}
Я думаю, что прочитал всю документацию AWS, которую смог найти, но не смог найти то, что искал. Это может быть потому, что их документы настолько запутаны и не охватывают всю функциональность. Я также искал решения здесь, на StackOverflow и других форумах, но ничего не помогло.