このトピックでは、ossutil を構成する方法について説明します。
ossutil のバージョンのアップグレード
ossutil 2.0 を使用することをお勧めします。 ossutil を迅速にインストールして使用する方法については、「ossutil のインストール」をご参照ください。
ossutil 2.0 の主な機能:
新しいコマンド構文:
ossutil api put-bucket-aclなどの API レベルのコマンドや、ossutil configなどの高レベルのコマンドなど、複数レベルのコマンドが導入されています。最適化された構成メカニズム: 初期構成プロセスが簡素化されました。 ossutil をインストールした後、AccessKey ID、AccessKey シークレット、およびリージョン ID を指定するだけで、基本構成を完了できます。 また、
--profileパラメーターを使用して複数の構成ファイルを指定することもでき、柔軟性が向上します。ls、cp、rmなどのバッチ処理コマンドに対して、パス、ファイルサイズ、最終更新時刻、およびオブジェクトのメタデータに基づくさまざまなフィルター条件が提供され、操作の精度と効率が大幅に向上します。柔軟な出力形式:
--output-formatパラメーターを使用して、出力ファイルの出力形式を JSON、YAML、または XML に設定し、さまざまなデータ処理要件により適切に対応できます。 また、--output-queryオプションを指定して出力ファイルをフィルタリングし、必要な情報を取得することもできます。セキュリティの強化: データセキュリティを向上させるために、ossutil 2.0 では環境変数を使用して機密パラメーターを指定できます。これにより、コマンドラインでキーが公開されるのを回避し、漏洩のリスクを軽減します。 さらに、
--dry-runオプションを使用すると、コマンドを実行する前にユーザーが動作を確認できるため、操作が正しいことを確認できます。
config コマンドを実行して ossutil を迅速に構成する
ほとんどの場合、config コマンドを実行して ossutil を迅速に構成できます。 このコマンドは、対話形式で構成ファイルを生成するのに役立ちます。
次の例は、Linux オペレーティングシステムで ossutil を構成する方法を示しています。
次のコマンドを実行して ossutil を構成します。
ossutil config画面の指示に従って、構成ファイルのパスを構成します。
ビジネス要件に基づいて構成ファイルのパスを指定できます。 デフォルトでは、構成ファイルは ~/.ossutilconfig として保存されます。 Enter キーを押すと、デフォルトの構成が使用されます。
構成ファイルの名前を指定します。 構成ファイルの名前にはファイルパスを含めることができます。 構成ファイルのデフォルト名は /home/user/.ossutilconfig です。 パスを指定せずに Enter キーを押すと、デフォルトパスが使用されます。 ファイルを別のパスに保存する場合は、--config-file オプションをパスに設定します。画面の指示に従って、ossutil の表示言語を構成します。
CH または EN を入力します。 デフォルトでは、ossutil は OS で使用されている言語で表示されます。 構成は、config コマンドを実行した後に有効になります。
画面の指示に従って、エンドポイント、accessKeyID、accessKeySecret、および stsToken の各パラメーターを構成します。 stsToken パラメーターは、Security Token Service (STS) によって提供される一時的なアクセス認証情報を使用して OSS にアクセスする場合にのみ必要です。
次の表は、上記のパラメーターについて説明しています。
パラメーター
必須
説明
エンドポイント
はい
バケットが配置されているリージョンのエンドポイントを指定します。 この例では、中国 (杭州) リージョンのパブリックエンドポイント (
https://oss-cn-hangzhou.aliyuncs.com) が使用されています。OSS と同じリージョンにある他の Alibaba Cloud サービスを使用して OSS にアクセスする場合は、内部エンドポイント (
https://oss-cn-hangzhou-internal.aliyuncs.com) を使用します。リージョンとエンドポイントの関係の詳細については、「リージョンとエンドポイント」をご参照ください。
accessKeyID
はい
Alibaba Cloud アカウントの AccessKey ペアを指定します。 詳細については、「AccessKey ペアを取得する」をご参照ください。
accessKeySecret
はい
stsToken
いいえ
このパラメーターは、一時的なアクセス認証情報を使用して OSS バケットにアクセスする場合にのみ必要です。 一時的なアクセス認証情報を使用して OSS バケットにアクセスしない場合は、このパラメーターを空のままにすることができます。 セキュリティトークンを生成する方法の詳細については、「AssumeRole」をご参照ください。
手順 2 で構成ファイルのパスを指定した場合は、このコマンドを実行するたびに -c オプションを追加して構成ファイルを指定します。
たとえば、構成ファイルを /home/config として保存した場合は、ls コマンドを実行するときに、次の形式で -c オプションを追加します。
ossutil -c /home/config ls oss://examplebucket
コマンドの実行に必要なパラメーターを構成ファイルで指定する
共通の認証情報と構成を構成ファイルに保存して、簡単に使用できます。 構成ファイルは INI 形式で、セクションとキーで構成されます。 構成パラメーターは、指定されたセクションに保存されます。 次の表は、共通の構成パラメーターについて説明しています。
パラメーター | 説明 | サンプルコード |
language | ossutil が使用する言語。 有効な値:
| |
エンドポイント | バケットが配置されているリージョンのエンドポイント。 |
|
accessKeyID | ユーザーを一意に識別する AccessKey ID。 | |
accessKeySecret | ユーザーの ID を認証する AccessKey シークレット。 | |
stsToken | リクエストの認証に使用されるセキュリティトークン。 | |
mode | 認証に使用されるモード。 有効な値: AK、StsToken、RamRoleArn、および EcsRamRole。 | |
ramRoleArn | 認証の RamRoleArn モードにおける RAM ロールの Alibaba Cloud Resource Name (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 へのアクセスに使用する Accesskey ID。 | |
-k, --access-key-secret | OSS へのアクセスに使用する Accesskey シークレット。 | |
-t, --sts-token | OSS へのアクセスに使用するセキュリティトークン。 | |
--mode | 認証に使用されるモード。 有効な値: AK、StsToken、RamRoleArn、および EcsRamRole。 デフォルトでは、このパラメーターは空のままです。 | 次のコードは、AK モードで OSS にアクセスする方法の例を示しています。 |
--ram-role-arn | 認証の RamRoleArn モードにおける RAM ロールの ARN。 | |
--role-session-name | 認証モードにおけるセッションの名前。 | |
--token-timeout | セキュリティトークンの有効期間です。単位:秒。デフォルト値:3600 です。 | |
--ecs-role-name | 認証に EcsRamRole モードを使用する場合のロール名です。 | |
オプションの詳細については、「共通オプション」をご参照ください。
アクセス資格情報を構成する
構成ファイルまたはコマンドライン オプションでパラメーターを指定することで、アクセス資格情報を構成できます。
AccessKey ペアを使用してデータにアクセスする
この例では、中国 (杭州) リージョンにある example-bucket という名前のバケットを使用します。
構成ファイルでパラメーターを指定する
以下の設定を含む構成ファイル ~/.myossutilconfig を作成します。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecretバケット内のオブジェクトをクエリするには、次のコマンドを実行します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucketコマンドライン オプションを指定する
次のコードは、コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする方法の例を示しています。
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret ls oss://example-bucket重要コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする場合、一時的なアクセス資格情報はログ システムによって記録される可能性があります。 AccessKey ペアは漏洩しやすいので、注意して進めてください。
STS から取得した一時的なアクセス資格情報を使用してデータにアクセスする
この例では、中国 (杭州) リージョンにある example-bucket という名前のバケットを使用します。
構成ファイルでパラメーターを指定する
以下の設定を含む構成ファイル ~/.myossutilconfig を作成します。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret stsToken = yourSecurityTokenバケット内のオブジェクトをクエリするには、次のコマンドを実行します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucketコマンドライン オプションを指定する
次のコードは、コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする方法の例を示しています。
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret -t yourSecurityToken ls oss://example-bucket説明コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする場合、一時的なアクセス資格情報はログ システムによって記録される可能性があります。 AccessKey ペアは漏洩しやすいので、注意して進めてください。
RAM ロールを使用する
この例では、中国 (杭州) リージョンにある example-bucket という名前のバケットと、ramRoleArnExample という名前の RAM ロールを使用します。
構成ファイルでパラメーターを指定する
以下の設定を含む構成ファイル ~/.myossutilconfig を作成します。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret mode = RamRoleArn ramRoleArn = acs:ram::137918634953****:role/Alice roleSessionName = session_name_example (このパラメーターはオプションです。) tokenTimeout = 1800 (このパラメーターはオプションです。)バケット内のオブジェクトをクエリするには、次のコマンドを実行します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucketコマンドライン オプションを指定する
次のコードは、コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする方法の例を示しています。
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret --mode RamRoleArn --ram-role-arn acs:ram::137918634953****:role/Alice ls oss://example-bucket説明コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする場合、一時的なアクセス資格情報はログ システムによって記録される可能性があります。 AccessKey ペアは漏洩しやすいので、注意して進めてください。
インスタンス RAM ロールを使用する
Elastic Compute Service (ECS) インスタンスで ossutil にアクセスするために使用される資格情報を構成するために、インスタンス RAM ロールを使用することもできます。 ECS インスタンスに RAM ロールをアタッチできます。これにより、STS から取得した一時的なアクセス資格情報を使用して ossutil にアクセスできます。 STS の一時的なアクセス資格情報は自動的に生成および更新されます。アプリケーションは、インスタンス メタデータ URL を使用して STS の一時的なアクセス資格情報を取得できます。 RAM ロールは、AccessKey ペアのセキュリティ保護に役立ち、きめ細かい権限制御と管理を容易にします。
使用する前に、ECS インスタンスでインスタンス RAM ロールを作成します。 詳細については、「インスタンス RAM ロール」をご参照ください。
この例では、中国 (杭州) リージョンにある example-bucket という名前のバケットと、ECS インスタンスにアタッチされた EcsRamRoleOss という名前の RAM ロールを使用します。
構成ファイルでパラメーターを指定する
以下の設定を含む構成ファイル ~/.myossutilconfig を作成します。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com mode = EcsRamRole ecsRoleName = EcsRamRoleOssバケット内のオブジェクトをクエリするには、次のコマンドを実行します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucketコマンドライン オプションを指定する
次のコードは、コマンドライン オプションを指定して一時的なアクセス資格情報をインポートする方法の例を示しています。
ossutil64 -e oss-cn-hangzhou.aliyuncs.com --mode EcsRamRole --ecs-role-name EcsRamRoleOss ls oss://example-bucket
バケットのエンドポイントを指定する
ossutil を使用する場合、複数のバケットを管理する必要があります。この場合、バケットごとにエンドポイントを指定する必要があります。バケットごとにエンドポイントを指定するには、次のいずれかの方法を使用できます。
構成ファイルでパラメーターを指定する
構成ファイルで、次のフォーマットで各バケットのエンドポイントを指定する [Bucket-Endpoint] 構成セクションを追加します。
[Bucket-Endpoint] bucket1 = endpoint1 bucket2 = endpoint2 ...この例では、中国 (杭州) リージョンの example-bucket-hz という名前のバケット、中国 (北京) リージョンの example-bucket-bj という名前のバケット、および中国 (上海) リージョンの example-bucket-sh という名前のバケットが使用されています。
次の設定を含む構成ファイル ~/.myossutilconfig を作成します。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeyID [Bucket-Endpoint] example-bucket-hz=oss-cn-hangzhou.aliyuncs.com example-bucket-bj=oss-cn-beijing.aliyuncs.com example-bucket-sh=oss-cn-shanghai.aliyuncs.com次のコマンドを実行して、バケット内のオブジェクトをクエリします。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-hz ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-bj ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-shコマンドラインオプションを指定する
この例では、中国 (杭州) リージョンの example-bucket-hz という名前のバケット、中国 (北京) リージョンの example-bucket-bj という名前のバケット、および中国 (上海) リージョンの example-bucket-sh という名前のバケットが使用されています。
~/.myossutilconfig ファイルにアカウント情報を指定します。
[Credentials] endpoint = oss-cn-hangzhou.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret-e パラメーターを指定してエンドポイントを指定します。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket-hz ossutil64 -c ~/.myossutilconfig -e oss-cn-beijing.aliyuncs.com ls oss://example-bucket-bj ossutil64 -c ~/.myossutilconfig -e oss-cn-shanghai.aliyuncs.com ls oss://example-bucket-sh
カスタムドメイン名を指定する
ossutil では、カスタムドメイン名を使用して OSS リソースにアクセスできます。カスタムドメイン名を使用して OSS リソースにアクセスする前に、構成ファイルでバケットとカスタムドメイン名のマッピングを構成する必要があります。
構成ファイルで、[Bucket-Cname] 構成セクションを追加して、次のフォーマットで各バケットのカスタムドメイン名を指定します。
[Bucket-Cname]
bucket1 = cname1
bucket2 = cname2
...この例では、中国 (杭州) リージョンの example-bucket という名前のバケットと、カスタムドメイン名 cname.example-***.com を使用しています。
次の設定を含む構成ファイル ~/.myossutilconfig を作成します。
[Credentials]
accessKeyID = yourAccessKeyID
accessKeySecret = yourAccessKeySecret
[Bucket-Cname]
example-bucket=cname.example-***.com次のコマンドを実行して、バケット内のオブジェクトをクエリします。
ossutil64 -c ~/.myossutilconfig ls oss://example-bucket
