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

Resource Access Management:STS SDK for Python の呼び出し例

最終更新日:Mar 06, 2026

このトピックでは、Security Token Service (STS) SDK for Python を使用して AssumeRole 操作を呼び出し、Resource Access Management (RAM) ロールを引き受ける方法について説明します。

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

RAM ロールを偽装するには、AssumeRole 操作を呼び出します。詳細については、「機能別の操作一覧」をご参照ください。この操作の呼び出しに必要な情報と権限の詳細については、「AssumeRole」をご参照ください。リクエストパラメーターや権限などの情報は、API リファレンスで取得できます。

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

アイデンティティ

この操作は、RAM ユーザーまたは RAM ロールを使用して呼び出すことができますが、Alibaba Cloud アカウントでは呼び出せません。各エンティティの違いについては、「エンティティ」をご参照ください。

本例では、RAM ユーザーを使用してこの操作を呼び出します。

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

認証情報

RAM ユーザーの詳細ページに移動します。[認証] タブの [AccessKey] セクションで、[AccessKey の作成] をクリックして AccessKey ペアを作成します。詳細については、「AccessKey ペアを作成する」をご参照ください。

重要

RAM ユーザーの AccessKey Secret は、ユーザー作成時にのみ表示されます。作成後に再度表示することはできません。AccessKey Secret を必ず記録し、機密情報を厳重に管理してください。

権限付与

  1. ユーザー ページで、管理対象の RAM ユーザーを検索し、権限の追加 をクリックします(操作 列)。

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

    AliyunSTSAssumeRoleAccess:STS の AssumeRole 操作を呼び出すために必要な権限を付与します。

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

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

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

  • 現在の Alibaba Cloud アカウント:ご自身の Alibaba Cloud アカウントに属する RAM ユーザーがこの RAM ロールを引き受ける場合、現在の Alibaba Cloud アカウント を選択します。

  • その他の Alibaba Cloud アカウント:別の Alibaba Cloud アカウントに属する RAM ユーザーがこの RAM ロールを引き受ける場合、その他の Alibaba Cloud アカウント を選択し、該当する Alibaba Cloud アカウント ID を入力します。このオプションは、異なる Alibaba Cloud アカウント間での権限付与を目的として提供されています。

本例では、ステップ 2 で作成した RAM ユーザーを使用して RAM ロールを引き受ける必要があります。そのため、信頼される Alibaba Cloud アカウントには、ステップ 2 で作成した RAM ユーザーが属する Alibaba Cloud アカウント ID を設定する必要があります。詳細については、「信頼される Alibaba Cloud アカウント向け RAM ロールの作成」をご参照ください。

また、RAM ロールにアタッチされた信頼ポリシーを編集することで、引き受け可能な RAM ユーザーを変更することもできます。詳細については、「RAM ロールの信頼ポリシーの編集」をご参照ください。

ステップ 4:操作の呼び出し

本トピックでは、STS SDK for Python を使用してこの操作を呼び出します。他のプログラミング言語の SDK を使用する場合も、同様の手順で呼び出せます。詳細については、「STS SDK」をご参照ください。ビジネス要件に応じて、その他の方法で操作を呼び出すことも可能です。詳細については、「概要」をご参照ください。

Python 環境の準備

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

Python 3 のインストール後、ターミナルで python --version コマンドを実行して、Python 3 のバージョンを確認します。

環境変数の設定

本例では、環境変数を設定して AccessKey ペアを管理し、ビジネスコードへの AccessKey ペアのハードコーディングによるセキュリティリスクを回避します。詳細については、「Linux、macOS、Windows における環境変数の設定」をご参照ください。

依存関係のインストール

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

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

  1. OpenAPI Explorer で、ステップ 2 で作成した RAM ユーザーを使用して、AssumeRole 操作を呼び出します。

  2. リクエストパラメーターを入力し、呼び出し開始 をクリックしてデバッグが成功するか確認します。

    リクエストパラメーターの RoleArn には、ステップ 3 で作成した RAM ロールの Alibaba Cloud リソース名 (ARN) を設定します。RAM ロールの ARN の確認方法については、「RAM ロールの ARN の確認方法」をご参照ください。

  3. SDK サンプルコード タブの Python タブで、プロジェクトのダウンロード をクリックして、CloudSSO SDK for 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"
	}
}