2015-11-19 3 views
2

сказать, что у меня есть условие, когда я хочу, чтобы, если запрос не из этих ips ["192.0.2.0/24","203.0.113.0/24"], и если в запросе нет реферера среди следующих [example1.com, example2.com ], то отрицайте это. Я индивидуально знаю, что могу сделать что-то вроде этого:присоединение двух условий в amazon s3 ведро политика

{ 
    "Sid": "6", 
    "Effect": "Allow", 
    "Principal": "*", 
    "Action": "s3:GetObject", 
    "Resource": "arn:aws:s3:::my_bucket/*", 
    "Condition": {  
     "IpAddress":{ 
      "aws:SourceIp": ["192.0.2.0/24","203.0.113.0/24"] 
     }   
    } 
} 

{ 
    "Sid": "7", 
    "Effect": "Deny", 
    "Principal": "*", 
    "Action": "s3:GetObject", 
    "Resource": "arn:aws:s3:::indeev5-dev-media/*/video/*", 
    "Condition": { 
     "StringNotLike": { 
      "aws:Referer": [ 
       "http://example1.com/*", 
       "http://example2.com/*", 
      ] 
     } 
    } 
} 

, но как я могу сделать «и» Проверка here.I.e для обоих условий одновременно. Я опубликовал вопрос, который имел одну и ту же конечную цель, поэтому любые указатели будут высоко оценены here. Короче говоря, я хочу отказаться от всех запросов, которые не относятся к списку рефереров, кроме тех, которые из списка ip. Благодаря

+0

Вы преднамеренно с использованием другого источника в (я не проверял это.) первое и второе утверждение? Это затрудняет ответ. – tedder42

ответ

1

Оказывается, что ваша логика требование:

  • Разрешить любой запрос, где IP находится в ["192.0.2.0/24","203.0.113.0/24"]
  • Разрешить любой запрос, где ссылающейся находится в ["http://example1.com/*", "http://example2.com/*"]

Таким образом, вы можете настроить его как ИЛИ, а не И НЕ, и только с использованием ALLOW, а не DENY. Это позволяет использовать пользовательские политики (которые могут быть переопределены с помощью DENY).

политика будет состоять из двух частей:

  • ПОЗВОЛЯЮТ "Condition": {"IpAddress":{"aws:SourceIp": ["192.0.2.0/24","203.0.113.0/24"]}}
  • ПОЗВОЛЯЮТ "Condition": {"StringLike": {"aws:Referer": ["http://example1.com/*","http://example2.com/*",]}}

+0

Большое спасибо за ваше время @ john.I есть вопрос, так что произойдет, если скажет, что запрос от другого ip (не в нашем списке) с включенным разрешенным сервером приходит, в вашем случае это позволит это, но это не должен, поскольку моя первая часть - Allow, а вторая - Deny. Кроме того, строка, не соответствующая разрешению, заключается в том, когда я хочу заблокировать определенные домены, если не хочу, чтобы мне было немного – Aameer

+0

. Ваш вопрос путается ... Вы поставляете список ДОПУСКОВЫХ рефереров или DENIED рефереров? В вашем вопросе говорится: «И если запрос имеет ссылку среди следующих [example1.com, example2.com], то отрицайте это». –

+0

Извините, я исправлю это, вы правы, обновили вопрос, я поставляю ДОПОЛНИТЕЛЬНЫЕ рефереры – Aameer

Смежные вопросы