このトピックでは、Resource Access Management (RAM) ロールと Security Token Service (STS) トークンに関するよくある質問 (FAQ) に回答します。
AssumeRole の呼び出し時に "You are not authorized..." エラーが表示される理由
AssumeRole API 操作を呼び出すと、次のエラーメッセージが表示されることがあります。
Error message: You are not authorized to do this action. You should be authorized by RAM.このエラーは、次の理由で発生する可能性があります。
Alibaba Cloud アカウントとして操作を呼び出している。
AssumeRole API 操作は、Alibaba Cloud アカウントでは呼び出せません。RAM ユーザーまたは RAM ロールとして呼び出す必要があります。
呼び出し元 ID にロールを偽装する権限がない。
必要な権限を付与するには、`AliyunSTSAssumeRoleAccess` ポリシーまたはカスタムポリシーを呼び出し元 ID (呼び出しを行う RAM ユーザーまたは RAM ロール) にアタッチします。カスタムポリシーには、`sts:AssumeRole` 操作に対する `Allow` の Effect を持つ Statement を含める必要があります。例については、「ポリシー例」をご参照ください。
ロールの信頼ポリシーに、プリンシパルとして呼び出し元 ID が含まれていない。
対象ロールの信頼ポリシーを更新して、呼び出し元 ID がそのロールを偽装できるようにします。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。
AssumeRole API 操作を呼び出せる ID
RAM ロールの一時的なセキュリティ認証情報を取得するために使用される AssumeRole API 操作は、RAM ユーザーまたは RAM ロールのみが呼び出すことができます。Alibaba Cloud アカウントでは呼び出せません。
RAM ロールの種類とそれを偽装できるプリンシパル
RAM は、プリンシパルに基づいて次の種類のロールを提供します。
信頼できるエンティティが Alibaba Cloud アカウントである RAM ロール:Alibaba Cloud アカウント内の RAM ユーザーまたは RAM ロールがこの種類のロールを偽装できます。この種類のロールを偽装する RAM ユーザーまたは RAM ロールは、所有者である Alibaba Cloud アカウントまたは他の Alibaba Cloud アカウントに属することができます。この種類の RAM ロールは、クロスアカウントアクセスと一時的な権限付与に使用されます。
信頼できるエンティティが Alibaba Cloud サービスである RAM ロール:Alibaba Cloud サービスがこの種類の RAM ロールを偽装できます。信頼できる Alibaba Cloud サービスが偽装できる RAM ロールは、通常のサービスロールとサービスリンクロールの 2 種類に分類されます。サービスリンクロールの詳細については、「サービスリンクロール」をご参照ください。この種類の RAM ロールは、Alibaba Cloud サービス間のアクセスを承認するために使用されます。
信頼できるエンティティが ID プロバイダー (IdP) である RAM ロール:信頼できる IdP のユーザーがこの種類の RAM ロールを偽装できます。この種類の RAM ロールは、Alibaba Cloud と信頼できる IdP との間でロールベースのシングルサインオン (SSO) を実装するために使用されます。
特定の RAM ユーザーが特定の RAM ロールを偽装できないように制限する方法
RAM ロールの信頼ポリシーを更新します。
RAM ロールの信頼ポリシーで、
Principal要素を使用して、ロールの偽装を許可する RAM ユーザーを指定します。ポリシーで、<account-id>をご利用の Alibaba Cloud アカウントの ID に、<user-name>を RAM ユーザーの名前に置き換えます。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。ポリシー例:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<account-id>:user/<user-name>" ] } } ], "Version": "1" }RAM ユーザーにロールを偽装する権限を付与します。
`AliyunSTSAssumeRoleAccess` ポリシーまたはカスタムポリシーを RAM ユーザーにアタッチします。カスタムポリシーを使用すると、ユーザーが偽装できるロールを制限できます。
カスタムポリシーでは、
Resource要素を使用して、偽装可能な RAM ロールの ARN を指定します。ポリシーで、<account-id>をご利用の Alibaba Cloud アカウントの ID に、<role-name>を RAM ロールの名前に置き換えます。詳細については、「カスタムポリシーの作成」および「RAM ユーザーへの権限付与」をご参照ください。ポリシー例:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Resource": "acs:ram:*:<account-id>:role/<role-name>" } ], "Version": "1" }
RAM ロールの ARN を表示する方法
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
対象の RAM ロールの名前をクリックします。
[基本情報] セクションで、ロールの ARN を見つけてコピーします。

STS の API リクエスト制限
AssumeRole API 操作は、1 秒あたり 100 リクエストにスロットリングされます。この制限は、Alibaba Cloud アカウント全体 (その中のすべての RAM ユーザーと RAM ロールを含む) に適用されます。
この制限を超えると、STS は次のいずれかのエラーメッセージを返します。
エラーメッセージ
エラーコード
エラーメッセージ
Throttling.Api
Request was denied due to api flow control.
Throttling.User
Request was denied due to user flow control.
Throttling
Request was denied due to flow control.
302ステータスコード
これらのエラーが発生した場合は、リクエストレートを下げてください。アプリケーションでより高いリクエストレートが必要な場合は、チケットを起票することで、クォータの引き上げをリクエストできます。
STS トークンの権限の制限
STS トークンの権限は、ロールの ID ベースのポリシーと、AssumeRole 呼び出しの Policy パラメーターで渡すセッションポリシーの共通部分です。
AssumeRole を呼び出すときにセッションポリシーを指定しない場合、返される STS トークンはロールと同じ権限を持ちます。
STS トークンの有効期間
デフォルトでは、STS トークンは 3,600 秒 (1 時間) 有効です。期間は、最小 900 秒 (15 分) から、ロールの最大セッション期間設定で定義された最大値までの範囲で指定できます。
AssumeRole API 操作の DurationSeconds パラメーターを使用して、STS トークンの有効期間を設定できます。
ロールの最大セッション期間を設定するには、「RAM ロールの最大セッション期間の指定」をご参照ください。
同じロールに対して複数の STS トークンが同時に有効になるか
はい。同じロールに対して複数の STS トークンが同時に有効になります。各トークンは有効期限が切れるまで有効であり、新しいトークンを作成しても既存のトークンには影響しません。
STS トークンが漏洩した場合の対処法
STS トークンが漏洩した疑いがある場合は、その RAM ロールのアクティブなすべてのトークンを直ちに無効化できます。これを行うには、ロールからすべての権限を削除するか、ロールを完全に削除する必要があります。
RAM コンソールにログインします。
権限を取り消すには、RAM ロールからすべてのポリシーをデタッチします。
詳細については、「RAM ロールからの権限の取り消し」をご参照ください。
権限を取り消すには、RAM ロールを削除します。
詳細については、「RAM ロールの削除」をご参照ください。
この操作により、そのロールの有効期限が切れていないすべての STS トークンが直ちに無効になります。
引き続き RAM ロールを使用する必要がある場合は、同じ名前で新しいロールを作成し、同じポリシーをアタッチできます。
STS トークンの最大長
いいえ。STS トークンの長さは可変です。コード内でトークンの最大長を前提にしないでください。常に可変長のトークンを許容するようにしてください。