У вас есть политика сегмента, которая относится к области и применяется к любому пользователю или роли, которые пытаются выполнять операции с этим сегментом. Ссылка, на которую вы ссылаетесь, касается политик пользователей и ролей, которые применяются только к конкретным пользователям. Когда пользователь или роль выполняет операции с сегментом, сочетание их политик и политики сегмента определяет, что ему разрешено делать.
Сочетание политики пользователя или роли с политикой сегмента - это не объединение, а скорее пересечение. Под этим я подразумеваю, что, если политика пользователя или роли не предоставляет, скажем, s3:GetObject
, не имеет значения, что политика сегмента предоставляет это действие. И политика пользователя или роли и политика сегмента должна предоставлять ее. На самом деле это еще сложнее, когда вы принимаете во внимание принципы - но ваша политика ведра распространяется на всех, так что здесь это не так.
Вы говорите, что ваша политика работает, но не разрешает запросы от Афины. Это правда, так как это политика сегмента, она ничего не предоставляет ни пользователю, ни роли, она просто указывает, что пользователю или роли будет разрешено делать, если им иным образом будет разрешен доступ к блоку. Кроме того, ваша политика просто отрицает вещи. Явное отрицание не означает разрешать все остальное, это просто означает, что, даже если что-то иное разрешает вещи, упомянутые в вашей политике, ваша политика будет отменять это (в данном случае: даже если политика пользователя или роли позволила s3:GetObject
, ваша политика будет запрещать это действие, если исходный IP-адрес соответствует одному из упомянутых - я полагаю, что это ваше намерение).
Пользователь или роль, которую вы используете для выполнения запроса Athena, должны иметь разрешение на
- выполнение запросов в Афине,
- доступ к объектам каталога (то есть базам данных и таблицам) в Glue
- доступ к корзине S3, где могут храниться результаты запроса, и
- доступ к корзине S3 и объектам, которые необходимо прочитать для выполнения запроса.
Управляемые политики, на которые вы ссылаетесь, помогут с 1-3, но вы должны написать 4. Когда запрос будет выполнен, IAM оценит 1-4 плюс политику сегмента, чтобы увидеть, разрешено ли запускать пользователю или роли запрос.