[ aws . apigateway ]
создать-авторизатор
Описание
Добавляет новый ресурс авторизатора в существующий ресурс RestApi.
См. также: Документация AWS API
Синтаксис
create-authorizer
--rest-api-id <value>
--name <value>
--type <value>
[--provider-arns <value>]
[--auth-type <value>]
[--authorizer-uri <value>]
[--authorizer-credentials <value>]
[--identity-source <value>]
[--identity-validation-expression <value>]
[--authorizer-result-ttl-in-seconds <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]
Параметры
--rest-api-id (строка)
--name (строка)
--type (строка)
Тип авторизатора. Допустимые значения: TOKEN для функции Lambda, использующей один токен авторизации, переданный в пользовательском заголовке; REQUEST для функции Lambda, использующей параметры запроса; и COGNITO_USER_POOLS для использования пула пользователей Amazon Cognito.
Возможные значения:
TOKENREQUESTCOGNITO_USER_POOLS
--provider-arns (список)
Список ARNs пулов пользователей Amazon Cognito для авторизатора COGNITO_USER_POOLS. Каждый элемент имеет такой формат: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. Для авторизаторов типа TOKEN или REQUEST это не определено.
(строка)
Синтаксис:
"string" "string" ...
--auth-type (строка)
--authorizer-uri (строка)
TOKEN или REQUEST это должен быть правильно сформированный URI функции Lambda, например, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. В общем случае URI имеет такой вид arn:aws:apigateway:{region}:lambda:path/{service_api}, где {region} соответствует региону размещения функции Lambda, path указывает, что оставшаяся часть URI должна рассматриваться как путь к ресурсу, включая начальный /. Для функций Lambda это обычно имеет вид /2015-03-31/functions/[FunctionARN]/invocations.--authorizer-credentials (строка)
--identity-source (строка)
TOKEN или COGNITO_USER_POOLS это обязательно и указывает выражение сопоставления заголовков запроса для пользовательского заголовка, содержащего токен авторизации, отправленный клиентом. Например, если имя заголовка токена — Auth, выражение сопоставления заголовка — method.request.header.Auth. Для авторизатора REQUEST это обязательно, когда включен кэширование авторизации. Значение представляет собой строку, разделенную запятыми, одной или более выражений сопоставления заданных параметров запроса. Например, если заголовок Auth и параметр строки запроса Name определены как источники идентификации, это значение — method.request.header.Auth, method.request.querystring.Name. Эти параметры будут использоваться для вывода ключа кэширования авторизации и для выполнения проверки во время выполнения авторизатора REQUEST, проверяя, что все параметры запроса, связанные с идентификацией, присутствуют, не равны null и не пустые. Только в этом случае авторизатор вызывает функцию Lambda авторизатора, иначе возвращает ответ 401 Unauthorized без вызова функции Lambda. Допустимое значение — строка, разделенная запятыми, выражений сопоставления заданных параметров запроса. Когда кэширование авторизации отключено, это свойство необязательно.--identity-validation-expression (строка)
TOKEN это регулярное выражение. Для авторизаторов COGNITO_USER_POOLS API Gateway сопоставит поле aud входного токена от клиента с указанным регулярным выражением. Он вызовет функцию Lambda авторизатора при совпадении. В противном случае вернёт ответ 401 Unauthorized без вызова функции Lambda. Выражение проверки не применяется к авторизатору REQUEST.--authorizer-result-ttl-in-seconds (целое число)
--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 (логическое значение)
Включение отладки регистрации.
--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: Создание API Gateway Custom Authorizer на основе токена для API
В следующем create-authorizer примере создается авторизатор на основе токена.
aws apigateway create-authorizer \
--rest-api-id 1234123412 \
--name 'First_Token_Custom_Authorizer' \
--type TOKEN \
--authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \
--identity-source 'method.request.header.Authorization' \
--authorizer-result-ttl-in-seconds 300
Вывод:
{
"authType": "custom",
"name": "First_Token_Custom_Authorizer",
"authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations",
"authorizerResultTtlInSeconds": 300,
"identitySource": "method.request.header.Authorization",
"type": "TOKEN",
"id": "z40xj0"
}
Пример 2: Создание API Gateway Custom Authorizer на основе пула пользователей Cognito для API
В следующем create-authorizer примере создается авторизатор на основе пула пользователей Cognito.
aws apigateway create-authorizer \
--rest-api-id 1234123412 \
--name 'First_Cognito_Custom_Authorizer' \
--type COGNITO_USER_POOLS \
--provider-arns 'arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_aWcZeQbuD' \
--identity-source 'method.request.header.Authorization'
Вывод:
{
"authType": "cognito_user_pools",
"identitySource": "method.request.header.Authorization",
"name": "First_Cognito_Custom_Authorizer",
"providerARNs": [
"arn:aws:cognito-idp:us-east-1:342398297714:userpool/us-east-1_qWbZzQhzE"
],
"type": "COGNITO_USER_POOLS",
"id": "5yid1t"
}
Пример 3: Создание API Gateway Custom Authorizer на основе запроса для API
В следующем create-authorizer примере создается авторизатор на основе запроса.
aws apigateway create-authorizer \
--rest-api-id 1234123412 \
--name 'First_Request_Custom_Authorizer' \
--type REQUEST \
--authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \
--identity-source 'method.request.header.Authorization,context.accountId' \
--authorizer-result-ttl-in-seconds 300
Вывод:
{
"id": "z40xj0",
"name": "First_Request_Custom_Authorizer",
"type": "REQUEST",
"authType": "custom",
"authorizerUri": "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations",
"identitySource": "method.request.header.Authorization,context.accountId",
"authorizerResultTtlInSeconds": 300
}
Вывод
id -> (строка)
name -> (строка)
type -> (строка)
TOKEN для функции Lambda, использующей один токен авторизации, переданный в пользовательском заголовке; REQUEST для функции Lambda, использующей параметры входящего запроса; и COGNITO_USER_POOLS для использования пула пользователей Amazon Cognito.providerARNs -> (список)
Список Amazon Cognito ARN пулов пользователей для авторизатора COGNITO_USER_POOLS. Каждый элемент имеет такой формат: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. Для авторизаторов TOKEN или REQUEST это не определено.
(строка)
authType -> (строка)
authorizerUri -> (строка)
TOKEN или REQUEST это должен быть правильно сформированный URI функции Lambda, например, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. В общем случае URI имеет такой вид: arn:aws:apigateway:{region}:lambda:path/{service_api}, где {region} — тот же регион, что и функция Lambda, path указывает, что оставшаяся часть URI должна интерпретироваться как путь к ресурсу, включая начальный /. Для функций Lambda это обычно имеет вид /2015-03-31/functions/[FunctionARN]/invocations.authorizerCredentials -> (строка)
identitySource -> (строка)
TOKEN или COGNITO_USER_POOLS это обязательно и указывает выражение сопоставления заголовков запроса для пользовательского заголовка, содержащего токен авторизации, отправленный клиентом. Например, если имя заголовка токена — Auth, выражение сопоставления заголовков — method.request.header.Auth. Для авторизатора REQUEST это необходимо, когда включено кеширование авторизации. Значение представляет собой строку, разделенную запятыми, из одного или нескольких выражений сопоставления указанных параметров запроса. Например, если заголовок Auth и параметр строки запроса Name определены как источники идентификации, это значение будет method.request.header.Auth, method.request.querystring.Name. Эти параметры будут использованы для вывода ключа кеширования авторизации и для выполнения проверки авторизатора REQUEST во время выполнения, проверяя, присутствуют ли все параметры запроса, связанные с идентификацией, не равны null и не пустые. Только когда это верно, авторизатор вызывает функцию Lambda авторизатора, иначе он возвращает ответ 401 Unauthorized без вызова функции Lambda. Допустимое значение — строка, разделенная запятыми, из выражений сопоставления указанных параметров запроса. Когда кеширование авторизации отключено, это свойство необязательно.identityValidationExpression -> (строка)
TOKEN это регулярное выражение. Для авторизаторов COGNITO_USER_POOLS API Gateway будет сопоставлять поле aud входящего токена от клиента со указанным регулярным выражением. При совпадении он вызовет функцию Lambda авторизатора. В противном случае он вернёт ответ 401 Unauthorized без вызова функции Lambda. Выражение проверки не применяется к авторизатору REQUEST.authorizerResultTtlInSeconds -> (целое число)
© Copyright 2025, Amazon Web Services. Created using Sphinx.