MySQL Shell S3 支持已经针对以下兼容 S3 的存储服务进行了测试
-
Amazon Web Services S3
有关更多信息,请参阅 Amazon 简单存储服务文档。
-
Oracle 云基础设施对象存储
有关更多信息,请参阅 Amazon S3 兼容性 API。
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
。配置文件(针对指定的配置文件)。
有关 AWS 环境变量的信息,请参阅 用于配置 AWS CLI 的环境变量
您可以定义以下 AWS S3 特定的环境变量
AWS_PROFILE
:指定要使用的配置文件的名称。这可以是凭据或配置文件中的配置文件的名称,也可以是值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
:指定与 IAM 用户或角色关联的 AWS 访问密钥。AWS_SECRET_ACCESS_KEY
:指定与访问密钥关联的密钥。此变量将覆盖配置文件中定义的aws_secret_access_key
。AWS_SESSION_TOKEN
:指定在使用临时安全凭据时所需的会话令牌值。此变量将覆盖配置文件中定义的aws_session_token
。
MySQL Shell 需要在一个或多个配置文件中包含以下参数
aws_access_key_id
:指定与用户关联的访问密钥。如果不存在,则会引发异常。aws_secret_access_key
:指定与访问密钥关联的密钥。如果不存在,则会引发异常。aws_session_token
:指定在使用临时安全凭据时所需的会话令牌。如果不存在,则不会使用它来对用户进行身份验证。region
:指定云服务区域。如果不存在,则使用默认值us-east-1
。-
credential_process
:此配置类型包含一个外部命令,该命令检索或生成 AWS 身份验证凭据,并将它们写入stdout
。注意credential_process
只能在config
文件中定义。有关更多信息,请参阅以下内容
如果您已经安装并配置了 AWS CLI,则 MySQL Shell 会自动从默认位置 .aws/
读取连接参数。要使用备用配置,请使用相关的覆盖选项从命令行进行操作。
如果您使用的是 Oracle 云基础设施的 S3 兼容性 API,请参阅 创建客户密钥,以获取有关创建所需凭据的信息。
默认情况下,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