このトピックでは、OAuth を使用して Alibaba Cloud CLI にログインするための設定方法と使用方法について説明します。この認証方式は、従来の AccessKey ペア認証に代わるものであり、認証情報のセキュリティを向上させます。
概要
Alibaba Cloud CLI バージョン 3.0.299 以降では、認証情報タイプとして OAuth をサポートしています。この認証方式は、OAuth 2.0 Proof Key for Code Exchange (PKCE) フローに基づいたブラウザログインを使用し、ユーザーの ID を表すトークンを取得して Alibaba Cloud リソースにアクセスします。
OAuth 認証は、従来の AccessKey ペア認証に比べて次の利点があります:
セキュリティの向上:ローカルの設定ファイルにプレーンテキストの AccessKey ペアを保存する必要がなくなり、認証情報の漏洩リスクを低減します。
既存の認証システムとの統合:パスキー、多要素認証 (MFA)、シングルサインオン (SSO) (ユーザーベース SSO およびロールベース SSO を含む) などのログイン方法と連携します。
前提条件
開始する前に、次の要件が満たされていることを確認してください:
CLI バージョン:Alibaba Cloud CLI バージョン
3.0.299以降がインストールされている必要があります。管理者権限:初期設定には、
AliyunRAMFullAccessポリシーがアタッチされた RAM 管理者が必要です。環境要件:Alibaba Cloud CLI を実行するデバイスには、グラフィカルユーザーインターフェイス (GUI) と Web ブラウザーが必要です。この認証方式は、ログインフローを完了するためにブラウザを必要とするため、Secure Shell (SSH) 経由でアクセスするリモート Linux サーバーなどのヘッドレス環境では機能しません。
操作手順
次の 2 つの方法のいずれかを使用して、ご利用の Alibaba Cloud アカウントの Resource Access Management (RAM) でCLI アプリケーションを作成します。
Alibaba Cloud CLI の使用:RAM 管理者が CLI から最初の OAuth ログインを開始します。ブラウザで認証と同意を完了すると、システムは自動的に
official-cliという名前の公式 OAuth アプリケーションを作成します。RAM コンソールの使用:RAM 管理者が RAM コンソールで
official-cli アプリケーションを手動でインストールします。この方法を使用する場合、AdminConsent 操作を呼び出す必要はありません。
RAM ID の割り当て。CLI アプリケーションが作成された後、RAM 管理者は RAM ユーザーや RAM ロールなどの ID をアプリケーションに割り当てる必要があります。割り当てられた ID のみがこの方法を使用して CLI にログインできます。
CLI への権限付与とログイン。割り当てられた RAM ユーザーが、自身のデバイスで CLI の設定コマンドを実行します。CLI は自動的にブラウザを開きます。ユーザーがブラウザでログインして権限を付与すると、CLI はトークンを取得して認証を完了できます。
ステップ 1: CLI アプリケーションの作成
このステップは、AliyunRAMFullAccess ポリシーがアタッチされた RAM 管理者が実行する必要があります。
Alibaba Cloud CLI の使用
ターミナルから次のコマンドを実行して、OAuth 設定を開始します。
OAuthProfileのように、わかりやすいプロファイル名を使用します。aliyun configure --profile OAuthProfile --mode OAuthプロンプトが表示されたら、アカウントのログインサイト (
OAuth Site Type) を選択します。aliyun configure --profile OAuthProfile --mode OAuth Configuring profile 'OAuthProfile' in 'OAuth' authenticate mode... OAuth Site Type (CN: 0 or INTL: 1, default: CN):Alibaba Cloud 中国サイト (aliyun.com) の場合は、
0またはCNを入力します。Alibaba Cloud 国際サイト (alibabacloud.com) の場合は、
1またはINTLを入力します。Enter キーを押すと、デフォルトで中国サイト (aliyun.com) (CN) が選択されます。
CLI はデフォルトの Web ブラウザーを開こうとします。開かない場合は、ターミナルから SignIn url をコピーしてブラウザに貼り付けます。
プロンプトの例:
If the browser does not open automatically, use the following URL to complete the login process: SignIn url: https://signin.aliyun.com/oauth2/v1/auth?response_type=code&client_id=...ブラウザで、RAM 管理者アカウントを使用してログインします。
[公式アプリケーションの権限付与] ページで、[承認] をクリックします。この操作により、管理者の同意が付与され、アカウントの RAM コンソールに
official-cliアプリケーションが作成されます。
重要管理者の同意は、アプリケーションをインストールするための 1 回限りの操作です。RAM から
official-cliアプリケーションが削除されない限り、再度要求されることはありません。権限付与プロセス中に、CLI は次の OAuth スコープをリクエストします。スコープは、アプリケーションがユーザーに代わって実行できる権限を定義します。
OAuth スコープ
説明
openidRAM ユーザーの OpenID を取得します。OpenID はユーザーを一意に識別する文字列ですが、ユーザーの UID や名前などの機密情報は含まれません。
/internal/ram/userstsAlibaba Cloud サービスの API を呼び出すための STS トークンを取得します。
説明このスコープは、公式 CLI アプリケーションのみが使用できます。
RAM コンソールの使用
(国際サイト) にログインします。
左側のナビゲーションペインで、 を選択します。
[サードパーティアプリケーション] タブで、[公式アプリケーションのプロビジョニング] をクリックします。
[公式アプリケーションのプロビジョニング] ダイアログボックスで、[公式 CLI] を選択し、[OK] をクリックします。

[サードパーティアプリケーション] タブで、
official-cliアプリケーションがサードパーティアプリケーションのリストに表示されていることを確認します。
ステップ 2:アプリケーションへの RAM ID の割り当て
アプリケーションを作成した後、CLI 認証に使用できる RAM ユーザーまたは RAM ロールを指定する必要があります。Alibaba Cloud CLI を使用して CLI アプリケーションを作成した場合、権限付与が成功するとすぐに ID を割り当てるよう求められます。RAM コンソールでアプリケーションをインストールした場合は、以下のステップ 1 をスキップしてください。
official-cliアプリケーションの詳細ページに移動します。方法 1 を完了したばかりの場合、ブラウザに成功ページが表示され、[今すぐ移動] ボタンをクリックするとそのページに移動できます。

別の方法として、RAM コンソールにログインし、 を選択します。[サードパーティ製アプリケーション] タブで、
official-cliアプリケーションをクリックします。
[割り当て] タブをクリックし、[割り当ての作成] をクリックします。
[割り当ての作成] パネルで、CLI アクセスを付与する RAM アイデンティティ (RAM ユーザーまたは RAM ロール) を選択し、[OK] をクリックします。
説明割り当てることができるのは RAM ユーザーと RAM ロールのみです。ユーザーグループの割り当てはサポートされていません。
ステップ 3:CLI の権限付与とログイン
管理者によって official-cli アプリケーションに割り当てられたユーザーは、次の手順に従ってローカル CLI を構成できます。
次のコマンドを実行して、構成プロセスを開始します。
aliyun configure --profile OAuthProfile --mode OAuthプロンプトが表示されたら、アカウントに対応するログインサイト (
CNまたはINTL) を選択します。デフォルトの Web ブラウザーで Alibaba Cloud のログインページが開きます。割り当てられた RAM ユーザー ID でログインします。
この方法で初めてログインする場合、CLI に権限を付与するように求められます。 [ユーザー権限付与] ページで、 [権限付与] をクリックします。
重要ユーザーによる権限付与は、初回ログイン時にのみ必要な操作であり、
official-cliアプリケーションが RAM から削除されない限り、以降のログインでは不要です。このメソッドを使用して、RAM ロールとして認証することもできます。
aliyun configureを実行する前に、まずブラウザセッションでロールを偽装します。これを行うには、2 つの方法があります。シングルサインオン (SSO):ID プロバイダー (IdP) 経由でロールベース SSO を使用して Alibaba Cloud コンソールにログインします。
コンソールでのロールの切り替え:RAM ユーザーとしてコンソールにログインし、ターゲット RAM ロールに切り替えます。
ブラウザでロールを偽装したら、ターミナルで
aliyun configure --profile OAuthProfile --mode OAuthを実行します。 CLI はアクティブなロールセッションを使用して認証を完了します。説明管理者による同意とユーザーによる権限付与は、それぞれ異なる必須のステップです。
管理者による同意:管理者がアカウントに
official-cliアプリケーションをインストールするために行う 1 回限りの操作です。ユーザーによる権限付与:各ユーザーが CLI に代理での操作を許可するために行う 1 回限りの操作です。
デフォルトリージョンの設定。権限付与が成功すると、デフォルトリージョンを設定するように求められます。
Default Region Id []: cn-hangzhou説明一部のクラウドサービスは、リージョン間のアクセスをサポートしていません。ご利用のリソースがあるリージョンを指定することを推奨します。
ターミナルに
Configure Doneとウェルカムメッセージが表示され、構成が成功したことを示します。(任意) ID の確認。正しい ID でログインしていることを確認するには、次のコマンドを実行します。
aliyun sts GetCallerIdentity --profile OAuthProfile
トラブルシューティング
管理者同意時の「You are not allowed to do this action」エラー

原因:ブラウザでログインしているユーザーに、必要な AliyunRAMFullAccess ポリシーが付与されていません。管理者同意は、RAM 管理者のみが付与できます。
解決策:ブラウザで Alibaba Cloud からログアウトします。`aliyun configure` プロセスを再起動し、ブラウザが開いたら、AliyunRAMFullAccess ポリシーが付与されている RAM ユーザーでログインしてください。ご自身が RAM 管理者でない場合は、管理者に連絡して操作を依頼してください。