[ aws . verifiedpermissions ]
is-authorized
Описание
Выполняет решение об авторизации запроса на обслуживание, описанного в параметрах. Информация в параметрах также может определять дополнительный контекст, который Verified Permissions может включить в оценку. Запрос оценивается по всем соответствующим политикам в указанном хранилище политик. Результатом решения является либо Allow, либо Deny, а также список политик, которые привели к этому решению.
См. также: Документацию API AWS
Синтаксис
is-authorized
--policy-store-id <value>
[--principal <value>]
[--action <value>]
[--resource <value>]
[--context <value>]
[--entities <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--policy-store-id (строка)
--principal (структура)
Указывает принципал, для которого должно быть принято решение об авторизации.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "Краткая форма:
entityType=string,entityId=string
Синтаксис JSON:
{
"entityType": "string",
"entityId": "string"
}
--action (структура)
Указывает запрашиваемое действие для авторизации. Например, авторизован ли принципал для выполнения этого действия над ресурсом?
actionType -> (строка)
actionId -> (строка)
Краткая форма:
actionType=string,actionId=string
Синтаксис JSON:
{
"actionType": "string",
"actionId": "string"
}
--resource (структура)
Указывает ресурс, для которого должно быть принято решение об авторизации.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "Краткая форма:
entityType=string,entityId=string
Синтаксис JSON:
{
"entityType": "string",
"entityId": "string"
}
--context (структура помеченного объединения)
Указывает дополнительный контекст, который может быть использован для принятия более точных решений об авторизации.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть задан:contextMap, cedarJson.contextMap -> (массив)
Список атрибутов, необходимых для успешной оценки запроса на авторизацию. Каждый атрибут в этом массиве должен включать карту типа данных и его значения.
Пример: "contextMap":{"<KeyName1>":{"boolean":true},"<KeyName2>":{"long":1234}}
key -> (строка)
value -> (структура помеченного объединения)
Значение атрибута.
Содержит информацию о контексте выполнения запроса, для которого принимается решение об авторизации.
Этот тип данных используется в качестве члена структуры ContextDefinition, которая используется в качестве параметра запроса для операций IsAuthorized , BatchIsAuthorized и IsAuthorizedWithToken.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть задан:boolean, entityIdentifier, long, string, set, record, ipaddr, decimal.boolean -> (булево)
Значение атрибута типа Boolean.
Пример: {"boolean": true}
entityIdentifier -> (структура)
Значение атрибута типа EntityIdentifier.
Пример: "entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "long -> (целое число)
Значение атрибута типа Long.
Пример: {"long": 0}
string -> (строка)
Значение атрибута типа String.
Пример: {"string": "abc"}
set -> (список)
Значение атрибута типа Set.
Пример: {"set": [ {} ] }
(структура помеченного объединения)
Значение атрибута.
Содержит информацию о контексте выполнения запроса, для которого принимается решение об авторизации.
Этот тип данных используется в качестве члена структуры ContextDefinition, которая используется в качестве параметра запроса для операций IsAuthorized , BatchIsAuthorized и IsAuthorizedWithToken.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть задан:boolean, entityIdentifier, long, string, set, record, ipaddr, decimal.boolean -> (булево)
Значение атрибута типа Boolean.
Пример: {"boolean": true}
entityIdentifier -> (структура)
Значение атрибута типа EntityIdentifier.
Пример: "entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "long -> (целое число)
Значение атрибута типа Long.
Пример: {"long": 0}
string -> (строка)
Значение атрибута типа String.
Пример: {"string": "abc"}
set -> (список)
Значение атрибута типа Set.
Пример: {"set": [ {} ] }
( … рекурсивно … )
record -> (массив)
Значение атрибута типа Record.
Пример: {"record": { "keyName": {} } }
key -> (строка)
( … рекурсивно … )
ipaddr -> (строка)
Значение атрибута типа ipaddr.
Пример: {"ip": "192.168.1.100"}
decimal -> (строка)
Значение атрибута типа decimal.
Пример: {"decimal": "1.1"}
record -> (массив)
Значение атрибута типа Record.
Пример: {"record": { "keyName": {} } }
key -> (строка)
value -> (структура помеченного объединения)
Значение атрибута.
Содержит информацию о контексте выполнения запроса, для которого принимается решение об авторизации.
Этот тип данных используется в качестве члена структуры ContextDefinition, которая используется в качестве параметра запроса для операций IsAuthorized , BatchIsAuthorized и IsAuthorizedWithToken.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть задан:boolean, entityIdentifier, long, string, set, record, ipaddr, decimal.boolean -> (булево)
Значение атрибута типа Boolean.
Пример: {"boolean": true}
entityIdentifier -> (структура)
Значение атрибута типа EntityIdentifier.
Пример: "entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "long -> (целое число)
Значение атрибута типа Long.
Пример: {"long": 0}
string -> (строка)
Значение атрибута типа String.
Пример: {"string": "abc"}
set -> (список)
Значение атрибута типа Set.
Пример: {"set": [ {} ] }
( … рекурсивно … )
record -> (массив)
Значение атрибута типа Record.
Пример: {"record": { "keyName": {} } }
key -> (строка)
( … рекурсивно … )
ipaddr -> (строка)
Значение атрибута типа ipaddr.
Пример: {"ip": "192.168.1.100"}
decimal -> (строка)
Значение атрибута типа decimal.
Пример: {"decimal": "1.1"}
ipaddr -> (строка)
Значение атрибута типа ipaddr.
Пример: {"ip": "192.168.1.100"}
decimal -> (строка)
Значение атрибута типа decimal.
Пример: {"decimal": "1.1"}
cedarJson -> (строка)
Представление строки Cedar JSON контекста, необходимого для успешной оценки запроса на авторизацию.
Пример: {"cedarJson":"{\"<KeyName1>\": true, \"<KeyName2>\": 1234}" }
Синтаксис JSON:
{
"contextMap": {"string": {
"boolean": true|false,
"entityIdentifier": {
"entityType": "string",
"entityId": "string"
},
"long": long,
"string": "string",
"set": [
{
"boolean": true|false,
"entityIdentifier": {
"entityType": "string",
"entityId": "string"
},
"long": long,
"string": "string",
"set": [
{ ... recursive ... }
...
],
"record": {"string": { ... recursive ... }
...},
"ipaddr": "string",
"decimal": "string"
}
...
],
"record": {"string": {
"boolean": true|false,
"entityIdentifier": {
"entityType": "string",
"entityId": "string"
},
"long": long,
"string": "string",
"set": [
{ ... recursive ... }
...
],
"record": {"string": { ... recursive ... }
...},
"ipaddr": "string",
"decimal": "string"
}
...},
"ipaddr": "string",
"decimal": "string"
}
...},
"cedarJson": "string"
}
--entities (структура помеченного объединения)
(Необязательно) Указывает список ресурсов, принципалов и их связанных атрибутов, которые Verified Permissions может проверить при оценке политик. Эти дополнительные сущности и их атрибуты могут быть обработаны и проверены условными элементами в политиках в указанном хранилище политик.
Примечание
Вы можете включать только сущности принципалов и ресурсов в этот параметр; вы не можете включать действия. Вы должны указать действия в схеме.Примечание
Это структура помеченного объединения. Только один из следующих ключей верхнего уровня может быть задан:entityList, cedarJson.entityList -> (список)
Массив сущностей, необходимых для успешной оценки запроса авторизации. Каждая сущность в этом массиве должна содержать идентификатор сущности, атрибуты сущности и список родительских сущностей.
Примечание
Если вы включаете несколько сущностей с одинаковымidentifier, только последняя обрабатывается в запросе.(структура)
Содержит информацию об сущности, которая может быть использована в политике Cedar.
Этот тип данных используется в качестве одного из полей в структуре EntitiesDefinition.
{ "identifier": { "entityType": "Photo", "entityId": "VacationPhoto94.jpg" }, "attributes": {}, "parents": [ { "entityType": "Album", "entityId": "alice_folder" } ] }identifier -> (структура)
Идентификатор сущности.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "attributes -> (карта)
Список атрибутов для сущности.
key -> (строка)
value -> (структура помеченного объединения)
Значение атрибута.
Содержит информацию о контексте выполнения для запроса, для которого принимается решение об авторизации.
Этот тип данных используется как член структуры ContextDefinition, которая используется в качестве параметра запроса для операций IsAuthorized, BatchIsAuthorized и IsAuthorizedWithToken.
Примечание
Это структура помеченного объединения. Только один из следующих ключей верхнего уровня может быть задан:boolean, entityIdentifier, long, string, set, record, ipaddr, decimal.boolean -> (логическое)
Значение атрибута типа Boolean.
Пример: {"boolean": true}
entityIdentifier -> (структура)
Значение атрибута типа EntityIdentifier.
Пример: "entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "long -> (длинное целое)
Значение атрибута типа Long.
Пример: {"long": 0}
string -> (строка)
Значение атрибута типа String.
Пример: {"string": "abc"}
set -> (список)
Значение атрибута типа Set.
Пример: {"set": [ {} ] }
(структура помеченного объединения)
Значение атрибута.
Содержит информацию о контексте выполнения для запроса, для которого принимается решение об авторизации.
Этот тип данных используется как член структуры ContextDefinition, которая используется в качестве параметра запроса для операций IsAuthorized, BatchIsAuthorized и IsAuthorizedWithToken.
Примечание
Это структура помеченного объединения. Только один из следующих ключей верхнего уровня может быть задан:boolean, entityIdentifier, long, string, set, record, ipaddr, decimal.boolean -> (логическое)
Значение атрибута типа Boolean.
Пример: {"boolean": true}
entityIdentifier -> (структура)
Значение атрибута типа EntityIdentifier.
Пример: "entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "long -> (длинное целое)
Значение атрибута типа Long.
Пример: {"long": 0}
string -> (строка)
Значение атрибута типа String.
Пример: {"string": "abc"}
set -> (список)
Значение атрибута типа Set.
Пример: {"set": [ {} ] }
(… рекурсивно …)
record -> (карта)
Значение атрибута типа Record.
Пример: {"record": { "keyName": {} } }
key -> (строка)
(… рекурсивно …)
ipaddr -> (строка)
Значение атрибута типа ipaddr.
Пример: {"ip": "192.168.1.100"}
decimal -> (строка)
Значение атрибута типа decimal.
Пример: {"decimal": "1.1"}
record -> (карта)
Значение атрибута типа Record.
Пример: {"record": { "keyName": {} } }
key -> (строка)
value -> (структура помеченного объединения)
Значение атрибута.
Содержит информацию о контексте выполнения для запроса, для которого принимается решение об авторизации.
Этот тип данных используется как член структуры ContextDefinition, которая используется в качестве параметра запроса для операций IsAuthorized, BatchIsAuthorized и IsAuthorizedWithToken.
Примечание
Это структура помеченного объединения. Только один из следующих ключей верхнего уровня может быть задан:boolean, entityIdentifier, long, string, set, record, ipaddr, decimal.boolean -> (логическое)
Значение атрибута типа Boolean.
Пример: {"boolean": true}
entityIdentifier -> (структура)
Значение атрибута типа EntityIdentifier.
Пример: "entityIdentifier": { "entityId": "<id>", "entityType": "<entity type>"}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "long -> (длинное целое)
Значение атрибута типа Long.
Пример: {"long": 0}
string -> (строка)
Значение атрибута типа String.
Пример: {"string": "abc"}
set -> (список)
Значение атрибута типа Set.
Пример: {"set": [ {} ] }
(… рекурсивно …)
record -> (карта)
Значение атрибута типа Record.
Пример: {"record": { "keyName": {} } }
key -> (строка)
(… рекурсивно …)
ipaddr -> (строка)
Значение атрибута типа ipaddr.
Пример: {"ip": "192.168.1.100"}
decimal -> (строка)
Значение атрибута типа decimal.
Пример: {"decimal": "1.1"}
ipaddr -> (строка)
Значение атрибута типа ipaddr.
Пример: {"ip": "192.168.1.100"}
decimal -> (строка)
Значение атрибута типа decimal.
Пример: {"decimal": "1.1"}
parents -> (список)
Родительские сущности в иерархии, которая содержит сущность. Принципал или ресурс сущность может быть определена с максимум 99 транзитивными родителями на запрос авторизации.
Транзитивный родитель — это сущность в иерархии сущностей, включающая всех прямых родителей и родителей родителей. Например, пользователь может быть членом 91 группы, если одна из этих групп является членом восьми групп, в сумме получается 100: одна сущность, 91 родительская сущность и восемь родителей родителей.
(структура)
Содержит идентификатор сущности, включая её ID и тип.
Этот тип данных используется в качестве параметра запроса для операции IsAuthorized и в качестве параметра ответа для операций CreatePolicy, GetPolicy и UpdatePolicy.
Пример: {"entityId":"*string* ","entityType":"*string* "}
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "cedarJson -> (строка)
Строка Cedar JSON, представляющая сущности, необходимые для успешной оценки запроса авторизации.
Пример: {"cedarJson": "[{\"uid\":{\"type\":\"Photo\",\"id\":\"VacationPhoto94.jpg\"},\"attrs\":{\"accessLevel\":\"public\"},\"parents\":[]}]"}
Синтаксис JSON:
{
"entityList": [
{
"identifier": {
"entityType": "string",
"entityId": "string"
},
"attributes": {"string": {
"boolean": true|false,
"entityIdentifier": {
"entityType": "string",
"entityId": "string"
},
"long": long,
"string": "string",
"set": [
{
"boolean": true|false,
"entityIdentifier": {
"entityType": "string",
"entityId": "string"
},
"long": long,
"string": "string",
"set": [
{ ... recursive ... }
...
],
"record": {"string": { ... recursive ... }
...},
"ipaddr": "string",
"decimal": "string"
}
...
],
"record": {"string": {
"boolean": true|false,
"entityIdentifier": {
"entityType": "string",
"entityId": "string"
},
"long": long,
"string": "string",
"set": [
{ ... recursive ... }
...
],
"record": {"string": { ... recursive ... }
...},
"ipaddr": "string",
"decimal": "string"
}
...},
"ipaddr": "string",
"decimal": "string"
}
...},
"parents": [
{
"entityType": "string",
"entityId": "string"
}
...
]
}
...
],
"cedarJson": "string"
}
--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной строки JSON. Строка JSON следует формату, предоставленному в --generate-cli-skeleton. Если на командной строке указаны другие аргументы, эти значения переопределят значения, предоставленные в JSON. Невозможно передать произвольные двоичные значения с помощью значения, предоставленного в JSON, так как строка будет взята буквально. Это может быть не указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если предоставлено значение без значения или со значением input, выводится пример входного JSON, который может быть использован в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, оно проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Глобальные параметры
--debug (boolean)
Включить отладку логирования.
--endpoint-url (string)
Переопределить стандартный URL команды заданным URL.
--no-verify-ssl (boolean)
По умолчанию, AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI проверяет SSL-сертификаты. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.
--no-paginate (boolean)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (string)
Стиль форматирования вывода команд.
- json
- text
- table
- yaml
- yaml-stream
--query (string)
Запрос JMESPath для фильтрации данных ответа.
--profile (string)
Использовать определённый профиль из файла аутентификации.
--region (string)
Регион для использования. Переопределяет настройки из конфигурации/окружения.
--version (string)
Отобразить версию этого инструмента.
--color (string)
Включить/выключить цветной вывод.
- on
- off
- auto
--no-sign-request (boolean)
Не подписывать запросы. Кредиты не будут загружены, если этот аргумент предоставлен.
--ca-bundle (string)
Файл с сертификатом CA для проверки SSL-сертификатов. Переопределяет настройки из конфигурации/окружения.
--cli-read-timeout (int)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (int)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (string)
Стиль форматирования, используемый для бинарных блоков. По умолчанию используется формат base64. Формат base64 ожидает, что бинарные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и бинарные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое соответствует бинарному блоку, fileb:// всегда будет рассматриваться как бинарное и использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть правильно отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (boolean)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (boolean)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (boolean)
Отключить автоматическое запроса параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы с руководством пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования, аналогичные Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей терминальной оболочки. См. Использование кавычек со строками в руководстве пользователя AWS CLI.
Пример 1: Запрос решения об авторизации для запроса пользователя (разрешено)
Следующий is-authorized пример запрашивает решение об авторизации для субъекта типа User с именем Alice, который хочет выполнить операцию updatePhoto над ресурсом типа Photo с именем VacationPhoto94.jpg.
Ответ показывает, что запрос разрешён одной политикой.
aws verifiedpermissions is-authorized \
--principal entityType=User,entityId=alice \
--action actionType=Action,actionId=view \
--resource entityType=Photo,entityId=VactionPhoto94.jpg \
--policy-store-id PSEXAMPLEabcdefg111111
Вывод:
{
"decision": "ALLOW",
"determiningPolicies": [
{
"policyId": "SPEXAMPLEabcdefg111111"
}
],
"errors": []
}
Пример 2: Запрос решения об авторизации для запроса пользователя (запрещено)
Следующий пример аналогичен предыдущему, за исключением того, что субъект — User::"Bob". В хранилище политик нет политики, которая разрешает этому пользователю доступ к Album::"alice_folder".
Вывод указывает, что Deny было неявно, потому что список DeterminingPolicies пуст.
aws verifiedpermissions create-policy \
--definition file://definition2.txt \
--policy-store-id PSEXAMPLEabcdefg111111
Вывод:
{
"decision": "DENY",
"determiningPolicies": [],
"errors": []
}
Для получения дополнительной информации обратитесь к руководству пользователя Amazon Verified Permissions.
Вывод
decision -> (string)
determiningPolicies -> (list)
Список определяющих политик, используемых для принятия решения об авторизации. Например, если есть две совпадающие политики, одна из которых запрещает, а другая разрешает, то запрещающая политика будет определяющей. В случае нескольких совпадающих разрешающих политик будет несколько определяющих политик. В случае, если ни одна политика не совпадает, и, следовательно, ответ — ОТКАЗ, определяющих политик не будет.
(структура)
Содержит информацию об одной из политик, которая определила решение об авторизации.
Этот тип данных используется в качестве элемента параметра ответа для операций IsAuthorized, BatchIsAuthorized и IsAuthorizedWithToken.
Пример: "determiningPolicies":[{"policyId":"SPEXAMPLEabcdefg111111"}]
policyId -> (string)
Идентификатор политики, которая определила решение об авторизации.
Пример: "policyId":"SPEXAMPLEabcdefg111111"
errors -> (list)
Ошибки, возникшие при принятии решения об авторизации, например, политика ссылается на сущность или атрибут сущности, которые отсутствуют в срезе.
(структура)
Содержит описание ошибки оценки.
Этот тип данных является параметром ответа операций IsAuthorized, BatchIsAuthorized и IsAuthorizedWithToken.
errorDescription -> (string)
© Copyright 2025, Amazon Web Services. Created using Sphinx.