ブラウザー経由で一度サインインすることで、Alibaba Cloud CLI はクラウドサービス API を呼び出すための一時的な認証情報を取得できます。CLI はトークンを自動的に更新およびローテーションするため、長期間有効な AccessKey ペアをローカルに保存したり管理したりする必要はありません。これは、ローカル開発環境で推奨される認証方法です。このトピックでは、前提条件、設定ワークフロー、認証情報の検証、およびトークンのライフサイクル管理の仕組みについて説明します。
前提条件
環境要件
-
Alibaba Cloud CLI は、バージョン
3.3.0以降である必要があります。aliyun versionを実行して、インストールされているバージョンを確認してください。お使いのバージョンが3.3.0より古い場合は、「CLI をインストールまたは更新する」を参照して、続行する前にアップグレードしてください。 -
コンソールにサインインできるアカウント:Alibaba Cloud アカウント (ルートアカウント)、RAM ユーザー、または SSO (シングルサインオン) 経由のエンタープライズユーザー。RAM ユーザーを使用している場合は、コンソールへのログオンが有効になっていることを確認してください。詳細については、「コンソールログオンの有効化」をご参照ください。
-
グラフィカルブラウザーを備えたローカル環境。ターミナルのみの環境 (X11 フォワーディングのないリモート SSH セッションなど) は、OAuth 認証情報の設定をサポートしていません。
管理者によるセットアップ (1 回のみ)
組織内のユーザーが OAuth 認証情報を使用する前に、RAM 管理者が次のセットアップを完了する必要があります。この初回セットアップの後、新しいユーザーを追加するには手順 2 のみが必要です。
-
CLI アプリケーションのインストール (初回のみ):RAM コンソールにサインインします。 左側のナビゲーションペインで、を選択します。 サードパーティアプリケーション タブに切り替えます。
official-cliアプリケーションが表示されていない場合は、公式アプリをインストール をクリックして OfficialCLITool を選択します。 -
ID の割り当て:
official-cliアプリケーションの詳細ページを開き、割り当て タブに切り替えます。割り当てを作成 をクリックして、Alibaba Cloud CLI を使用する必要がある RAM ユーザーまたはロールを追加します。
詳細な手順については、「CLI アプリケーションのインストール」および 「アイデンティティの割り当て」をご参照ください。
認証情報の設定
OAuth 認証情報は、ブラウザーベースのサインインフローを起動する対話型コマンド aliyun configure --mode OAuth を使用して設定する必要があります。aliyun configure set コマンドはパラメーターを書き込むだけで、サインインプロセスは開始されません。
-
次のコマンドを実行します。
<ProfileName>を任意の名前 (例:OAuthProfile) に置き換えます:aliyun configure --mode OAuth --profile <ProfileName> -
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):-
中国サイト (aliyun.com) には
0またはCNを入力します。 -
国際サイト (alibabacloud.com) には、
1またはINTLを入力します。 -
Enter キーを押すと、デフォルト (CN) が選択されます。
-
-
ブラウザーでサインインを完了します。ブラウザーウィンドウが自動的に開きます。RAM ユーザーの認証情報でサインインします。ブラウザーが開かない場合は、ターミナルから [SignIn URL] をコピーし、手動でブラウザーに貼り付けます。
Please open the following URL in your browser to authorize: https://signin.aliyun.com/oauth2/v1/auth?... -
アプリケーションを承認します。ブラウザの承認ページで、[承認] をクリックします。承認に成功すると、ブラウザに
承認に成功しました。このウィンドウは閉じてかまいません。と表示されます。 -
デフォルトのリージョンと言語を設定します。
Default Region Id []: cn-shanghai Default Language [zh|en] en: en利用可能なリージョンについては、「リージョンとエンドポイント」をご参照ください。一部のサービスはリージョン間のアクセスをサポートしていません。デフォルトリージョンは、リソースが存在するリージョンに設定してください。
-
ターミナルに
Configure Doneとウェルカムメッセージが表示されたら、設定は完了です。
設定が成功すると、新しいプロファイルが自動的にアクティブなプロファイルになります。別のプロファイルに切り替えるには、aliyun configure switch --profile <ProfileName> を実行します。
トークンのライフサイクル
OAuth 認証情報は 3 つのトークンレイヤーで構成されています。CLI が自動的に更新を管理するため、通常の使用中に手動で介入する必要はありません。
-
Security Token Service (STS) トークン — API コール用の一時的な認証情報
-
OAuth アクセストークン — STS トークンを取得するための短期間有効なトークン
-
OAuth リフレッシュトークン — アクセストークンを更新するための長期間有効なトークン
トークンが正常に更新されるたびに、古いトークンは無効になります。設定ファイル (~/.aliyun/config.json) は自動的に更新されます。
認証情報の削除
特定の OAuth プロファイルを削除するには、次のコマンドを実行します。
aliyun configure delete --profile <ProfileName>
これにより、以下が削除されます。
-
~/.aliyun/config.jsonのプロファイルエントリとともに、ローカルに保存されているそのプロファイル用のすべての OAuth トークンおよび STS トークン。 -
これは RAM コンソールの OAuth アプリケーションの認可には影響しません。RAM 管理者による操作は必要ありません。
よくある質問
認可中にブラウザーが開かない
CLI はサインイン URL をターミナルに出力します。手動でコピーして開いてください。ページが読み込まれない場合は、以下を確認してください。
-
ローカルポート 12345~12349 が利用可能かどうか (CLI は認可コールバックのためにこれらのポートのいずれかをリッスンします)。
-
signin.aliyun.com(中国サイト) またはsignin.alibabacloud.com(国際サイト) へのネットワーク接続。
エラー:「The API call is not authorized」/「You are not allowed to do this action.」
管理者が、CLI アプリケーションのインストールまたはアイデンティティの割り当てを行っていません。RAM 管理者に、「前提条件」セクションに記載の管理者によるセットアップを完了するよう依頼してください。
既存のプロファイルを削除せずに AccessKey から OAuth に切り替えることはできますか?
はい。新しい OAuth プロファイルを作成しても、既存のプロファイルは保持されます。いつでも aliyun configure switch --profile <profile-name> を使用して、これらのプロファイルを切り替えることができます。
OAuth は RAM ロールのサインインをサポートしていますか?
はい。次のいずれかのアプローチを使用します。
-
ID プロバイダー (IdP) からのロールベースの SSO を介してサインインします。そのためには、ロール SSO が設定されている必要があります。
-
まず RAM ユーザーとしてサインインし、次にコンソールでターゲットの RAM ロールに アイデンティティを切り替えます。
ブラウザーの承認ステップ中に CLI が現在のアイデンティティを RAM ロールとして検出するように、aliyun configure --mode OAuth を実行する 前に これらの手順を実行します。