Файловая система S3#
CedrusData поддерживает работу с S3-совместимыми объектными хранилищами. Для этого вы можете использовать коннекторы Iceberg, Delta Lake, Hudi и Hive.
Для начала работы с объектным хранилищем, задайте параметр fs.native-s3.enabled=true
в конфигурации соответствующего каталога.
Общая конфигурация#
Используйте параметры ниже для конфигурации доступа к S3-совместимому объектному хранилищу.
Название |
Описание |
---|---|
|
Включает нативную поддержку S3. Установите значение в |
|
Адрес S3. Должен быть передан в формате |
|
Регион S3. Например, |
|
Использовать ли режим разрешения адресов path-style.
Если значение равно |
|
Поддерживает ли S3-сервис conditional write.
Значение по умолчанию: |
|
Canned ACL, который будет использован для загрузки файлов в S3-сервис.
Допустимые значения: |
|
Задает тип server-side encryption (SSE).
|
|
Идентификатор ключа KMS при использовании SSE. |
|
Размер частей файла при S3 streaming upload. Допустимые значения: от |
|
Включает опцию «requester pays». Значение по умолчанию: |
|
Максимальное количество подключений к S3. Значение по умолчанию: |
|
Максимальная длительность в течение которой возможно переиспользование уже открытого подключения к S3. |
|
Максимальная длительность в течение которой неиспользуемое подключение к S3 остается открытым. |
|
Максимальная длительность ожидания открытия подключения к S3. |
|
Максимальная длительность ожидания чтения данных из S3. |
|
Включает опцию TCP keep alive для новых подключений к S3. Значение по умолчанию: |
|
URL прокси-сервера для подключения к S3. |
|
Включает протокол HTTPS при подключении к прокси-серверу. |
|
Имя пользователя, которое будет использовано при подключении к прокси-серверу. |
|
Пароль, который будет использован при подключении к прокси-серверу. |
|
Список хостов, подключение к которым будет происходить, минуя прокси-сервер. |
|
Следует ли осуществлять preemptive аутентификацию в прокси-сервере. Значение по умолчанию: |
|
Задает режим retry для AWS SDK. Допустимые значения: |
|
Максимальное количество retry. Значение по умолчанию: |
|
Установите в |
Аутентификация#
Используйте параметры ниже для аутентификации в S3 с помощью постоянных ключей, STS или IAM role.
Название |
Описание |
---|---|
|
Постоянный AWS access key. |
|
Постоянный AWS secret key. |
|
URL AWS Security Token Service. |
|
Регион AWS Security Token Service. |
|
ARN IAM role, который будет использован при подключении к S3. |
|
Role session name, который будет использован при подключении к S3. Значение по умолчанию: |
|
External ID для IAM role trust policy. |
Динамическая аутентификация#
CedrusData позволяет задавать разные механизмы аутентификации в S3 для различных пользователей и путей. IAM role для конкретного запроса может быть передана с помощью extra credential.
Конфигурация динамической аутентификации должна быть задана в виде JSON, который может быть прочитан из файловой системы (параметр конфигурации s3.security-mapping.config-file
)
или через HTTP (параметр конфигурации s3.security-mapping.config-uri
).
JSON содержит список правил выбора механизма аутентификации для конкретного пользователя или пути. Сопоставление правил происходит в соответствии с порядком их указания в JSON. Если для заданного пользователя или пути подходит несколько правил, то будет использовано правило, которое указано ранее. Если не подходит ни одно правило, то доступ будет запрещен.
Выбор механизма аутентификации происходит в соответствии со следующими критериями:
user
: Регулярное выражение для имени пользователя. Например:alice|bob
group
: Регулярное выражение для имени группы пользователей. Например:finance|sales
prefix
: Префикс S3 URL. Должен начинаться сs3://
. Например:s3://bucket-name/abc/xyz/
Если вы не укажите ни один критерий, то текущее правило будет использовано как правило по умолчанию.
Правило должно предоставлять информацию об одном или нескольких механизмах аутентификации:
accessKey
иsecretKey
: Статические AWS access key и secret key.iamRole
: IAM role по умолчанию, которая будет использована, если иная роль не задана через extra credential.roleSessionName
: Необязательное значение role session name, которое будет использовано совместно сiamRole
. Может включать шаблон${USER}
, который будет заменен на имя текущего пользователя. Значение по умолчанию:trino-session
.allowedIamRoles
: Список IAM role, которые могут быть использованы в качестве extra credential. Данный параметр может быть полезен, когда S3 позволяет использовать несколько IAM role, но вы хотите, чтобы конкретный пользователь использовал только определенные IAM role.kmsKeyId
: Идентификатор ключа KMS для client-side encryption.allowedKmsKeyIds
: Допустимые идентификаторы ключа KMS, которые могут быть использованы в качестве extra credential. Если список содержит значение*
, то любые ключи могут быть использованы в качестве extra credential.endpoint
: Адрес S3. Должен быть передан в форматеhttp[s]://host[:port]
.region
: Регион S3.useClusterDefault
: Использовать параметры аутентификации из конфигурации каталога. Данный флаг может быть указан только для правила по умолчанию.
Пример JSON:
{
"mappings": [
{
"prefix": "s3://bucket-name/abc/",
"iamRole": "arn:aws:iam::123456789101:role/test_path"
},
{
"user": "bob|charlie",
"iamRole": "arn:aws:iam::123456789101:role/test_default",
"allowedIamRoles": [
"arn:aws:iam::123456789101:role/test1",
"arn:aws:iam::123456789101:role/test2",
"arn:aws:iam::123456789101:role/test3"
]
},
{
"prefix": "s3://special-bucket/",
"accessKey": "AKIAxxxaccess",
"secretKey": "iXbXxxxsecret"
},
{
"prefix": "s3://regional-bucket/",
"iamRole": "arn:aws:iam::123456789101:role/regional-user",
"endpoint": "https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
"region": "us-east-1"
},
{
"prefix": "s3://encrypted-bucket/",
"kmsKeyId": "kmsKey_10"
},
{
"user": "test.*",
"iamRole": "arn:aws:iam::123456789101:role/test_users"
},
{
"group": "finance",
"iamRole": "arn:aws:iam::123456789101:role/finance_users"
},
{
"iamRole": "arn:aws:iam::123456789101:role/default"
}
]
}
Параметры конфигурации динамической аутентификации:
Название |
Описание |
---|---|
|
Включает динамическую аутентификацию. Значение по умолчанию: |
|
Путь к файлу с JSON в локальной файловой системе координатора. |
|
HTTP URI, который возвращает JSON. |
|
Необязательный JSON pointer (RFC 6901) для получения узла, содержащего конфигурацию динамической аутентификации. |
|
Имя extra credential, который будет использован для передачи IAM role. |
|
Имя extra credential, который будет использован для идентификатора KMS ключа. |
|
Как часто обновлять JSON конфигурацию. Например: |
|
Символ, который будет использован вместо символа |