Alibaba Cloud CLI は、認証情報を使用して認証し、クラウドサービス API を呼び出してクラウドリソースを管理します。このトピックでは、ユースケースに基づいて適切な認証情報の種類を選択する方法、および認証情報を設定・管理する方法について説明します。
認証情報の種類の選択
Alibaba Cloud CLI は複数の認証情報の種類をサポートしています。ユースケースに最も適した種類を選択してください。
認証情報の種類 | ユースケース | 非インタラクティブな設定のサポート | 設定 |
OAuth (推奨) | ブラウザーで Alibaba Cloud アカウント、RAM ユーザー、またはシングルサインオン (SSO) を使用してサインインします。多要素認証 (MFA) とパスキーをサポートします。長期的な AccessKey の保存が不要なため、高いセキュリティを確保できます。 | いいえ | |
EcsRamRole (推奨) | Elastic Compute Service (ECS) インスタンス上で CLI を実行する際に、インスタンスにアタッチされた RAM ロールから一時的なセキュリティ認証情報を自動的に取得します。AccessKey の設定や保存は不要です。 | はい | |
RamRoleArn (推奨) | RAM ロールを引き受け、そのロールのアイデンティティとしてリソースを操作します。一時的な権限昇格やクロスアカウントアクセスに適しています。たとえば、基本的な権限を持つ RAM ユーザーが、リソース管理権限を持つ RAM ロールを引き受けたり、Alibaba Cloud アカウントをまたいでリソースにアクセスしたりできます。一時的なセキュリティ認証情報 (STS トークン) を使用します。 | はい | |
ChainableRamRoleArn | ロールチェーンを使用して、ロールを順番に引き受け、クロスアカウントでのリソースアクセスを実現します。 | はい | |
OIDC | OIDC (OpenID Connect) 互換の外部 ID プロバイダーが発行した ID トークンを使用して認証し、ロールを引き受けます。RRSA (RAM Roles for Service Accounts) が有効化された ACK/ACS ポッドでの使用を推奨します。 | はい | |
CloudSSO | Cloud SSO と Resource Directory を使用するマルチアカウントの企業向けです。OAuth と同様に、ブラウザー経由のサインインを使用し、多要素認証 (MFA) をサポートします。 | いいえ | |
External | 外部の実行可能プログラムを呼び出して、認証情報 (AccessKey または一時的なセキュリティトークン) を動的に取得します。カスタム認証情報プロバイダーのシナリオに適しています。 | はい | |
CredentialsURI | 指定した HTTP URI から一時的なセキュリティ認証情報 (STS トークン) を取得します。セルフホスト型の認証情報配布サービスに適しています。 | いいえ | |
StsToken | 一時的なセキュリティ認証情報 (STS トークン) を手動で設定します。トークンの有効期限が切れた場合は、手動で更新する必要があります。 | はい | |
BearerToken | ベアラートークンを使用して Alibaba Cloud API サービスを認証します。CI/CD などの自動化シナリオに適しています。 | はい | |
AK (非推奨) | Alibaba Cloud アカウントまたは RAM ユーザーの長期的な AccessKey を使用して直接認証します。この認証情報は永続的に有効であり、セキュリティは比較的低いです。この方法を使用する必要がある場合は、まず「AccessKey のベストプラクティス」を確認することを推奨します。 | はい |
Cloud Shell を使用する場合、システムが一時的な認証情報を自動的に設定します。アイデンティティは現在コンソールにサインインしている RAM ユーザーまたはロールとなり、その権限が適用されます。手動で設定しなくても CLI コマンドを実行できます。
認証情報の設定
Alibaba Cloud CLI は、インタラクティブな設定と非インタラクティブな設定の 2 つの認証情報設定方法をサポートしています。
インタラクティブな設定
インタラクティブな設定では、コマンドラインウィザードが認証情報の設定を案内します。各認証情報パラメーターを順番に入力するようプロンプトが表示されます。ローカル開発環境や初回設定に適しています。
aliyun configure --mode <AuthenticateMode> --profile <ProfileName>例:EcsProfile という名前の EcsRamRole 認証情報プロファイルを作成する場合:
aliyun configure --mode EcsRamRole --profile EcsProfile以下はインタラクティブセッションのサンプルです:
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode...
Ecs Ram Role []: ECSAdmin
Default Region Id []: cn-shanghai
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en: en
Saving profile[EcsProfile] ...Done.非インタラクティブな設定
インタラクティブな入力なしで、コマンドライン引数を使って認証情報設定パラメーターを直接指定します。スクリプトや CI/CD パイプラインなどの自動化シナリオに適しています。
例:AkProfile という名前の AK 認証情報プロファイルを作成する場合:
Bash
aliyun configure set \
--profile AkProfile \
--mode AK \
--access-key-id ************ \
--access-key-secret ************ \
--region "cn-shanghai"PowerShell
aliyun configure set `
--profile AkProfile `
--mode AK `
--access-key-id ************ `
--access-key-secret ************ `
--region "cn-shanghai"各認証情報の種類でサポートされている設定パラメーターについては、対応する認証情報タイプの詳細設定ページをご参照ください。以下のパラメーターは、すべての認証情報の種類に共通です:
共通パラメーター | 説明 |
| プロファイル名。指定しない場合、アクティブなプロファイルが使用されます。 |
| 認証情報の種類。例: |
| デフォルトのリージョン ID (例: |
「認証情報の種類の選択」の表で、どの種類が非インタラクティブな設定をサポートしているかを確認できます。
同じ認証情報の種類に対して、一意の名前を持つ複数のプロファイルを作成できます。たとえば、開発用と本番用に ak-dev と ak-prod という AK プロファイルを作成できます。
認証情報設定の検証
認証情報を設定した後、次のコマンドを実行して認証情報が有効かどうかを確認します:
aliyun sts get-caller-identity認証情報が正しく設定されている場合、出力は次のようになります:
認証されたアイデンティティが RAM ユーザーの場合:
{ "AccountId": "173305794806****", "Arn": "acs:ram::173305794806****:user/<ユーザー名>", "IdentityType": "RAMUser", "PrincipalId": "20407046578681****", "RequestId": "D012C652-FF76-5101-81B3-45A1DDAC****", "UserId": "20407046578681****" }認証されたアイデンティティが RAM ロールの場合:
{ "AccountId": "191317683912****", "Arn": "acs:ram::191317683912****:assumed-role/<ロール名>/<ロールセッション名>", "IdentityType": "AssumedRoleUser", "PrincipalId": "30004467717606****:<ロールセッション名>", "RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****", "RoleId": "30004467717606****" }
検証が成功したことは、認証が成功したことのみを示します。リソースを管理するには、認証情報に関連付けられたアイデンティティに適切な権限ポリシーをアタッチする必要もあります。
認証情報の管理
aliyun configure サブコマンドを使用して、認証情報プロファイルの表示、切り替え、変更、削除を行います。
設定の表示
プロファイルリストとアクティブなプロファイルの表示
お使いのマシンに設定されているすべての認証情報とそのステータスを表示します。このコマンドで、プロファイル名や認証情報の種類などの認証情報プロファイルの概要情報を確認し、アクティブなプロファイルを特定できます。
aliyun configure list以下はサンプル出力です。アスタリスク (*) は、アクティブな認証情報プロファイルを表します。アクティブなプロファイルは、CLI が使用するデフォルトの認証情報とパラメーターセット (リージョンや言語など) です。--profile パラメーターや環境変数で別のプロファイルを指定しない限り、すべてのコマンドはこのプロファイルを使用します。
Profile | Credential | Valid | Region | Language
--------- | ------------------ | ------- | ---------------- | --------
default | AK:***UyLX | Valid | cn-shanghai | en
OAuthProfile | OAuth:fiA5bnZkyw@CN | Valid | cn-hangzhou | en
EcsProfile * | EcsRamRole:ecs-role-name | Valid | cn-beijing | zhプロファイル詳細の表示
次のコマンドを実行して、指定した認証情報プロファイルの詳細情報を表示します:
aliyun configure get [--profile <ProfileName>] [<SETTING_NAME>...]SETTING_NAME:表示する設定の名前。複数の設定を同時に指定できます。指定しない場合、すべてのプロファイル情報を表示します。指定した設定が存在しない場合、出力はありません。
例 1:OAuthProfile という名前のプロファイルの詳細を表示する場合:
aliyun configure get --profile OAuthProfile出力:
{
"name": "OAuthProfile",
"mode": "OAuth",
"access_key_id": "STS.9jYc5erFPDLrwNGWc7Sob2ZRHenhHfz7pw9*************",
"access_key_secret": "3AcNFz37QykuHEwgzWramXGZaCrM1mDHpG1s7v******",
"sts_token": "CAIS5gJ1q6Ft5DqyfSjI2KnsKI/Rn5lx846Zd******",
"region_id": "cn-hangzhou",
"output_format": "json",
"language": "zh",
"sts_expiration": 1776751437,
"oauth_access_token": "eyJhbGciOiJSUzI1NiIsI*******",
"oauth_refresh_token": "ALGuHPAmSWxR5ynSsoRXhWpUtsxXHcLpGLnZqVvVXZDkjcbMsMasoshv1MnyRhkTq******",
"oauth_access_token_expire": 1776751436,
"oauth_site_type": "CN"
}例 2:OAuthProfile のプロファイル名、認証情報の種類、デフォルト言語のみを表示する場合:
aliyun configure get --profile OAuthProfile profile mode language出力:
profile=OAuthProfile
mode=OAuth
language=en設定ファイルの場所
認証情報設定ファイルを手動で表示またはバックアップする場合、ファイルは以下のパスにあります:
オペレーティングシステム | 保存パス |
Linux / macOS |
|
Windows |
|
プロファイルの切り替え
アクティブなプロファイルの切り替え
指定したプロファイルをアクティブなプロファイルに切り替えます。Alibaba Cloud CLI は aliyun configure switch コマンドを v3.0.214 以降でサポートしています。切り替えが成功すると、--profile パラメーターで明示的に認証情報を指定しない以降のすべてのリクエストは、自動的にこのプロファイルを使用します。
aliyun configure switch --profile <ProfileName>切り替える前に aliyun configure list を実行して、対象のプロファイル名を確認してください。
例:prod という名前のプロファイルに切り替える場合:
aliyun configure switch --profile prod切り替え後、aliyun configure list を実行して、対象のプロファイルに * が付いていることを確認します。
単一コマンドでのプロファイルの使用
単一のコマンドで --profile パラメーターを使用して、一時的にプロファイルを指定します。これはアクティブなプロファイルには影響しません。
例:prod プロファイルを使用して ECS リージョンのリストを照会する場合:
aliyun ecs describe-regions --profile prodプロファイルの変更
aliyun configure set を使用して、既存のプロファイルのパラメーター値を変更します。変更するパラメーターのみを指定する必要があります。指定されていないパラメーターは変更されません。
aliyun configure set --profile <ProfileName> --<ParameterName> <NewValue>共通パラメーター:
--region:デフォルトのリージョン--language:出力言語 (zh / en)
詳細なパラメーターについては、各認証情報タイプのドキュメントをご参照ください。
例:default プロファイルのデフォルトリージョンを変更する場合:
aliyun configure set --profile default --region cn-shanghaiプロファイルを変更すると、自動的にアクティブなプロファイルとして設定されます。
プロファイルの削除
次のコマンドを実行して、指定したプロファイルを削除します:
aliyun configure delete --profile <ProfileName>例:dev という名前のプロファイルを削除する場合:
aliyun configure delete --profile dev削除操作は元に戻せません。アクティブなプロファイルを削除すると、リストの最初のプロファイルが自動的に新しいアクティブなプロファイルになります。
削除後、aliyun configure list コマンドを実行して、プロファイルがリストから削除されたことを確認します。
よくある質問
インタラクティブな設定中に誤った情報を入力してしまった場合は?
aliyun configure set を使用して、対応するフィールドを修正してください。最初から再設定する必要はありません。例:
aliyun configure set --profile <ProfileName> --<ParameterName> <CorrectValue>CLI コマンドがアクティブなプロファイルを使用しない
CLI は、次の優先順位 (優先度の高い順) に基づいて、実際に使用するプロファイルを決定します。より優先度の高い設定が、低い設定を上書きします:
--profileコマンドラインパラメーター:現在のコマンドにのみ適用され、最も高い優先度を持ちます。ALIBABA_CLOUD_PROFILE環境変数:現在のターミナルセッションのすべてのコマンドに適用されます。アクティブなプロファイル:
aliyun configure listコマンドの出力で*が付いているプロファイル。この設定は永続的です。
コマンドの結果が期待と異なる場合は、--profile パラメーターまたは ALIBABA_CLOUD_PROFILE 環境変数が設定されているかどうかを確認してください。これらはアクティブなプロファイルを上書きします。echo $ALIBABA_CLOUD_PROFILE を実行して、環境変数が設定されているか確認できます。
エラー:load current configuration failed unknown profile default
完全なエラーメッセージ:
ERROR: load current configuration failed unknown profile default, run configure to check原因:
すべての認証情報プロファイルが削除されたため、Alibaba Cloud CLI が正しく動作しなくなった状態です。
解決策:
config.json ファイルを手動で削除し、aliyun configure コマンドを実行して認証情報を再設定してください。ファイルの場所については、「設定ファイルの場所」をご参照ください。たとえば、Linux または macOS では、次のコマンドを実行してファイルを削除します:
rm ~/.aliyun/config.json