全部產品
Search
文件中心

Object Storage Service:配置ossutil

更新時間:Oct 17, 2024

本文介紹ossutil的一些配置操作,您可以通過本文瞭解如何更好地使用ossutil。

前提條件

配置方式

您可以使用多種方式配置ossutil,包括設定檔、環境變數和命令列選項。

  • 設定檔:ossutil的設定檔採用INI格式,您可以在其中設定配置參數。

  • 環境變數:ossutil支援多個環境變數,其優先順序要高於設定檔裡的配置項,您可以使用這些變數配置ossutil。

  • 命令列選項:ossutil提供了多個命令列選項,您可以使用這些選項配置ossutil。

重要

通過命令列選項需要傳入存取金鑰,可能會被日誌系統記錄,存在密鑰泄露的風險,請謹慎使用。

設定檔

您可以將常用的配置設定和憑證儲存到設定檔中。這些配置按照節分成多個段,可以通過--profile使用某一個節的配置。 預設情況下,ossutil使用設定檔中的default設定。要使用其它設定,您可以建立和引用其他配置。

說明

當使用設定檔配置訪問憑證時,您可以通過ossutil config credential命令設定。

設定檔格式

設定檔採用INI格式結構,以節(section)和索引值(key)構成,配置參數儲存在指定的節裡。

  • 節中的設定項採用key=value形式。

  • 節名和索引值中的key不區分大小寫。

  • 配置參數的key支援多種格式,全小寫、小駝峰、短劃線(-)串連和底線(_)串連,例如:accesskeyid、accessKeyId、access-key-id、access_key_id表示同一個參數名。

  • 井號字元(#)開頭的行表示注釋行。

支援的節(Section)類型

節(Section)名稱

說明

其它說明

[default]

用於儲存預設設定,即當不設定--profile選項時,使用該節裡的配置。

為[profile default]簡化形式。

[profile name]

用於配置參數,通過--profile name來引用。

支援通過source_profile方式引用其它配置。

[buckets name]

針對具體bucket配置訪問網域名稱,包括region、 endpoint和addressing style。

支援內聯寫法。

說明

您可以使用config命令查看和設定配置內容。更多資訊,請參見config(管理設定檔)

節類型:profile

用於配置訪問憑證和全域配置參數,支援的參數名如下:

  • 訪問憑證相關參數

    參數名

    別名

    含義

    mode

    /

    鑒權模式。

    取值:AK、StsToken、RamRoleArn、EcsRamRole、Anonymous。

    access-key-id

    accessKeyId

    access_key_id

    訪問OSS使用的AccessKey ID。

    access-key-secret

    accessKeySecret

    access_key_secret

    訪問OSS使用的AccessKey Secret。

    sts-token

    stsToken

    sts_token

    訪問OSS使用的STS Token。

    role-arn

    roleArn

    role_arn

    RAM角色的ARN,主要用於RamRoleArn模式。

    role-session-name

    roleSessionName

    role_session_name

    會話名字,主要用於RamRoleArn模式。

    ecs-role-name

    ecsRoleName

    ecs_role_name

    角色名稱,主要用於EcsRamRole模式。

    credential-process

    credentialProcess

    credential_process

    指定一個外部命令。

    credential-uri

    credentialUri

    credential_uri

    指定一個擷取訪問憑證的URI地址。

    oidc-provider-arn

    oidcProviderArn

    oidc_provider_arn

    指定OIDC提供者的ARN(Aliyun Resource Name),格式為acs:ram::account-id:oidc-provider/provider-name

    oidc-token-file-path

    oidcTokenFilePath

    oidc_token_file_path

    指定OIDC令牌的檔案路徑,用於儲存OIDC令牌。

    credential-process-timeout

    credentialProcessTimeout

    credential_process_timeout

    用於指定外部憑證請求的逾時時間,單位為秒。預設值為15即指定15秒;最大值為600即指定10分鐘;credential-process-timeout = 60即指定60秒的逾時時間。

  • 全域參數

    參數名

    別名

    含義

    loglevel

    /

    記錄層級 。取值:

    • off(預設值)

    • info

    • debug

    read-timeout

    readTimeout

    read_timeout

    用戶端讀寫請求逾時時間。單位為秒,預設值20。

    connect-timeout

    connectTimeout

    connect_timeout

    用戶端連線逾時的時間。單位為秒,預設值10。

    retry-times

    retryTimes

    retry_times

    當錯誤發生時的重試次數。預設值10。

    skip-verify-cert

    skipVerifyCert

    skip_verify_cert

    不校正服務端的數位憑證。

    sign-version

    signVersion

    sign_version

    請求使用的簽名演算法版本。取值:

    • v1

    • v4(預設值)

    output-format

    outputFormat

    output_format

    輸出格式。取值:

    • raw(預設值)

    • json

    • xml

    • yaml

    addressing-style

    addressingStyle

    addressing_style

    請求地址的格式 。取值:

    • virtual(預設值)

    • path

    • cname

    language

    /

    顯示的語言。

    endpoint

    /

    對外服務的訪問網域名稱,可不設定。

  • 其它參數

    參數名

    別名

    含義

    source-profile

    sourceProfile

    source_profile

    引用指定profile裡的參數,例如:

    [profile cred]
    access-key-id=ak
    access-key-secret=sk
    
    [profile dev]
    region=cn-hangzhou
    source-profile=cred

    buckets

    /

    引用指定buckets裡的參數。

    [profile dev]
    region=cn-hangzhou
    access-key-id=ak
    access-key-secret=sk
    buckets=dev-bucket
    
    [bucktes dev-bucket]
    bucket-name-hz =
     endpoint=oss-cn-hangzhou-internal.aliyuncs.com
    bucket-name-bj =
     region=cn-beijing

節類型:buckets

用於配置特定Bucket和訪問點的映射關係。支援嵌套寫法,即buckets節按bucket-name = 行分成多個小節。格式如下:

[buckets name]
bucket-name = 
  key=value

其中,name為該buckets節的名字,bucket-name為具體的Bucket名字,key=value配置參數,支援的參數如下:

參數名

別名

含義

region

/

資料中心所在的地區。

當不設定時,使用引入該參數的profile裡的region值。

endpoint

/

對外服務的訪問網域名稱,可不設定。

addressing-style

addressingStyle

addressing_style

請求地址的格式。取值:

virtual(預設值):使用Bucket虛擬網域名稱請求地址格式。

path:使用path style請求地址格式。

cname:使用cname請求地址格式。

節類型buckets樣本如下:

[buckets dev-bucket]
bucket-hz-01 = 
  region=cn-hangzhou
bucket-hz-02 = 
  region=cn-hangzhou
  endpoint=test.com
  addressing-style=cname
bucket-bj-01 = 
  region=cn-beijing

環境變數

當前支援的環境變數如下:

環境變數名

對應的參數名

OSS_ACCESS_KEY_ID

access-key-id

OSS_ACCESS_KEY_SECRET

access-key-secret

OSS_SESSION_TOKEN

sts-token

OSS_ROLE_ARN

ram-role-arn

OSS_ROLE_SESSION_NAME

role-session-name

OSS_REGION

region

OSS_ENDPOINT

endpoint

OSSUTIL_CONFIG_FILE

config-file

OSSUTIL_PROFILE

profile

配置訪問憑證

您可以參考以下方法配置不同類型的訪問憑證的執行個體配置。

短期訪問憑證

通過設定檔

產生如下的設定檔,並儲存在~/.myossutilconfig

[default]
accessKeyID = STS.LTAI4Fw2NbDUCV8z********
accessKeySecret = 67DLVBkH7EamOjy2W5RVAH********
stsToken = yourSecurityToken
region=cn-hangzhou

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -c ~/.myossutilconfig

通過環境變數

export OSS_ACCESS_KEY_ID=STS.LTAI4Fw2NbDUCV8z********
export OSS_ACCESS_KEY_SECRET=67DLVBkH7EamOjy2W5RVAH********
export OSS_SESSION_TOKEN=yourSecurityToken
ossutil ls oss://examplebucket

通過命令列選項(不推薦)

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -i STS.LTAI4Fw2NbDUCV8z******** -k 67DLVBkH7EamOjy2W5RVAH******** -t yourSecurityToken

長期訪問憑證

通過設定檔

產生如下的設定檔,並儲存在~/.myossutilconfig

[default]
accessKeyID = LTAI4Fw2NbDUCV8z********
accessKeySecret = 67DLVBkH7EamOjy2W5RVAH********
region=cn-hangzhou

通過如下命令查詢example-bucket中的對象。

ossutil ls oss://examplebucket -c ~/.myossutilconfig

通過環境變數

export OSS_ACCESS_KEY_ID=LTAI4Fw2NbDUCV8z********
export OSS_ACCESS_KEY_SECRET=67DLVBkH7EamOjy2W5RVAH********
ossutil ls oss://examplebucket

通過命令列選項(不推薦)

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -i LTAI4Fw2NbDUCV8z******** -k 67DLVBkH7EamOjy2W5RVAH********

RAM角色訪問憑證

通過設定檔

產生如下的設定檔,並儲存在~/.myossutilconfig

[default]
accessKeyID = LTAI4Fw2NbDUCV8z********
accessKeySecret = 67DLVBkH7EamOjy2W5RVAH********
mode = RamRoleArn
roleArn = acs:ram::137918634953****:role/Alice
roleSessionName = session_name_example
region=cn-hangzhou

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -c ~/.myossutilconfig
說明

不支援通過環境變數或者命令列選項方式設定。

執行個體角色訪問憑證

通過設定檔

產生如下的設定檔,並儲存在~/.myossutilconfig

[default]
mode = EcsRamRole
# ecsRoleName可以不設定,當不設定時,自動擷取。
ecsRoleName = EcsRamRoleOss 
region=cn-hangzhou

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -c ~/.myossutilconfig

通過命令列選項

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket --mode EcsRamRole
說明

不支援通過環境變數方式設定。

OIDC訪問憑證

關於OIDC角色SSO的更多資訊,請參見OIDC角色SSO概覽

通過設定檔

產生如下的設定檔,並儲存在~/.myossutilconfig

[default]
mode = oidcRoleArn
#指定 OIDC 提供者的 ARN(Aliyun Resource Name),格式為 acs:ram::account-id:oidc-provider/provider-name。
OIDCProviderArn=acs:ram::113511544585****:oidc-provider/TestOidcProvider
#指定 OIDC 令牌的檔案路徑,用於儲存 OIDC 令牌
OIDCTokenFilePath=OIDCTokenFilePath
#填寫角色的ARN資訊,即需要扮演的角色ID。格式為acs:ram::113511544585****:oidc-provider/TestOidcProvider
roleArn=acs:ram::113511544585****:role/testoidc
# 自訂角色會話名稱,用於區分不同的令牌。
roleSessionName= TestOidcAssumedRoleSession
region=cn-hangzhou

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -c ~/.myossutilconfig
說明

不支援通過環境變數或者命令列選項方式設定。

外部進程擷取憑證

ossutil通過外部命令啟動一個進程,該進程與ossutil進程是獨立的,稱為外部進程。外部進程執行後,通過標準輸出把結果返回給進程的啟動者,即ossutil。您可以通過外部進程擷取憑證。

說明
  • 產生憑證的命令不可由未經獲批准的進程或使用者訪問,否則可能存在安全風險。

  • 產生憑證的命令不會把任何秘密資訊寫入stderr或stdout,因為該資訊可能會被捕獲或記錄,可能會將其向未經授權的使用者公開。

外部命令返回的憑證,支援長期憑證和臨時憑證,格式如下。

長期憑證

{
  "AccessKeyId" : "ak",
  "AccessKeySecret" : "sk",
}

臨時憑證

{
  "AccessKeyId" : "ak",
  "AccessKeySecret" : "sk",
  "Expiration" : "2023-12-29T07:45:02Z",
  "SecurityToken" : "token",
}

通過設定檔

產生如下的設定檔,並儲存在~/.myossutilconfig

[default]
mode = Process
credentialProcess = user-cmd
region=cn-hangzhou

通過如下命令查詢examplebucket中的對象。

ossutil ls oss://examplebucket -c ~/.myossutilconfig
說明

不支援通過環境變數或者命令列選項方式設定。