23.1. Создание простого секрета (duckdb.create_simple_secret) #

Для S3-хранилища можно создать только один простой секрет.

Выполните следующую команду:

  SELECT duckdb.create_simple_secret(
      type := 'S3',
      key_id := 'ключ_доступа',
      secret := 'секретный_ключ_доступа',
      session_token := 'токен_безопасности_сеанса',
      region := 'регион',
      url_style := 'формат_URL',
      provider := 'поставщик_учётных_данных',
      endpoint := 'URL_конечной_точки',
      scope := 'ограничение_применения',
      validation := '',
      use_ssl := 'true_или_false'
  );

Где:

  • ключ_доступа и секретный_ключ_доступа: ключ доступа и секретный ключ доступа для подключения к S3-хранилищу.

  • токен_безопасности_сеанса: временный токен безопасности сеанса, необходимый при использовании временных учётных данных (short-lived credentials, STS).

    Значение по умолчанию: '' (пустая строка) означает, что используется постоянный ключ доступа.

    Необязательный параметр.

  • регион: регион, в котором размещается S3-хранилище.

    Необязательный параметр.

  • формат_URL: формат URL, который используется для доступа к бакету внутри S3-хранилища.

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

    path: имя бакета включено в путь URL, например storage.example.com/my-bucket.

    Необязательный параметр.

  • поставщик_учётных_данных: указывает, как предоставляются ключ доступа и секретный ключ доступа.

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

    '' (пустая строка): использовать предоставленные ключ_доступа и секретный_ключ_доступа.

    Необязательный параметр.

  • URL_конечной_точки: URL конечной точки (endpoint) S3-хранилища.

    Необязательный параметр.

  • ограничение_применения: префикс пути бакета, ограничивающий применение секрета к определённому расположению в S3-хранилище.

    Значение по умолчанию: '' (пустая строка) означает, что секрет применяется ко всем путям в S3-хранилище.

    Необязательный параметр.

  • validation: служебный параметр, оставьте его пустым.

  • true_или_false: указывает, следует ли шифровать взаимодействие между Postgres Pro AXE и S3-хранилищем.

    Необязательный параметр.

Postgres Pro AXE выполняет следующие действия:

  1. Создаёт внешний сервер (simple_s3_secret), используя указанные публичные параметры подключения к S3-хранилищу:

      CREATE SERVER simple_s3_secret
        TYPE 'S3'
        FOREIGN DATA WRAPPER duckdb
        OPTIONS (
          region      'регион',
          url_style   'формат_URL',
          provider    'поставщик_учётных_данных',
          endpoint    'URL_конечной_точки',
          scope       'ограничение_применения',
          validation  '',
          use_ssl     'true_или_false'
        );
  2. Создаёт сопоставление пользователей для роли PUBLIC, используя указанные закрытые параметры подключения к S3-хранилищу:

      CREATE USER MAPPING FOR PUBLIC
        SERVER simple_s3_secret
        OPTIONS (
          key_id        'ключ_доступа',
          secret        'секретный_ключ_доступа',
          session_token 'токен_безопасности_сеанса'
        );
  3. Выводит имя созданного простого секрета.

Пример 23.1. Вызов функции duckdb.create_simple_secret()

  SELECT duckdb.create_simple_secret(
      type      := 'S3',
      key_id    := 'AKIAIOSFODNN7EXAMPLE',
      secret    := 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
      region    := 'us-east-1',
      url_style := 'path',
      endpoint  := 'minio.example.com:9000',
      use_ssl   := 'false'
  );

Внутри вызова функции:

  CREATE SERVER simple_s3_secret
    TYPE 'S3'
    FOREIGN DATA WRAPPER duckdb
    OPTIONS (region 'us-east-1', endpoint 'minio.example.com:9000', url_style 'path', use_ssl 'false');

  CREATE USER MAPPING FOR PUBLIC
    SERVER simple_s3_secret
    OPTIONS (
      key_id 'AKIAIOSFODNN7EXAMPLE',
      secret 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
    );