すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:STS SDK for Python を使用して RAM ロールを偽装する

最終更新日:Jun 04, 2026

Python SDK を使用して Security Token Service (STS) の AssumeRole 操作を呼び出し、RAM ロールを偽装するための一時的な認証情報を取得します。

ステップ1:API ドキュメントの確認

API の概要を確認し、AssumeRole 操作を見つけます。リクエストパラメーターと必要な権限を確認します。

ステップ2:RAM ユーザーの作成と権限付与

アイデンティティ

この API は、RAM ユーザーまたは RAM ロールとして呼び出す必要があります。Alibaba Cloud アカウント (プライマリアカウント) はサポートされていません。詳細については、ID タイプをご参照ください。

この例では、RAM ユーザーを使用します。

RAM コンソールにログインして RAM ユーザーを作成します。詳細については、RAM ユーザーの作成をご参照ください。

認証情報

対象のRAM ユーザーの詳細ページに移動します。認証管理 タブの ユーザー AccessKey セクションで、AccessKey の作成 をクリックします。AccessKey を作成する

重要

RAM ユーザーの AccessKey Secret は作成時に一度しか表示されず、後から取得することはできません。安全な場所に保管してください。

権限

  1. RAM コンソールのユーザーページで、目的の RAM ユーザーを見つけ、権限の追加 列の 操作 をクリックします。

  2. 検索ボックスに sts と入力し、AliyunSTSAssumeRoleAccess システムポリシーを選択します。

    このポリシーは、STS の AssumeRole 操作を呼び出す権限を付与します。

  3. Grant permissions をクリックして、権限付与を完了します。

ステップ3:RAM ロールの作成

RAM コンソールにログインし、信頼できるエンティティとして Alibaba Cloud アカウントを指定して RAM ロールを作成します。現在のアカウントまたは別のアカウントを選択します。

  • 現在のアカウント: 現在の Alibaba Cloud アカウント内の RAM ユーザーにこのロールの偽装を許可するには、現在のアカウント を選択します。

  • 他のアカウント: 別の Alibaba Cloud アカウントの RAM ユーザーがこのロールを偽装できるようにするには、他のアカウント を選択し、他のアカウント ID を入力します。クロスアカウントアクセスシナリオで使用します。

ステップ2 の RAM ユーザーがこのロールを偽装するため、信頼できるエンティティを ステップ2 の RAM ユーザーが所属する Alibaba Cloud アカウントの ID に設定します。詳細については、信頼できるエンティティが Alibaba Cloud アカウントである RAM ロールの作成をご参照ください。

また、RAM ロールの信頼ポリシーの変更により、どの RAM ユーザーがロールを偽装できるかを変更することもできます。

ステップ4:API 呼び出しの実行

この例では Python SDK を使用します。他の言語の SDK も利用可能です:STS SDK。他の 呼び出しメソッドを使用することもできます。

Python 環境のセットアップ

Python 3 をダウンロードしてインストールします。

python --version を実行してインストールを確認します。

環境変数の設定

この例では、AccessKey ペアをハードコーディングする代わりに環境変数に保存します。詳細については、Linux、macOS、Windows で環境変数を設定するをご参照ください。

依存関係のインストール

pip install alibabacloud_credentials
pip install alibabacloud_sts20150401==1.1.3
pip install alibabacloud_tea_console

サンプルコードのダウンロード

  1. OpenAPI Portal で、ステップ2 の RAM ユーザーとしてログインし、AssumeRole のデバッグ URLを開きます。

  2. リクエストパラメーターを入力し、[呼び出しを開始] をクリックします。

    RoleArn には、ステップ3 で作成した RAM ロールの ARN を入力します。詳細については、RAM ロールの ARN を表示する方法をご参照ください。

  3. [SDK サンプル] タブで、[Python] タブを選択し、[プロジェクトのダウンロード] をクリックします。

  4. パッケージを解凍し、alibabacloud_sample ディレクトリに移動します。

サンプルコードの実行

次のコマンドを実行します。

python sample.py

出力例:

	"headers": {
		"date": "Thu, 17 Aug 2023 10:17:04 GMT",
		"content-type": "application/json;charset=utf-8",
		"content-length": "846",
		"connection": "keep-alive",
		"keep-alive": "timeout=25",
		"access-control-allow-origin": "*",
		"access-control-expose-headers": "*",
		"x-acs-request-id": "79E360B6-FAC5-5B18-8081-BC0F8E90A238",
		"x-acs-trace-id": "b2fb071a47e03e6d6cd507fd05438021",
		"etag": "8bZ4pA7U/ulImlQiwhQnxXw6"
	},
	"statusCode": 200,
	"body": {
		"AssumedRoleUser": {
			"Arn": "acs:ram::151266687691****:role/test-role/test",
			"AssumedRoleId": "30081280744271****:test"
		},
		"Credentials": {
			"AccessKeyId": "STS.NTdbdgE5zgL2qcb5pAify****",
			"AccessKeySecret": "Fyk6ab1xfCFn88hXFxzV44QnF6cDi9T2PiTJgsqU****",
			"Expiration": "2023-08-17T11:17:04Z",
			"SecurityToken": "CAIS7AF1q6Ft5B2yfSjIr5fRKd7TqOpb0ISgUnocHLFUE6eDM****"
		},
		"RequestId": "79E360B6-FAC5-5B18-8081-BC0F8E90A238"
	}
}