Spec-Zone.ru › DuckDB

Схема аутентификации S3 API устаревшего типа

До версии 0.10.0 в DuckDB не было менеджера секретов. Поэтому конфигурация и аутентификация конечных точек S3 обрабатывались через переменные. На этой странице документирована схема аутентификации S3 API устаревшего типа.

Рекомендуемый способ конфигурации и аутентификации конечных точек S3 — использование секретов.

Схема аутентификации устаревшего типа

Для чтения или записи из S3 необходимо установить правильный регион:

SET s3_region = 'us-east-1';

Необязательно, конечная точка может быть сконфигурирована в случае использования сервера хранения объектов, не являющегося сервером AWS:

SET s3_endpoint = '⟨domain⟩.⟨tld⟩:⟨port⟩';

Если конечная точка не поддерживает SSL, то необходимо выполнить:

SET s3_use_ssl = false;

Переключение между стилем путей и стилем виртуальных хостов URL возможно с использованием:

SET s3_url_style = 'path';

Однако, обратите внимание, что это также может потребовать обновления конечной точки. Например, для AWS S3 необходимо изменить конечную точку на s3.⟨region⟩.amazonaws.com.

После конфигурации правильной конечной точки и региона можно читать публичные файлы. Для чтения также частных файлов можно добавить учетные данные для аутентификации:

SET s3_access_key_id = '⟨AWS access key id⟩';
SET s3_secret_access_key = '⟨AWS secret access key⟩';

В качестве альтернативы также поддерживаются токены сеанса, которые могут быть использованы вместо них:

SET s3_session_token = '⟨AWS session token⟩';

Расширение aws позволяет загружать учетные данные AWS.

Конфигурация по запросу

Помимо глобальной конфигурации S3, описанной выше, можно использовать значения конфигурации для каждого запроса. Это позволяет использовать несколько наборов учетных данных, регионов и т. д. Они используются путем включения их в URI S3 в качестве параметров запроса. Все отдельные значения конфигурации, перечисленные выше, могут быть установлены в качестве параметров запроса. Например:

SELECT *
FROM 's3://bucket/file.parquet?s3_access_key_id=accessKey&s3_secret_access_key=secretKey';

Также разрешено несколько конфигураций на запрос:

SELECT *
FROM 's3://bucket/file.parquet?s3_region=region&s3_session_token=session_token' t1
INNER JOIN 's3://bucket/file.csv?s3_access_key_id=accessKey&s3_secret_access_key=secretKey' t2;

Конфигурация

Существуют дополнительные параметры конфигурации для загрузки S3, хотя значения по умолчанию должны быть достаточными для большинства случаев использования.

Кроме того, большинство параметров конфигурации можно установить через переменные окружения:

Настройка DuckDB Переменная окружения Примечание
s3_region AWS_REGION Имеет приоритет над AWS_DEFAULT_REGION
s3_region AWS_DEFAULT_REGION
s3_access_key_id AWS_ACCESS_KEY_ID
s3_secret_access_key AWS_SECRET_ACCESS_KEY
s3_session_token AWS_SESSION_TOKEN
s3_endpoint DUCKDB_S3_ENDPOINT
s3_use_ssl DUCKDB_S3_USE_SSL

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/extensions/httpfs/s3api_legacy_authentication.html

Spec-Zone.ru

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