Spec-Zone.ru › AWS CLI v2

[ 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 (строка)

Строковый идентификатор связанного RestApi.

--name (строка)

Имя авторизатора.

--type (строка)

Тип авторизатора. Допустимые значения: TOKEN для функции Lambda, использующей один токен авторизации, переданный в пользовательском заголовке; REQUEST для функции Lambda, использующей параметры запроса; и COGNITO_USER_POOLS для использования пула пользователей Amazon Cognito.

Возможные значения:

  • TOKEN
  • REQUEST
  • COGNITO_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 (строка)

Дополнительное поле, заданное пользователем, используемое в импортах и экспортах OpenAPI без функционального воздействия.

--authorizer-uri (строка)

Указывает Uniform Resource Identifier (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 (строка)

Указывает требуемые учетные данные в виде роли IAM для вызова авторизатора API Gateway. Для указания роли IAM, которую API Gateway должен принять, используйте Amazon Resource Name (ARN) роли. Для использования основанных на ресурсах разрешений в функции Lambda укажите null.

--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 (целое число)

Время жизни (TTL) в секундах кэшированных результатов авторизатора. Если оно равно 0, кэширование авторизации отключено. Если оно больше 0, API Gateway кэширует ответы авторизатора. Если это поле не задано, значение по умолчанию — 300. Максимальное значение — 3600 (1 час).

--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 -> (строка)

Дополнительное поле, определяемое клиентом, используемое в импортах и экспортах OpenAPI без функционального влияния.

authorizerUri -> (строка)

Указывает Uniform Resource Identifier (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.

authorizerCredentials -> (строка)

Указывает требуемые учетные данные в виде роли IAM для вызова авторизатора API Gateway. Для указания роли IAM, которую API Gateway должен принять, используйте Amazon Resource Name (ARN) роли. Чтобы использовать разрешения на основе ресурсов для функции Lambda, укажите null.

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 -> (целое число)

Срок хранения результатов авторизатора в секундах. Если он равен 0, кеширование авторизации отключено. Если он больше 0, API Gateway будет кешировать ответы авторизатора. Если это поле не установлено, значение по умолчанию равно 300. Максимальное значение — 3600, или 1 час.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API