Условия
Условия определяют случаи, в которых действует правило.
Ключ условия | Описание |
---|---|
aws:principaltype |
Задает тип сущности, к которой делается запрос. |
aws:referer |
Сравнивает Referer запроса с заданным в политике. |
aws:securetransport |
Определяет, был ли запрос отравлен с использованием SSL-шифрования. |
aws:sourceip |
Сравнивает IP-адрес, с которого пришел запрос, а также IP-адреса обратных прокси-серверов Если хотя бы один из IP-адресов совпадает c заданными в политике, условие считается выполненным. Подробнее см. Доступ к бакету через цепочку обратных прокси-серверов. |
aws:useragent |
Сравнивает UserAgent запроса с заданными в политике. |
aws:userid |
Сравнивает идентификатор пользователя в IAM с заданным в политике. |
s3:authtype |
Ограничивает входящие запросы заданным методом аутентификации. |
s3:delimiter |
Задает разделитель, который должны включать запросы пользователей. |
s3:max-keys |
Задает максимальное количество ключей, возвращаемых на запрос ListBucket. |
s3:prefix |
Ограничивает доступ по префиксу имени ключа. |
s3:signatureage |
Определяет продолжительность времени, в течение которого действительна подпись запроса аутентификации. |
s3:signatureversion |
Задает версию подписки AWS для запросов аутентификации. |
s3:versionid |
Задает доступ к определенной версии объекта. |
s3:x-amz-acl |
Требует заголовок X-Amz-Acl с заданным ACL в запросе. |
s3:x-amz-content-sha256 |
Запрещает неподписанное содержимое в запросе. |
s3:x-amz-copy-source |
Ограничивает источник копирования определенным бакетом, префиксом или объектом. |
s3:x-amz-grant-full-control |
Требует заголовок X-Amz-Grant-Full-Control (полный доступ) в запросе. |
s3:x-amz-grant-read |
Требует заголовок X-Amz-Grant-Read (доступ на чтение) в запросе. |
s3:x-amz-grant-read-acp |
Требует заголовок X-Amz-Grant-Read (доступ на чтение ACL) в запросе. |
s3:x-amz-grant-write |
Требует заголовок X-Amz-Grant-Write (доступ на запись) в запросе. |
s3:x-amz-grant-write-acp |
Требует заголовок X-Amz-Grant-Write (доступ на запись ACL) в запросе. |
s3:x-amz-metadata-directive |
Задает принудительный выбор копирования или замены при копировании объектов. |
s3:x-amz-server-side-encryption |
Требует шифрования на стороне сервера. |
s3:x-amz-server-side-encryption-aws-kms-key-id |
Требует определенный ключ для шифрования на стороне сервера. |
s3:x-amz-storage-class |
Ограничивает доступ по классу хранилища. |
s3:x-amz-website-redirect-location |
Ограничивает доступ по заданной переадресации веб-сайта, сконфигурированного как статический веб-сайт. |
yc:private-endpoint-id |
Задает доступ через сервисные подключения VPC. Содержит идентификатор сервисного подключения. |
Вы можете настроить для правила одновременно несколько условий и задать для каждого условия несколько ключей. При этом такие условия и их ключи будут проверяться с логикой И
. То есть для выполнения правила запрос должен будет соответствовать сразу всем указанным признакам.
Примеры политик, в которых условия проверяются с логикой И
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::sample-bucket/*",
"Condition": {
"Bool": {
"aws:sourceip": "192.168.1.1"
}
},
"Condition": {
"Bool": {
"aws:userid": "ajelcjkv67ar********"
}
}
}
}
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::sample-bucket/*",
"Condition": {
"Bool": {
"aws:sourceip": "192.168.1.1",
"aws:userid": "ajelcjkv67ar********"
}
}
}
}
Для каждого ключа условия вы можете задать одновременно несколько значений. При этом такие значения будут проверяться с логикой ИЛИ
. То есть для выполнения правила запрос должен будет соответствовать любому из заданных значений ключа условия.
Пример политики, в которой условия проверяются с логикой ИЛИ
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::sample-bucket/*",
"Condition": {
"Bool": {
"aws:sourceip": [
"192.168.1.1",
"192.168.1.2"
]
}
}
}
}
Операторы условия
Операторы условия применяются для проверки соответствия значения ключа в условии политики со значением в контексте запроса.
Логические операторы
Логические операторы позволяют создавать условия для сравнения ключа со логическим значением true
или false
.
Оператор условия | Описание |
---|---|
Bool |
Соответствует заданному логическому значению. |
Операторы даты и времени
Операторы даты и времени позволяют создавать условия для сравнения ключа со значением даты и времени.
Оператор условия | Описание |
---|---|
DateEquals |
Соответствует заданной дате. |
DateGreaterThan |
Дата и время больше указанных. |
DateGreaterThanEquals |
Дата и время соответствует или больше указанных. |
DateLessThan |
Дата и время меньше указанных. |
DateLessThanEquals |
Дата и время соответствует или меньше указанных. |
DateNotEquals |
Не соответствует заданной дате. |
Операторы IP-адресов
Операторы IP-адресов позволяют создавать условия для сравнения ключа с IP-адресом хоста или диапазоном IP-адресов в формате CIDR
Оператор условия | Описание |
---|---|
IPAddress |
Определенный IP-адрес или диапазон IP-адресов. |
NotIPAddress |
Все IP-адреса, кроме указанного IP-адреса или диапазона IP-адресов. |
Числовые операторы
Числовые операторы позволяют создавать условия для сравнения ключа с числовым значением типа integer или decimal.
Оператор условия | Описание |
---|---|
NumericEquals |
Значение равно заданному. |
NumericGreaterThan |
Значение больше заданного. |
NumericGreaterThanEquals |
Значение больше либо равно заданного. |
NumericLessThan |
Значение меньше заданного. |
NumericLessThanEquals |
Значение меньше либо равно заданного. |
NumericNotEquals |
Значение не равно заданному. |
Строковые операторы
Строковые операторы позволяют создавать условия для сравнения ключа со строковым значением.
Оператор условия | Описание |
---|---|
StringEquals |
Значение соответствует, учитывается регистр символов. |
StringEqualsIgnoreCase |
Значение соответствует, не учитывается регистр символов. |
StringLike |
Значение соответствует. В значениях можно использовать знаки подстановки: - * – несколько символов.- ? – один символ. |
StringNotEquals |
Значение не соответствует, учитывается регистр символов. |
StringNotEqualsIgnoreCase |
Значение не соответствует, не учитывается регистр символов. |
StringNotLike |
Значение не соответствует. В значениях можно использовать знаки подстановки: - * – несколько символов.- ? – один символ. |
Оператор IfExists
К имени любого оператора (кроме Null) можно добавить IfExists
— например, BoolIfExists
. Элемент условия с подобным оператором означает:
- Если ключ политики присутствует в контексте запроса, ключ будет обработан, как указано в политике.
- Если ключ отсутствует, элемент примет значение
true
.
Оператор Null
Результат оператора Null
принимает значение true
, если ключ условия отсутствует в запросе в момент аутентификации. Если ключ присутствует и его значение задано, результат равен false
.