4.7.2 Хранилище, совместимое с S3
Поддержка S3 в MySQL Shell была протестирована с использованием следующих сервисов хранения, совместимых с S3:
-
Amazon Web Services S3
Дополнительную информацию см. в Документации Amazon Simple Storage Service.
-
Oracle Cloud Infrastructure Object Storage
Дополнительную информацию см.
MySQL Shell поддерживает настройку учетных данных AWS в переменных окружения и конфигурационных файлах.
Приоритет параметров конфигурации
Параметры конфигурации используются в порядке приоритета:
Опция. Например,
s3Profileимеет приоритет над переменной средыAWS_PROFILEи профилем по умолчанию в файле конфигурации.Переменная среды. Например, переменная среды
AWS_SHARED_CREDENTIALS_FILEимеет приоритет над расположением файлаcredentialsпо умолчанию,~/.aws/credentials.Переменная среды DEFAULT, если она существует. Например, переменные среды
AWS_REGIONиAWS_DEFAULT_REGION.Параметр, определенный в файле конфигурации.
Значения по умолчанию AWS.
Например, для региона AWS, в порядке приоритета:
Опция
s3Region.Переменная среды
AWS_REGION.Переменная среды
AWS_DEFAULT_REGION.Регион, определенный в файле конфигурации.
Значение по умолчанию для
us-east-1.
AWS учетные данные считываются в следующем порядке приоритета:
Переменные среды, если не определена опция
s3Profile.Принятие роли.
Файл учетных данных для указанного профиля.
credential_process, как определено в файле конфигурации. Этот тип конфигурации содержит внешнюю команду, которая извлекает или генерирует AWS учетные данные аутентификации и записывает их вstdout.Файл конфигурации для указанного профиля.
Учетные данные ECS.
Учетные данные IMDS.
Переменные среды
Для получения информации о переменных среды AWS см.:
Вы можете определить следующие переменные среды, специфичные для AWS S3:
AWS_PROFILE: Указывает имя профиля для использования. Это может быть имя профиля в файлах credentials или config, или значениеdefaultдля использования профиля по умолчанию. Эта переменная среды переопределяет профиль[default], указанный в файле конфигурации. Вы можете переопределить эту переменную среды с помощью опции--s3Profile.AWS_SHARED_CREDENTIALS_FILE: Расположение файла, используемого для хранения ключей доступа. Например,~/.aws/credentials.AWS_CONFIG_FILE: Расположение файла, используемого для хранения профилей конфигурации. Например,~/.aws/config.AWS_REGION: Указывает регион AWS для отправки запроса. Это значение переопределяет переменную средыAWS_DEFAULT_REGIONи значениеprofile, определённое в файле конфигурации.AWS_DEFAULT_REGION: Указывает регион AWS для отправки запроса. Это значение переопределяется опцией--s3Regionи переменной средыAWS_REGION, если они указаны.AWS_ACCESS_KEY_ID: Указывает AWS ключ доступа, связанный с пользователем или ролью IAM.AWS_SECRET_ACCESS_KEY: Указывает секретный ключ, связанный с ключом доступа. Эта переменная переопределяет значениеaws_secret_access_key, определённое в профиле.AWS_SESSION_TOKEN: Указывает значение маркера сессии, необходимого, если вы используете временные учетные данные безопасности. Эта переменная переопределяет значениеaws_session_token, определённое в профиле.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI: (Amazon ECS) указанное значение добавляется кhttp://169.254.170.2. Результирующий URI используется для извлечения учетных данных. Если она не задана или пустая, аAWS_CONTAINER_CREDENTIALS_FULL_URIопределена, то используетсяAWS_CONTAINER_CREDENTIALS_FULL_URIвместо этого.-
AWS_CONTAINER_CREDENTIALS_FULL_URI: (Amazon ECS) определенный хост должен содержать один из следующих значений:169.254.170.2169.254.170.23localhostfd00:ec2::23A loopback address
Если эта переменная установлена на значение, отличное от перечисленных, возвращается ошибка.
AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE: (Amazon ECS) определяет абсолютный путь к файлу, содержащему токен авторизации в виде обычного текста.AWS_CONTAINER_AUTHORIZATION_TOKEN: (Amazon ECS) определяет заголовок авторизации HTTP-запроса для извлечения учетных данных.AWS_EC2_METADATA_DISABLED: (Amazon IMDS) если включено,true, учетные данные IMDS не используются.AWS_EC2_METADATA_V1_DISABLED: (Amazon IMDS) если включено,true, IMDSv1 используется, если IMDSv2 недоступен.-
AWS_EC2_METADATA_SERVICE_ENDPOINT: (Amazon IMDS) указывает адрес конечной точки IMDS.Компонент имени хоста конечной точки проверяется по следующим критериям:
Максимум 253 символа
Максимум 63 символа на метку.
Допустимые символы: a-z, A-Z, 0-9 и -.
Метка не может начинаться или заканчиваться тире (-).
Метки конкатенируются точками.
-
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE: (Amazon IMDS) одно из следующих значений:IPv4: (по умолчанию) адрес конечной точки IMDS установлен наhttp://169.254.169.254/.IPv6: адрес конечной точки IMDS установлен наhttp://[fd00:ec2::254]/.
AWS_METADATA_SERVICE_TIMEOUT: (Amazon IMDS) указывает количество секунд ожидания успешного подключения к конечной точке IMDS перед таймаутом. Значение по умолчанию равно 1.AWS_METADATA_SERVICE_NUM_ATTEMPTS: (Amazon IMDS) указывает количество попыток извлечения данных из IMDS перед ошибкой и возвратом ошибки. Значение по умолчанию равно 1.
Файлы конфигурации
MySQL Shell требует указания следующих параметров в одном или нескольких файлах конфигурации:
aws_access_key_id: указывает ключ доступа, связанный с пользователем.aws_secret_access_key: указывает секретный ключ, связанный с ключом доступа.aws_session_token: указывает токен сессии, необходимый при использовании временных учетных данных безопасности. Если его нет, для аутентификации пользователя он не используется.region: указывает регион облачного сервиса. Если отсутствует, используется значение по умолчаниюus-east-1.-
credential_process: Этот тип конфигурации содержит внешнюю команду, которая извлекает или генерирует учетные данные аутентификации AWS и записывает их вstdout.Примечаниеcredential_processможет быть определен только в файлеconfig.Для получения дополнительной информации см.:
-
role_arn: ARN роли IAM со следующим синтаксисом:arn:aws:iam::.account-id:role/role-nameЕсли указано, необходимо также определить хотя бы одно из следующих значений:
credential_sourcesource_profile
role_session_name: Определяет имя, прикрепляемое к сеансу роли.duration_seconds: Определяет максимальную продолжительность сеанса роли в секундах.external_id: Уникальный идентификатор, используемый третьими сторонами для перехода в роль.-
credential_source: указывает источник учетных данных, используемых для перехода в роль. Используйте один из следующих вариантов:Environment: Переход в роль с использованием учетных данных, определенных в переменных средыAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEYи (необязательно)AWS_SESSION_TOKEN.EcsContainer: Переход в роль с использованием учетных данных, определенных в Amazon ECS.Ec2InstanceMetadata: Переход в роль с использованием учетных данных, определенных в Amazon IMDS.
source_profile: указывает имя профиля, содержащего учетные данные, необходимые для перехода в роль.ec2_metadata_v1_disabled: (Amazon IMDS) при включении,true, IMDSv1 используется, если IMDSv2 недоступен.-
ec2_metadata_service_endpoint: (Amazon IMDS) указывает адрес конечной точки IMDS.Конечная точка проверяется по следующим критериям:
Максимальная длина 253 символа
Максимальная длина метки 63 символа.
Разрешенные символы: a-z, A-Z, 0-9 и -.
Метка не может начинаться или заканчиваться дефисом (-).
Метки объединяются точками.
-
ec2_metadata_service_endpoint_mode: (Amazon IMDS) одно из следующих значений:IPv4: (по умолчанию) адрес конечной точки IMDS установлен наhttp://169.254.169.254/.IPv6: адрес конечной точки IMDS установлен наhttp://[fd00:ec2::254]/
metadata_service_timeout: (Amazon IMDS) указывает количество секунд ожидания успешного подключения к конечной точке IMDS перед истечением времени ожидания. Значение по умолчанию 1.metadata_service_num_attempts: (Amazon IMDS) указывает количество попыток извлечения данных из IMDS перед ошибкой и возвратом ошибки. Значение по умолчанию 1.
Если вы установили и настроили AWS CLI, MySQL Shell автоматически считывает параметры подключения из расположения по умолчанию, .aws/. Чтобы использовать альтернативную конфигурацию, используйте соответствующие параметры переопределения из командной строки.
Если вы используете совместимый с S3 API облака Oracle Cloud Infrastructure, см. соответствующие сведения о создании требуемых учетных данных.
По умолчанию AWS CLI создает два файла конфигурации: config, хранящий параметры, такие как регион и формат вывода, и credentials, хранящий ключи доступа и токены сессий. Также возможно разместить все параметры конфигурации в одном файле, config. Для получения дополнительной информации см. Настройки конфигурации и аутентификации AWS. Однако, если вы определили ключи доступа и секретные ключи доступа в обоих файлах, те, что определены в файле credentials, имеют приоритет.
Следующий пример демонстрирует стандартную пару файлов конфигурации AWS CLI:
/home/.aws/credentials
[default]
aws_access_key_id = AKIA6AV......
aws_secret_access_key = XHRY579I.....
/home/.aws/config
[default]
region = us-west-1
output = json
Стратегия повторных попыток подключения
Все неудачные подключения к AWS S3 повторяются трижды с задержкой в 1 секунду между повторами.
Если ошибка произойдет через 10 минут после создания подключения, задержка изменяется на стратегию экспоненциального возврата:
Первая задержка: 3-6 секунд
Вторая задержка: 18-36 секунд
Третья задержка: 40-80 секунд
© 2025 Oracle
Licensed under the GPLv2 License.