このトピックでは、Alibaba Cloud CLI の OAuth ベースの対話型ログインを設定して使用する方法について説明します。このメソッドは、従来の AccessKey ペア認証を置き換え、認証情報のセキュリティを向上させます。
概要
バージョン v3.0.299 以降、クラウドアシスタント CLI は認証情報タイプとして OAuth をサポートしています。このメソッドは、OAuth 2.0 Proof Key for Code Exchange (PKCE) フロー に基づく対話型ブラウザログインフローを使用して、Alibaba Cloud リソースにアクセスするためのユーザーの ID を表すトークンを取得します。
OAuth 認証には、従来の AccessKey ペア認証に比べて次の利点があります。
セキュリティの向上: ローカル設定ファイルにプレーンテキストの AccessKey ペアを保存する必要がなくなります。これにより、認証情報の漏洩リスクが軽減されます。
既存の認証システムとの統合: パスキー、多要素認証 (MFA)、ユーザーベース SSO やロールベース SSO などのシングルサインオン (SSO) といったログインメソッドと連携します。
前提条件
開始する前に、次の要件が満たされていることを確認してください。
CLI バージョン: クラウドアシスタント CLI のバージョンが
v3.0.299以降であること。管理者権限: 初期設定を実行するために使用する管理者アカウントに
AliyunRAMFullAccess権限が付与されていること。環境要件: Alibaba Cloud CLI と権限付与に使用するブラウザが同じデバイスで実行されていること。Secure Shell (SSH) を介して接続された Linux サーバーなど、グラフィカルユーザーインターフェイスのない環境では権限付与はサポートされていません。
設定フロー
管理者が CLI アプリケーションを作成する。Alibaba Cloud アカウントの Resource Access Management (RAM) で、次の 2 つの方法のいずれかを使用して CLI アプリケーションを作成できます。
管理者による権限付与による自動作成: CLI で最初の OAuth ログインを開始し、ブラウザで認証と管理者による権限付与を完了できます。プロセスが完了すると、システムは
official-cliという名前の公式 OAuth アプリケーションを自動的に作成します。コンソールからの手動インストール: RAM 管理者がコンソールから
official-cliアプリケーションを手動でインストールします。これにより、管理者による権限付与のステップが不要になります。
管理者が ID を割り当てる。CLI アプリケーションが作成された後、管理者は RAM ユーザーや RAM ロールなどの ID をアプリケーションに割り当てる必要があります。割り当てられた ID のみがこのメソッドを使用して CLI にログインできます。
ユーザーが権限を付与して CLI にログインする。割り当てられた RAM ユーザーは、自身のデバイスで CLI 設定コマンドを実行します。CLI は自動的にブラウザを開きます。ユーザーがブラウザでログインして権限を付与すると、CLI はトークンを取得して認証を完了できます。
ステップ 1: 管理者が CLI アプリケーションを作成する
このステップは、組織全体のためのアプリケーションを作成するために、AliyunRAMFullAccess 権限を持つ RAM 管理者が実行する必要があります。
管理者による権限付与による作成
OAuth 認証モードを選択する。ターミナルから次のコマンドを実行して、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):0またはCNを入力して、ログインサイトを Alibaba Cloud 中国サイトに設定します。1またはINTLを入力して、ログインサイトを Alibaba Cloud 国際サイトに設定します。Enter キーを押すと、デフォルトのサイトである Alibaba Cloud China Website (www.aliyun.com) (CN) が使用されます。
管理者としてログインする。CLI は自動的にブラウザを開きます。ブラウザウィンドウが開かない場合は、CLI プロンプトから [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=...AdminConsent 操作を実行します。ブラウザで開く [公式アプリケーションの権限付与] ページで、[権限付与] をクリックします。この操作により、表示名が
official-cliの OAuth サードパーティアプリケーションがアカウントに作成されます。official-cliアプリケーションが削除されない限り、AdminConsent 操作は一度だけ実行すれば十分です。
権限付与プロセス中に、CLI は次の OAuth スコープをリクエストします。OAuth サービスはこれらのスコープを使用して、アプリケーションがユーザーとして Alibaba Cloud にログインした後にアクセスできるものを制限します。
OAuth スコープ
説明
openidRAM ユーザーの OpenID を取得します。OpenID はユーザーを識別する一意の文字列であり、Alibaba Cloud UID やユーザー名などの機密情報は含まれません。
/internal/ram/userstsセキュリティトークンサービス (STS) 認証情報を取得して Alibaba Cloud サービス API を呼び出すために使用されます。
説明このスコープは、公式 CLI アプリケーションでのみ使用できます。
コンソールからインストールする
(中国アカウント用) または RAM コンソール (国際アカウント用) にログインします。
ナビゲーションウィンドウで、 を選択します。次に、[サードパーティアプリケーション] タブをクリックします。
[サードパーティアプリケーション] タブで、[公式アプリケーションのインストール] をクリックします。
表示される [公式アプリケーションのインストール] ダイアログボックスで、[公式 CLI] を選択し、[OK] をクリックします。

[サードパーティアプリケーション] リストで、表示名が
official-cliのアプリケーションが作成されたことを確認します。
ステップ 2: 管理者が ID を割り当てる
CLI アプリケーションが作成された後、管理者はそれを使用することが許可されている ID を割り当てる必要があります。
[コンソールへ移動] をクリックします。Resource Access Management (RAM) コンソール のサードパーティ OAuth アプリケーションの詳細ページにリダイレクトされます。

または、RAM コンソールにログインし、 を選択し、[サードパーティアプリケーション] タブをクリックします。[サードパーティアプリケーション] リストで、表示名が
official-cliのアプリケーションを見つけてクリックします。コンソールの
official-cliアプリケーションの詳細ページで、[割り当て] タブをクリックし、次に [割り当ての作成] をクリックします。表示される [割り当ての作成] パネルで、OAuth を使用して CLI にログインすることを許可する RAM ID (RAM ユーザーまたは RAM ロール) を選択し、[OK] をクリックして割り当てを完了します。

ステップ 3: ユーザーが権限を付与して CLI にログインする
管理者によって official-cli アプリケーションに割り当てられた RAM ユーザーが、自身のデバイスでこのステップを実行します。
OAuth 認証モードを選択する。ターミナルで、次のコマンドを実行して OAuth ログイン情報の設定を開始します。
aliyun configure --profile OAuthProfile --mode OAuthログインサイトを選択する。プロンプトに従って、
CNまたはINTLのいずれかを選択します。ユーザーとしてログインする。自動的に開くブラウザウィンドウで、RAM ユーザー ID を使用してログインします。
ユーザー権限付与操作を実行します。ブラウザで開く [ユーザー権限付与] ページで、[権限付与] をクリックして権限付与を完了します。
official-cliアプリケーションが削除されない限り、ユーザー権限付与は最初のログイン時にのみ必要で、その後のログインでは不要です。
ロールベースのログイン: CLI の OAuth 認証メソッドは RAM ロールもサポートしています。ブラウザで、まずロールベース SSO を使用して ID プロバイダー (IdP) からコンソールにログインするか、コンソールにログインした後にID を対応する RAM ロールに切り替えます。次に、このプロシージャの最初のステップで説明されているように CLI 設定コマンドを実行して、OAuth ログインをトリガーします。これにより、RAM ロールとして CLI にログインできます。
説明管理者の同意とユーザー権限付与は目的が異なります。管理者が同意した場合でも、ユーザー権限付与は依然として必要です。
管理者による権限付与:
official-cliアプリケーションを Alibaba Cloud アカウントに追加し、アカウント内の ID が割り当てられた後にアプリケーションにアクセスできるようにします。ユーザー権限付与: Alibaba Cloud CLI が、許可された Alibaba Cloud リソースにアクセスしたり、ユーザーに代わって特定の操作を実行したりすることを承認します。
デフォルトリージョンを設定する。権限付与が成功したら、ターミナルに戻り、プロンプトが表示されたらデフォルトリージョンを入力します。
Default Region Id []: cn-hangzhou説明一部の Alibaba Cloud プロダクトは、リージョン間のアクセスをサポートしていません。デフォルトリージョンを、リソースが配置されているリージョンに設定してください。
ターミナルに
Configure Doneとウェルカムメッセージが表示され、設定が成功したことを示します。(オプション) ログイン ID を確認する。次のコマンドを実行して、現在の CLI セッションの ID 情報を表示します。
aliyun sts GetCallerIdentity --profile OAuthProfile
制限事項
official-cliアプリケーションをユーザーグループに割り当てることはできません。RAM ユーザーまたはロールに直接割り当てる必要があります。CLI とブラウザは同じデバイスで実行する必要があります。SSH を介して接続された Linux サーバーなど、グラフィカルユーザーインターフェイスのない環境では権限付与はサポートされていません。
トラブルシューティング
管理者の同意ページで [権限付与] をクリックした後に「unauthorized call」エラーが発生する

原因: ブラウザで現在ログインしているアカウントに AliyunRAMFullAccess 権限がなく、したがって RAM 管理者ではありません。
解決策: Alibaba Cloud 管理コンソールからログアウトし、AliyunRAMFullAccess 権限を持つ RAM 管理者アカウントを使用してログインし、再度権限付与を実行します。必要な権限がない場合は、管理者に連絡して操作を実行してもらってください。