Alibaba Cloud CLI は、API をベースに開発された汎用コマンドラインツールです。Alibaba Cloud CLI を使用すると、Security Token Service (STS) の自動管理とメンテナンスを実行できます。このトピックでは、Alibaba Cloud CLI を使用して STS の API 呼び出しを行う方法について説明します。この例では、STS の AssumeRole オペレーションを呼び出して、一時的な認証情報を取得します。
事前準備
このトピックを読む前に、以下の概念を理解しておく必要があります。
ステップ 1: Alibaba Cloud CLI のインストール
Alibaba Cloud CLI を使用する前に、Alibaba Cloud CLI をインストールする必要があります。Alibaba Cloud CLI は、Windows、Linux、macOS をサポートしています。Alibaba Cloud CLI をインストールする際は、ご利用のデバイスのオペレーティングシステムに基づいてインストールパッケージを選択してください。
また、Alibaba Cloud Cloud Shell を使用して、Alibaba Cloud CLI で実行するコマンドをデバッグすることもできます。Cloud Shell の詳細については、「Cloud Shell とは」をご参照ください。
ステップ 2: Alibaba Cloud CLI の構成
AssumeRole オペレーションは、Resource Access Management (RAM) ユーザーまたは RAM ロールとしてのみ呼び出すことができます。Alibaba Cloud アカウントを使用してこのオペレーションを呼び出すことはできません。この例では、RAM ユーザーを使用してオペレーションを呼び出します。
Alibaba Cloud CLI を使用する前に、Alibaba Cloud CLI で認証情報とリージョン ID を指定する必要があります。Alibaba Cloud CLI は、さまざまな種類の認証情報をサポートしています。詳細については、「プロファイルの構成」トピックの「認証情報の種類」セクションをご参照ください。この例では、AccessKey ペアを認証情報として使用します。
RAM ユーザーを作成し、その RAM ユーザーの AccessKey ペアを作成します。詳細については、「RAM ユーザーの作成」と「AccessKey ペアの作成」をご参照ください。
必要な権限を RAM ユーザーに付与します。この例では、
AliyunSTSAssumeRoleAccessポリシーが RAM ユーザーにアタッチされます。このポリシーは、STS のAssumeRoleオペレーションを呼び出す権限を付与します。詳細については、「RAM ユーザーへの権限付与」をご参照ください。ご利用のリージョン ID を取得します。Alibaba Cloud CLI は、指定したリージョン ID を使用して API 呼び出しを開始します。詳細については、「エンドポイント」をご参照ください。
説明Alibaba Cloud CLI を使用する際、
--regionオプションを使用して、特定のリージョンでコマンドを実行できます。このオプションを使用すると、Alibaba Cloud CLI は、デフォルトの認証情報設定と環境変数内のリージョン情報を無視します。詳細については、「コマンドラインオプション」をご参照ください。RAM ユーザーの AccessKey ペアを使用して、
AkProfile構成ファイルに認証情報を構成します。詳細については、「プロファイルの構成」トピックの「構成例」セクションをご参照ください。
ステップ 3: RAM ロールの作成
RoleArn パラメーターは、RAM ロールの Alibaba Cloud Resource Name (ARN) を示し、AssumeRole オペレーションを呼び出すために必要です。このパラメーターの値を取得するには、信頼できる Alibaba Cloud の RAM ロールを作成する必要があります。
この例では、「ステップ 2: Alibaba Cloud CLI の構成」で作成した RAM ユーザーを使用して RAM ロールを偽装する必要があります。したがって、信頼できる Alibaba Cloud アカウントを、「ステップ 2: Alibaba Cloud CLI の構成」で作成した RAM ユーザーが属する Alibaba Cloud アカウントの ID に設定する必要があります。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。
また、RAM ロールにアタッチされている信頼ポリシーを変更して、RAM ロールを偽装できる RAM ユーザーを変更することもできます。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。
ステップ 4: CLI コマンドの生成
OpenAPI Explorer で、AssumeRole オペレーションを呼び出します。
[パラメーター] タブで、リクエストパラメーターを設定します。次に、[CLI の例] タブをクリックして、生成されたサンプルコマンドを表示します。
Cloud Shell で CLI コマンドを実行するか、CLI コマンドをコピーします。
アイコンをクリックして Cloud Shell を起動し、Cloud Shell で CLI コマンドをデバッグします。
アイコンをクリックして CLI コマンドをクリップボードにコピーします。CLI コマンドをローカルシェルに貼り付けて、コマンドを実行することもできます。 説明デバッグのために CLI コマンドをローカルシェルに貼り付ける際は、パラメーター形式に注意してください。Alibaba Cloud CLI で必要なパラメーター形式の詳細については、「パラメーター形式」をご参照ください。
デフォルトでは、OpenAPI Explorer は生成された CLI コマンドに
--regionオプションを追加します。コマンドをローカルシェルにコピーすると、Alibaba Cloud CLI はデフォルトの認証情報設定と環境変数内のリージョン情報を無視し、オプションで指定されたリージョンでコマンドを優先的に実行します。ビジネス要件に基づいて、このオプションを削除または保持できます。

ステップ 5: STS の API 呼び出し
例 1: Alibaba Cloud CLI を使用して呼び出し可能な STS API オペレーションのクエリ
次のコードは、--help オプションを使用して、Alibaba Cloud CLI で呼び出し可能な STS API オペレーションをクエリする方法の例を示しています。サポートされている API オペレーションは、「機能別オペレーションリスト」でも確認できます。
次のコマンドを実行します。
aliyun sts --helpコマンド出力を表示します。

例 2: 偽装する RAM ロールの一時的な認証情報の取得
次のコードは、Alibaba Cloud CLI を使用して STS の AssumeRole オペレーションを呼び出す方法の例を示しています。このオペレーションは、偽装する RAM ロールの一時的な認証情報を取得するために呼び出されます。
次のコマンドを実行します。
説明コマンドパラメーターに関するヘルプ情報を取得するには、次のいずれかの方法を使用できます。
aliyun sts AssumeRole --helpコマンドを実行して、コマンドパラメーターに関する提案を取得します。AssumeRole トピックを読んで、パラメーターの詳細を表示します。
aliyun sts AssumeRole \ --DurationSeconds 3600 \ --Policy '{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}' \ --RoleSessionName alice \ --RoleArn 'acs:ram::123456789012****:role/adminrole' \ --ExternalId abcd1234期待されるコマンド出力を表示します。出力の
SecurityTokenパラメーターは、クエリする一時的な認証情報を示します。{ "RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F", "AssumedRoleUser": { "AssumedRoleId": "34458433936495****:alice", "Arn": "acs:ram::123456789012****:role/adminrole/alice" }, "Credentials": { "SecurityToken": "********", "Expiration": "2015-04-09T11:52:19Z", "AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****", "AccessKeyId": "STS.L4aBSCSJVMuKg5U1****" } }説明STS の API 呼び出し後にエラーメッセージが返された場合は、返されたエラーコードに基づいて、リクエストパラメーターとリクエストパラメーターの値が有効であるかどうかを確認する必要があります。
また、返されたリクエスト ID または SDK エラー情報に基づいて、OpenAPI Troubleshoot ページで診断を実行することもできます。