このトピックでは、ossutil をより効果的に使用するための設定方法について説明します。
ossutil 2.0 へのアップグレード
ossutil 2.0 へのアップグレードを推奨します。ツールを迅速にインストールして使用する方法については、「ossutil のインストール」をご参照ください。
ossutil 2.0 の主な特徴は以下の通りです。
-
新しいコマンド構造:ossutil 2.0 は、
ossutil api put-bucket-aclのような API レベルのコマンドや、ossutil configのような高レベルのコマンドを含む、複数レベルのコマンドをサポートします。 -
改善された構成管理:初期設定プロセスが簡素化されました。インストール後、AccessKey ID、AccessKey Secret、リージョンを提供するだけで基本設定を完了できます。また、
--profileパラメーターを使用して複数の設定ファイルを指定することで、柔軟性を高めることができます。 -
豊富なフィルタリングパラメーター:
ls、cp、rmなどのバッチ処理コマンドに対して、複数のフィルター条件のサポートが追加されました。パス、ファイルサイズ、変更時刻、またはオブジェクトのメタデータでフィルタリングできます。これにより、操作の精度と効率が向上します。 -
柔軟な出力フォーマット:新しい
--output-formatパラメーターを使用すると、さまざまなデータ処理のニーズに合わせて出力フォーマットを JSON、YAML、または XML に設定できます。また、--output-queryオプションも導入され、出力をフィルタリングして特定の情報を取得できます。 -
強化されたセキュリティ:セキュリティを向上させるため、ossutil 2.0 では環境変数を使用して機密パラメーターを設定できます。この方法により、キーがコマンドラインに表示されるのを防ぎ、漏洩のリスクを低減します。さらに、新しい
--dry-runオプションを使用すると、コマンドを実行する前にその動作を検証でき、操作の正しさを確認できます。
config コマンドによるクイック設定
ほとんどの場合、config コマンドを使用して ossutil を迅速に設定できます。このコマンドは対話形式で設定ファイルを生成します。
以下の手順では、Linux 環境を例として使用します。
-
設定コマンドを実行します。
ossutil config -
プロンプトに従って、設定ファイルのパスを設定します。
要件に応じて設定ファイルのパスを設定できます。デフォルトでは、設定ファイルは ~/.ossutilconfig に保存されます。Enter キーを押してデフォルトを受け入れます。
Please enter the config file name, the file name can be with a path (default is: /home/user/.ossutilconfig, press enter to use the default path. If you set it to another path, you should specify the path with --config-file option when you use other commands): -
プロンプトに従って、ツールの言語を設定します。
中国語の場合は CH、英語の場合は EN を入力します。デフォルトでは、ツールはご利用のオペレーティングシステムの言語を使用します。この設定は、
configコマンドが完了した後に有効になります。 -
プロンプトに従って、endpoint、AccessKey ID、AccessKey Secret、stsToken パラメーターを設定します。Security Token Service (STS) からの一時トークンを使用して OSS にアクセスする場合は、stsToken パラメーターを設定する必要があります。それ以外の場合は、空のままにします。
次の表にパラメーターを示します。
パラメーター
必須
説明
endpoint
はい
バケットが配置されているリージョンのエンドポイント。たとえば、シンガポール リージョンのパブリックエンドポイントを使用するには、値を
https://oss-ap-southeast-1.aliyuncs.comに設定します。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスするには、内部エンドポイントを使用します。たとえば、値を
https://oss-ap-southeast-1-internal.aliyuncs.comに設定します。リージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
重要コンプライアンスとセキュリティを向上させるためのポリシー変更により、2025年3月20日以降、新規の OSS ユーザーは、中国本土リージョンにある OSS バケットでデータ API オペレーションを実行するためにカスタムドメイン名 (CNAME ドメイン名) を使用する必要があります。これらの操作では、デフォルトのパブリックエンドポイントは制限されます。影響を受ける操作の完全なリストについては、公式発表をご参照ください。HTTPS 経由でデータにアクセスする場合は、カスタムドメインに有効な SSL 証明書をバインドする必要があります。これは、コンソールが HTTPS を強制するため、OSS コンソールへのアクセスには必須です。
accessKeyID
はい
ご利用のアカウントの AccessKey ペア。AccessKey ペアの作成方法の詳細については、「AccessKey ペアの作成」をご参照ください。
accessKeySecret
はい
stsToken
いいえ
このパラメーターは、STS からの一時トークンを使用して OSS にアクセスする場合にのみ必須です。それ以外の場合は、空のままにします。stsToken の生成方法の詳細については、「AssumeRole」をご参照ください。
-
ステップ 2 で設定ファイルにカスタムパスを指定した場合、コマンドを実行するたびに -c オプションを追加して設定ファイルを指定する必要があります。
たとえば、設定ファイルが /home/config に保存されている場合、ls コマンドを実行するときは次の形式を使用します。
ossutil -c /home/config ls oss://examplebucket
設定ファイル
頻繁に使用する認証情報や設定情報を設定ファイルに保存すると便利です。設定ファイルは INI 形式を使用し、セクションとキーと値のペアで構成されます。設定パラメーターは特定のセクションに保存されます。次の表に、一般的な設定パラメーターを示します。
|
パラメーター |
説明 |
サンプルコード |
|
language |
ossutil ツールの言語。有効な値:
|
|
|
endpoint |
バケットが配置されているリージョンのエンドポイント。 |
|
|
accessKeyID |
リクエスト認証のためにユーザーを識別する AccessKey ペアの一部。 |
|
|
accessKeySecret |
コマンドリクエストに署名して認証する AccessKey ペアの一部。 |
|
|
stsToken |
認証のために STS から取得した一時トークン。 |
|
|
mode |
認証モード。有効な値:AK、StsToken、RamRoleArn、EcsRamRole。 |
|
|
ramRoleArn |
RamRoleArn 認証モードを使用する際に引き受ける RAM ロールの Alibaba Cloud リソースネーム (ARN)。 |
|
|
roleSessionName |
RamRoleArn モードで使用されるセッション名。このパラメーターが設定されていない場合、ランダムな値が生成されます。 |
|
|
tokenTimeout |
一時トークンの有効期限 (秒単位)。このパラメーターは RamRoleArn モードで使用されます。デフォルト値:3600。 |
|
|
ecsRoleName |
EcsRamRole 認証モードのロール名。 |
|
設定パラメーターの詳細については、「設定ファイルの編集」をご参照ください。
コマンドラインオプション
コマンドラインオプションを使用して設定を指定することもできます。これは設定ファイルの設定よりも優先されます。
|
オプション |
説明 |
サンプルコード |
|
--loglevel |
ログレベル。デフォルトでは、このパラメーターは空で、ログファイルは生成されません。有効な値:
|
|
|
--connect-timeout |
接続タイムアウト (秒単位)。デフォルト値:120。 |
|
|
--read-timeout |
読み取りタイムアウト (秒単位)。デフォルト値:1200。 |
|
|
--retry-times |
エラー時のリトライ回数。デフォルト値:10。 |
|
|
-e, --endpoint |
リクエストのエンドポイント。 |
|
|
-i, --access-key-id |
OSS へのアクセスに使用されるアクセス認証情報。 |
|
|
-k, --access-key-secret |
OSS へのアクセスに使用されるアクセス認証情報。 |
|
|
-t, --sts-token |
OSS へのアクセスに使用される STS トークン。 |
|
|
--mode |
認証モード。有効な値:AK、StsToken、RamRoleArn、EcsRamRole。デフォルトでは、このパラメーターは空です。 |
次のサンプルコードは、AK モードで OSS にアクセスする方法を示しています。
|
|
--ram-role-arn |
認証に使用する RAM ロールの ARN。 |
|
|
--role-session-name |
認証に使用するセッション名。 |
|
|
--token-timeout |
トークンの有効期間 (秒単位)。デフォルト値:3600。 |
|
|
--ecs-role-name |
EcsRamRole 認証モードのロール名。 |
|
設定オプションの詳細については、「共通オプション」をご参照ください。
アクセス認証情報の設定
設定ファイルやコマンドラインオプションなど、複数の方法でアクセス認証情報を設定できます。
AccessKey ペアの使用
このセクションでは、シンガポール リージョンにある example-bucket という名前のバケットを例に説明します。
-
設定ファイルの使用
次の設定ファイルを作成し、~/.myossutilconfig に保存します。
[Credentials] endpoint = oss-ap-southeast-1.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret次のコマンドを実行して、バケット内のオブジェクトをリスト表示します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket -
コマンドラインオプションの使用
AccessKey ペアをコマンドラインパラメーターとして直接渡すこともできます。次のサンプルコードは、その方法を示しています。
ossutil64 -e oss-ap-southeast-1.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret ls oss://example-bucket重要アクセス認証情報をコマンドラインパラメーターとして渡すと、シェルの履歴やシステムログに記録される可能性があるため、セキュリティリスクが生じます。この方法は注意して使用してください。
一時トークンの使用
このセクションでは、シンガポール リージョンにある example-bucket という名前のバケットを例に説明します。
-
設定ファイルの使用
次の設定ファイルを作成し、~/.myossutilconfig に保存します。
[Credentials] endpoint = oss-ap-southeast-1.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret stsToken = yourSecurityToken次のコマンドを実行して、バケット内のオブジェクトをリスト表示します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket -
コマンドラインオプションの使用
一時的なアクセス認証情報をコマンドラインパラメーターとして渡すこともできます。次のサンプルコードは、その方法を示しています。
ossutil64 -e oss-ap-southeast-1.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret -t yourSecurityToken ls oss://example-bucket説明アクセス認証情報をコマンドラインパラメーターとして渡すと、シェルの履歴やシステムログに記録される可能性があるため、セキュリティリスクが生じます。この方法は注意して使用してください。
RAM ロールの使用
このセクションでは、シンガポール リージョンにある example-bucket という名前のバケットと、ramRoleArnExample という名前の RAM ロールを例に説明します。
-
設定ファイルの使用
次の設定ファイルを作成し、~/.myossutilconfig に保存します。
[Credentials] endpoint = oss-ap-southeast-1.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret mode = RamRoleArn ramRoleArn = acs:ram::137918634953****:role/Alice roleSessionName = session_name_example (optional) tokenTimeout = 1800 (optional)次のコマンドを実行して、バケット内のオブジェクトをリスト表示します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket -
コマンドラインオプションの使用
アクセス認証情報をコマンドラインパラメーターとして渡すこともできます。次のサンプルコードは、その方法を示しています。
ossutil64 -e oss-ap-southeast-1.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret --mode RamRoleArn --ram-role-arn acs:ram::137918634953****:role/Alice ls oss://example-bucket説明アクセス認証情報をコマンドラインパラメーターとして渡すと、シェルの履歴やシステムログに記録される可能性があるため、セキュリティリスクが生じます。この方法は注意して使用してください。
インスタンス RAM ロールの使用
ECS インスタンス上で、インスタンス RAM ロールを使用して ossutil のアクセス認証情報を設定できます。インスタンス RAM ロールを使用すると、ロールを ECS インスタンスに関連付け、STS からの一時的な認証情報を使用してインスタンス内で ossutil を実行できます。これらの一時的な認証情報は、システムによって自動的に生成およびローテーションされます。アプリケーションは、特定のインスタンスメタデータ URL からこれらを取得するため、長期的なキーを管理する必要がなくなります。この方法は、AccessKey ペアを保護し、詳細な権限コントロールを可能にします。
開始する前に、ECS インスタンスにインスタンス RAM ロールを作成します。詳細については、「インスタンス RAM ロールの作成」をご参照ください。
このセクションでは、シンガポール リージョンにある example-bucket という名前のバケットと、EcsRamRoleOss という名前のインスタンス RAM ロールを例に説明します。
-
設定ファイルの使用
次の設定ファイルを作成し、~/.myossutilconfig に保存します。
[Credentials] endpoint = oss-ap-southeast-1.aliyuncs.com mode = EcsRamRole ecsRoleName = EcsRamRoleOss次のコマンドを実行して、バケット内のオブジェクトをリスト表示します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket -
コマンドラインオプションの使用
設定をコマンドラインパラメーターとして渡すこともできます。次のサンプルコードは、その方法を示しています。
ossutil64 -e oss-ap-southeast-1.aliyuncs.com --mode EcsRamRole --ecs-role-name EcsRamRoleOss ls oss://example-bucket
バケットごとの個別エンドポイントの設定
ossutil を使用して異なるリージョンにある複数のバケットを管理する場合、各バケットに個別のエンドポイントを設定する必要があります。これには 2 つの方法があります。
-
設定ファイルの使用
設定ファイルに [Bucket-Endpoint] セクションを追加して、指定された各バケットに個別のエンドポイントを設定します。フォーマットは次のとおりです。
[Bucket-Endpoint] bucket1 = endpoint1 bucket2 = endpoint2 ...次の例は、シンガポールリージョンのバケット (example-bucket-sg) と日本 (東京) リージョンのバケット (example-bucket-jp) のエンドポイントを設定する方法を示しています。
次の設定ファイルを作成し、~/.myossutilconfig に保存します。
[Credentials] endpoint = oss-ap-southeast-1.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret [Bucket-Endpoint] example-bucket-sg=oss-ap-southeast-1.aliyuncs.com example-bucket-jp=oss-ap-northeast-1.aliyuncs.com次のコマンドを実行して、バケット内のオブジェクトをリスト表示します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-sg ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-jp -
コマンドラインオプションの使用
次の例は、シンガポールリージョンのバケット (example-bucket-sg) と日本 (東京) リージョンのバケット (example-bucket-jp) のエンドポイントを設定する方法を示しています。
~/.myossutilconfig でアカウント情報を設定します。
[Credentials] endpoint = oss-ap-southeast-1.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret-e パラメーターを使用してエンドポイントを指定します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-sg ossutil64 -c ~/.myossutilconfig -e oss-ap-northeast-1.aliyuncs.com ls oss://example-bucket-jp
カスタムドメイン名の設定
ossutil では、カスタムドメイン名を使用して OSS リソースにアクセスできます。この機能を使用する前に、設定ファイルでバケットをカスタムドメイン名にマップする必要があります。
設定ファイルに [Bucket-Cname] セクションを追加して、バケットをカスタムドメイン名にマップします。フォーマットは次のとおりです。
[Bucket-Cname]
bucket1 = cname1
bucket2 = cname2
...
次の例は、カスタムドメイン名 cname.example-***.com を使用して、シンガポール リージョンにある example-bucket という名前のバケットにアクセスする方法を示しています。
次の設定ファイルを作成し、~/.myossutilconfig に保存します。
[Credentials]
accessKeyID = yourAccessKeyID
accessKeySecret = yourAccessKeySecret
[Bucket-Cname]
example-bucket=cname.example-***.com
次のコマンドを実行して、バケット内のオブジェクトをリスト表示します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket