[ aws . verifiedpermissions ]
create-policy
Описание
Создаёт политику Cedar и сохраняет её в указанном хранилище политик. Вы можете создать статическую политику или политику, связанную с шаблоном политики.
- Для создания статической политики, предоставьте текст политики Cedar в разделе
StaticPolicyразделаPolicyDefinition. - Для создания политики, динамически связанной с шаблоном политики, укажите идентификатор шаблона политики, принципал и ресурс для ассоциации с этой политикой в разделе
templateLinkedразделаPolicyDefinition. Если шаблон политики будет обновлён, все политики, связанные с этим шаблоном, автоматически будут использовать обновлённый шаблон.
Примечание
Создание политики вызывает её валидацию по схеме в хранилище политик. Если политика не проходит валидацию, операция завершается неудачей, и политика не сохраняется.Примечание
Услуга Verified Permissions обладает *асинхронной согласованностью*. Может потребоваться несколько секунд, чтобы новое или изменённое элементо распространилось через службу и стало видимым в результатах других операций Verified Permissions.См. также: Документация API AWS
Синтаксис
create-policy
[--client-token <value>]
--policy-store-id <value>
--definition <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]
Параметры
--client-token (строка)
Указывает уникальный, чувствительный к регистру идентификатор, который вы предоставляете для обеспечения идемпотентности запроса. Это позволяет безопасно повторно отправлять запрос, не выполняя случайно ту же операцию повторно. При повторном вызове операции с тем же значением ClientToken, необходимо также передать то же значение для всех других параметров. Рекомендуется использовать UUID.
Если вы не предоставите это значение, Amazon Web Services сгенерирует случайное для вас.
Если вы повторно отправляете запрос с тем же ClientToken, но с другими параметрами, повторная попытка завершится ошибкой ConflictException.
Verified Permissions распознаёт запрос ClientToken в течение восьми часов. По истечении восьми часов, следующий запрос с теми же параметрами выполнит операцию снова, независимо от значения ClientToken.
--policy-store-id (строка)
PolicyStoreId хранилища политик, в котором вы хотите сохранить политику.--definition (структура помеченного объединения)
Структура, которая определяет тип политики и содержимое для новой политики. Вы должны указать либо элемент «static», либо «templateLinked». Содержимое политики должно быть написано на языке Cedar.
Примечание
Это структура помеченного объединения. Только один из следующих верхних ключей может быть установлен:static, templateLinked.static -> (структура)
Структура, описывающая статическую политику. Статическая политика не использует шаблон или не допускает плейсхолдеры для сущностей.
description -> (строка)
statement -> (строка)
templateLinked -> (структура)
Структура, описывающая политику, созданную из шаблона. Шаблон может содержать плейсхолдеры для principal и resource. Когда вы используете CreatePolicy для создания политики из шаблона, вы указываете точный принципал и ресурс для использования в созданной политике.
policyTemplateId -> (строка)
principal -> (структура)
Принципал, связанный с этой политикой, связанной с шаблоном. Verified Permissions заменяет этот принципал на плейсхолдер ?principal в шаблоне политики при оценке запроса на авторизацию.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "resource -> (структура)
Ресурс, связанный с этой политикой, связанной с шаблоном. Verified Permissions заменяет этот ресурс на плейсхолдер ?resource в шаблоне политики при оценке запроса на авторизацию.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "Сокращённый синтаксис:
static={description=string,statement=string},templateLinked={policyTemplateId=string,principal={entityType=string,entityId=string},resource={entityType=string,entityId=string}}
Синтаксис JSON:
{
"static": {
"description": "string",
"statement": "string"
},
"templateLinked": {
"policyTemplateId": "string",
"principal": {
"entityType": "string",
"entityId": "string"
},
"resource": {
"entityType": "string",
"entityId": "string"
}
}
}
--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной строки JSON. Строка JSON соответствует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения перепишут значения, предоставленные JSON. Невозможно передать произвольные двоичные значения, используя предоставленное значение JSON, так как строка будет взята буквально. Это может не быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит каркас JSON в стандартный вывод без отправки запроса API. Если предоставлено значение null или input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено output, он валидирует входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-каркас не стабилен между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-каркасе.
Глобальные параметры
--debug (булево)
Включить отладку.
--endpoint-url (строка)
Переопределить стандартный URL команды заданным URL.
--no-verify-ssl (булево)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.
--no-paginate (булево)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования для вывода команд.
- json
- text
- table
- yaml
- yaml-stream
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать конкретный профиль из файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- on
- off
- auto
--no-sign-request (булево)
Не подписывать запросы. Учетные данные не будут загружены, если этот параметр указан.
--ca-bundle (строка)
Файл с пакетом сертификатов CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию - 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения к сокету в секундах. Если значение установлено в 0, подключение к сокету будет блокирующим и не будет иметь таймаута. Значение по умолчанию - 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию - 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 (булево)
Отключить вывод пейджера CLI.
--cli-auto-prompt (булево)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (булево)
Отключить автоматическое запросить параметры ввода CLI.
Примеры
Примечание
Чтобы использовать следующие примеры, необходимо установить и настроить AWS CLI. Подробности см. в руководстве по началу работы в руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. руководство пользователя AWS CLI для получения дополнительной информации.
Пример 1: Создание статической политики
Следующий пример создаёт статическую политику с областью политики, которая определяет как принципал, так и ресурс.
aws verifiedpermissions create-policy \
--definition file://definition1.txt \
--policy-store-id PSEXAMPLEabcdefg111111
Содержание файла definition1.txt:
{
"static": {
"description": "Grant everyone of janeFriends UserGroup access to the vacationFolder Album",
"statement": "permit(principal in UserGroup::\"janeFriends\", action, resource in Album::\"vacationFolder\" );"
}
}
Вывод:
{
"createdDate": "2023-06-12T20:33:37.382907+00:00",
"lastUpdatedDate": "2023-06-12T20:33:37.382907+00:00",
"policyId": "SPEXAMPLEabcdefg111111",
"policyStoreId": "PSEXAMPLEabcdefg111111",
"policyType": "STATIC",
"principal": {
"entityId": "janeFriends",
"entityType": "UserGroup"
},
"resource": {
"entityId": "vacationFolder",
"entityType": "Album"
}
}
Пример 2: Создание статической политики, предоставляющей всем доступ к ресурсу
Следующий пример создаёт статическую политику с областью политики, которая определяет только ресурс.
aws verifiedpermissions create-policy \
--definition file://definition2.txt \
--policy-store-id PSEXAMPLEabcdefg111111
Содержание файла definition2.txt:
{
"static": {
"description": "Grant everyone access to the publicFolder Album",
"statement": "permit(principal, action, resource in Album::\"publicFolder\");"
}
}
Вывод:
{
"createdDate": "2023-06-12T20:39:44.975897+00:00",
"lastUpdatedDate": "2023-06-12T20:39:44.975897+00:00",
"policyId": "PbfR73F8oh5MMfr9uRtFDB",
"policyStoreId": "PSEXAMPLEabcdefg222222",
"policyType": "STATIC",
"resource": {
"entityId": "publicFolder",
"entityType": "Album"
}
}
Пример 3: Создание политики, связанной с шаблоном, связанной с указанным шаблоном
Следующий пример создаёт политику, связанную с шаблоном, используя указанный шаблон политики и связывает указанный принципал для использования с новой политикой, связанной с шаблоном.
aws verifiedpermissions create-policy \
--definition file://definition.txt \
--policy-store-id PSEXAMPLEabcdefg111111
Содержание файла definition.txt:
{
"templateLinked": {
"policyTemplateId": "PTEXAMPLEabcdefg111111",
"principal": {
"entityType": "User",
"entityId": "alice"
}
}
}
Вывод:
{
"createdDate": "2023-06-12T20:49:51.490211+00:00",
"lastUpdatedDate": "2023-06-12T20:49:51.490211+00:00",
"policyId": "TPEXAMPLEabcdefg111111",
"policyStoreId": "PSEXAMPLEabcdefg111111",
"policyType": "TEMPLATE_LINKED",
"principal": {
"entityId": "alice",
"entityType": "User"
},
"resource": {
"entityId": "VacationPhoto94.jpg",
"entityType": "Photo"
}
}
Для получения дополнительной информации о политиках, см. Политики Amazon Verified Permissions в Руководстве пользователя Amazon Verified Permissions.
Вывод
policyStoreId -> (строка)
policyId -> (строка)
policyType -> (строка)
principal -> (структура)
Принципал, указанный в области действия новой политики. Этот элемент ответа отсутствует, когда principal не указан в содержании политики.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "resource -> (структура)
Ресурс, указанный в области действия новой политики. Этот элемент ответа отсутствует, когда resource не указан в содержании политики.
entityType -> (строка)
Тип сущности.
Пример: "entityType":"*typeName* "
entityId -> (строка)
Идентификатор сущности.
"entityId":"*identifier* "actions -> (список)
Действие, разрешенное или запрещенное политикой. Например, {"actions": [{"actionId": "ViewPhoto", "actionType": "PhotoFlash::Action"}, {"entityID": "SharePhoto", "entityType": "PhotoFlash::Action"}]}.
(структура)
Содержит информацию о действии для запроса, для которого принимается решение об авторизации.
Этот тип данных используется в качестве параметра запроса для операций IsAuthorized , BatchIsAuthorized и IsAuthorizedWithToken.
Пример: { "actionId": "<action name>", "actionType": "Action" }
actionType -> (строка)
actionId -> (строка)
createdDate -> (временная метка)
lastUpdatedDate -> (временная метка)
effect -> (строка)
"effect": "Permit".
© Copyright 2025, Amazon Web Services. Created using Sphinx.