このトピックでは、ossutilを設定する方法について説明します。
前提条件
ossutilがインストールされています。 詳細については、「ossutilのインストール」をご参照ください。
Object Storage Service (OSS) が有効化されています。
設定方法
設定ファイル、環境変数、コマンドラインオプションなど、複数の方法を使用してossutilを設定できます。
設定ファイル: ossutilの設定ファイルはINIファイル形式で、パラメーターを指定できます。
環境変数: ossutilは、構成ファイルよりも優先される複数の環境変数をサポートします。 これらの変数を使用してossutilを設定できます。
コマンドラインオプション: ossutilには複数のコマンドラインオプションがあります。 これらのオプションを使用してossutilを設定できます。
コマンドラインオプションを指定してAccessKeyペアをインポートすると、AccessKeyペアがログシステムによって記録される可能性があります。 AccessKeyペアは非常にリークしやすいです。 注意してください。
構成ファイルの設定
一般的に使用されるossutil構成設定とアクセス資格情報を構成ファイルに保存できます。 設定ファイルの設定はセクションに分類されます。 -- profileオプションを使用して、ossutilが使用する特定のセクションを指定できます。 デフォルトでは、ossutilは構成ファイルのデフォルトセクションの設定を使用します。 他の設定を作成および参照できます。
ossutil config credential
コマンドを使用して、設定ファイルのアクセス資格情報を設定できます。
設定ファイルの形式
ossutilの設定ファイルはINIファイル形式です。 INI設定ファイルはセクションで構成されています。
セクション内のパラメータは、
key=value
形式です。セクション名とキー名は大文字と小文字を区別しません。
キーは小文字と小さなラクダのケースにすることができます。 キー内の単語は、ハイフン文字 (-) またはアンダースコア文字 (_) で区切ることができます。 たとえば、accesskeyid、accessKeyId、access-key-ID、またはaccess_key_idを使用して、構成ファイルにAccessKey idを設定できます。
コメントは数字記号 (#) で始まります。
サポートされているセクションタイプ
セクション | 説明 | 追加情報 |
[default] | デフォルト設定が含まれます。 コマンドで -- profileオプションを指定しない場合、ossutilはデフォルトセクションの設定を使用します。 | [default] セクションの完全な形式は [profile default] です。 |
[プロフィール名] | カスタム設定が含まれます。 コマンドで -- profileオプションを指定することで、セクションの設定を使用できます。 | source_profileを使用して、特定のプロファイルセクションの構成設定を参照できます。 |
[バケット名] | リージョン、エンドポイント、アドレス指定スタイルなど、バケット固有の設定が含まれます。 | このセクションタイプは、キーと値のペアのインライン配置をサポートします。 |
configコマンドを使用して、構成ファイルの設定を照会および構成できます。 詳細については、「config」をご参照ください。
セクションタイプ: プロフィール
プロファイルセクションを使用して、アクセス資格情報関連のパラメーターとグローバルオプションを設定できます。 プロファイルセクションには、次の情報を含めることができます。
資格情報関連のパラメーターへのアクセス
パラメーター
エイリアス
説明
モード
/
認証モードです。
有効な値: AK、StsToken、RamRoleArn、EcsRamRole、およびAnonymous。
access-key-id
accessKeyId
access_key_id
AccessKey ID。
{access-key-secret}
accessKeySecret
access_key_secret
AccessKeyシークレット。
sts-token
stsToken
sts_token
Security token Service (STS) によって発行されたトークン。
role-arn
roleArn
role_arn
RAM ロールの Alibaba Cloud Resource Name (ARN) です。 このパラメーターは、RamRoleArn認証モードで使用されます。
role-session-name
roleSessionName
role_session_name
セッション名。 このパラメーターは、RamRoleArn認証モードで使用されます。
ecsロール名
ecsRoleName
ecs_role_name
ロール名。 このパラメーターは、EcsRamRole認証モードで使用されます。
credential-プロセス
credentialProcess
credential_process
外部コマンドを指定します。
クレデンシャル-uri
credentialUri
credential_uri
ossutilがアクセス資格情報を取得するURI。
oidc-provider-arn
oidcProviderArn
oidc_provider_arn
OpenID Connect (OIDC) IDプロバイダー (IdP) のARN。 ARNは、
acs:ram::account-id:oidc-provider/provider-name
形式を使用します。oidc-token-file-path
oidcTokenFilePath
oidc_token_file_path
OIDCトークンへのパス。
credential-process-timeout
credentialProcessTimeout
credential_process_timeout
外部資格情報を使用して開始されたリクエストのタイムアウト期間を指定します。 単位は秒です。 デフォルト値は15で、タイムアウト期間が15秒に設定されていることを示します。 最大値は600(10分) で、タイムアウト期間が10分に設定されていることを示します。
credential-process-timeout = 60
は、外部認証情報を使用して開始されたリクエストのタイムアウト期間が60秒に設定されていることを示します。グローバルパラメーター
オプション
エイリアス
説明
loglevel
/
ログエントリの重大度。 有効な値:
off (デフォルト)
info
デバッグ
読み取りタイムアウト
readTimeout
read_timeout
クライアントの読み取りおよび書き込み要求のタイムアウト時間 (秒) 。 デフォルト値: 20
接続タイムアウト
connectTimeout
connect_timeout
クライアント接続のタイムアウト時間 (秒) 。 既定値:1
retry-times
retryTimes
retry_times
エラーのリトライ回数。 既定値:1
skip-verify-cert
skipVerifyCert
skip_verify_cert
サーバーのデジタル証明書が検証されていないことを指定します。
sign-version sign-version
signVersion
sign_version
署名アルゴリズムのバージョン。 有効な値:
v1
v4 (デフォルト)
出力形式
outputFormat
output_format
出力の形式。 有効な値:
raw (デフォルト)
JSON
xml
yaml
アドレス指定スタイル
addressingStyle
addressing_style
アドレス指定スタイル。 有効な値:
virtual (デフォルト)
パス
cname
言語
/
表示言語。
endpoint
/
リージョンのエンドポイント。 このパラメーターはオプションです。
その他のパラメーター
パラメーター
エイリアス
説明
source-profile
sourceProfile
source_profile
指定されたプロファイルセクションの参照パラメーター。 例:
[profile cred] access-key-id=ak access-key-secret=sk [profile dev] region=cn-hangzhou source-profile=cred
バケット
/
指定されたバケットセクションの参照パラメーター。
[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
セクションタイプ: バケツ
バケットセクションは、バケットとエンドポイント間のマッピングを格納します。 バケットセクションには、バケット名を表すキー内にネストされたkey=valueペアが含まれます。
[buckets name]
bucket-name =
key=value
ここで、nameはバケットセクションの名前、bucket-nameはバケットの名前、key=valueは設定項目です。 バケットセクションでは、バケット固有のパラメーターを指定できます。 下表に、各パラメーターを説明します。
パラメーター | エイリアス | 説明 |
region | / | バケットが配置されているリージョン。 このパラメーターを空のままにすると、ossutilは構成ファイルの参照プロファイルセクションでregionパラメーターを使用します。 |
endpoint | / | リージョンのエンドポイント。 このパラメーターはオプションです。 |
アドレス指定スタイル | addressingStyle addressing_style | アドレス指定スタイル。 有効な値: virtual (デフォルト): 仮想バケットドメインを使用します。 path: パススタイルのアドレスを使用します。 cname: CNAMEを使用します。 |
次の行は、バケットセクションの例を示しています。
[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
環境変数
ossutilでサポートされている環境変数を次の表に示します。
環境変数 | 対応するパラメータ名 |
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ファイル |
OSSUTIL_PROFILE | profile |
アクセス資格情報の設定
次の方法を使用して、さまざまな種類のアクセス資格情報を設定できます。
ossutil config credential
コマンドを使用して、設定ファイルのアクセス資格情報をすばやく設定できます。
一時的なアクセス資格情報の設定
設定ファイルを使用して
次の設定を含む構成ファイル
~/.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
次のコマンドを実行して、examplebucketのオブジェクトを一覧表示します。
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
環境変数またはコマンドラインオプションを使用して、このタイプのアクセス資格情報を設定することはできません。
ECSインスタンスのRAMロールのアクセス資格情報
設定ファイルを使用して
次の設定を含む構成ファイル
~/.myossutilconfig
を作成します。[default] mode = EcsRamRole # The ecsRoleName parameter is optional. If you do not set this parameter, the value is automatically obtained. 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
# Provide the ARN of the OIDC IdP in the format of acs:ram::account-id:oidc-provider/provider-name.
OIDCProviderArn=acs:ram::113511544585****:oidc-provider/TestOidcProvider
# Specify the path to the OIDC token.
OIDCTokenFilePath=OIDCTokenFilePath
# Specify the ARN of the role, that is, the ID of the role. The ARN is in the acs:ram::113511544585****:oidc-provider/TestOidcProvider format.
roleArn=acs:ram::113511544585****:role/testoidc
# Specify the session name, which is used to differentiate tokens.
roleSessionName= TestOidcAssumedRoleSession
region=cn-hangzhou
次のコマンドを実行して、examplebucketのオブジェクトを一覧表示します。
ossutil ls oss://examplebucket -c ~/.myossutilconfig
環境変数またはコマンドラインオプションを使用して、このタイプのアクセス資格情報を設定することはできません。
外部プロセスを使用したアクセス資格情報の取得
ossutilは、外部コマンドを使用して、ossutilプロセスとは別の外部プロセスを開始します。 外部プロセスは、標準出力を使用して出力をossutilに返します。 外部プロセスを使用してアクセス資格情報を取得できます。
セキュリティリスクを軽減するには、意図したプロセスまたはユーザーのみにコマンドを実行してアクセス資格情報を生成する権限を付与する必要があります。
アクセス資格情報を生成するコマンドは、秘密情報をstdrrまたは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
環境変数またはコマンドラインオプションを使用して、このタイプのアクセス資格情報を設定することはできません。