本文介紹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 |
配置訪問憑證
您可以參考以下方法配置不同類型的訪問憑證的執行個體配置。
短期訪問憑證
長期訪問憑證
RAM角色訪問憑證
不支援通過環境變數或者命令列選項方式設定。
執行個體角色訪問憑證
不支援通過環境變數方式設定。
OIDC訪問憑證
關於OIDC角色SSO的更多資訊,請參見OIDC角色SSO概覽。
不支援通過環境變數或者命令列選項方式設定。
外部進程擷取憑證
ossutil通過外部命令啟動一個進程,該進程與ossutil進程是獨立的,稱為外部進程。外部進程執行後,通過標準輸出把結果返回給進程的啟動者,即ossutil。您可以通過外部進程擷取憑證。
產生憑證的命令不可由未經獲批准的進程或使用者訪問,否則可能存在安全風險。
產生憑證的命令不會把任何秘密資訊寫入stderr或stdout,因為該資訊可能會被捕獲或記錄,可能會將其向未經授權的使用者公開。
外部命令返回的憑證,支援長期憑證和臨時憑證,格式如下。
長期憑證
{
"AccessKeyId" : "ak",
"AccessKeySecret" : "sk",
}
臨時憑證
{
"AccessKeyId" : "ak",
"AccessKeySecret" : "sk",
"Expiration" : "2023-12-29T07:45:02Z",
"SecurityToken" : "token",
}
不支援通過環境變數或者命令列選項方式設定。