MySQL Shell 9.0  /  ...  /  S3 相容儲存

4.7.2 S3 相容儲存

MySQL Shell S3 支援已針對以下 S3 相容儲存服務進行測試

MySQL Shell 支援在環境變數和設定檔中設定 AWS 認證。

組態參數優先順序

組態參數按優先順序使用

  1. 選項。例如,s3Profile 優先於環境變數 AWS_PROFILE 和設定檔中的預設設定檔。

  2. 環境變數。例如,環境變數 AWS_SHARED_CREDENTIALS_FILE 優先於 credentials 檔案的預設位置 ~/.aws/credentials

  3. 如果存在,則為 DEFAULT 環境變數。例如,環境變數 AWS_REGION 和環境變數 AWS_DEFAULT_REGION

  4. 設定檔中定義的參數。

  5. AWS 預設值。

例如,對於 AWS 區域,按優先順序

  1. s3Region 選項。

  2. AWS_REGION 環境變數。

  3. AWS_DEFAULT_REGION 環境變數。

  4. 在設定檔中定義的區域。

  5. us-east-1 的預設值。

AWS 認證按以下優先順序讀取

  1. 如果未定義 s3Profile 選項,則為環境變數。

  2. 指定設定檔的認證檔案。

  3. 如設定檔中所定義的 credential_process。此組態類型包含一個外部命令,用於擷取或產生 AWS 驗證認證,並將其寫入 stdout

  4. 指定設定檔的設定檔。

環境變數

如需有關 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 Cloud Infrastructure 的 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

連線重試策略

所有與 AWS S3 的失敗連線都會重試三次,每次重試之間間隔 1 秒。

如果在建立連線 10 分鐘後發生失敗,則延遲會變更為指數退避策略

  • 第一次延遲:3-6 秒

  • 第二次延遲:18-36 秒

  • 第三次延遲:40-80 秒