このトピックでは、Resource Access Management (RAM) ロールとSecurity Token Service (STS) トークンに関するよくある質問に対する回答を提供します。
エラーメッセージ "このアクションを実行する権限がありません。 あなたはRAMによって承認されるべきです。RAMユーザーがSTSにアクセスしようとしたときに報告されますか?
RAMユーザーがAPI、CLI、またはSDKを使用してAssumeRole操作を呼び出すと、次のエラーメッセージが返される場合があります。
Error message: You are not authorized to do this action. You should be authorized by RAM.
次の情報を参照して、エラーのトラブルシューティングを行うことができます。
必要なポリシーがRAMユーザーにアタッチされていません。
この問題を解決するには、AliyunSTSAssumeRoleAccessシステムポリシーまたはカスタムポリシーをRAMユーザーに添付します。 詳細については、このトピックの「RAMユーザーへの権限の付与」または「RAMユーザーが引き受けることができるRAMロールを指定できますか」をご参照ください。
RAMユーザーはRAMロールを引き受ける権限がありません。
この問題を解決するには、RAMロールの信頼ポリシーのPrincipal要素にRAMユーザーを追加します。 詳細については、「RAM ロールの信頼できるエンティティの変更」をご参照ください。
AssumeRole操作を呼び出すことができるのは誰ですか?
AssumeRole操作を呼び出して、RAMロールを引き受けるために使用されるSTSトークンを取得できます。 この操作を呼び出すことができるのは、RAMユーザーまたはRAMロールだけです。 Alibaba Cloudアカウントはこの操作を呼び出すことはできません。
RAMロールの種類は何ですか? RAMロールの種類を引き受けることができるエンティティ
RAMロールは、信頼できるエンティティに基づいて次のタイプに分類されます。
Alibaba Cloudアカウント: 信頼できるAlibaba CloudアカウントのRAMユーザーは、このタイプのRAMロールを引き受けることができます。 このタイプのRAMロールを引き受けるRAMユーザーは、所有者のAlibaba Cloudアカウントまたは他のAlibaba Cloudアカウントに所属できます。 このタイプのRAMロールは、クロスアカウントアクセスと一時的な権限付与に使用されます。
Alibaba Cloudサービス: Alibaba Cloudサービスは、このタイプのRAMロールを引き受けることができます。 このタイプのRAMロールは、Alibaba Cloudサービス間のアクセスを許可するために使用されます。 Elastic Compute Service (ECS) インスタンスが想定するRAMロールは、このタイプのRAMロールに分類されます。 この場合、信頼できるエンティティはECSです。 詳細については、「インスタンスRAMロールを使用した他のAlibaba Cloudリソースへのアクセス」をご参照ください。
IdP: 信頼できるIdPのユーザーは、このタイプのRAMロールを引き受けることができます。 このタイプのRAMロールは、Alibaba Cloudと信頼できるIdP間のシングルサインオン (SSO) の実装に使用されます。
RAMユーザーが引き受けることができるRAMロールを指定できますか?
はい。RAMユーザーが引き受けることができるRAMロールを指定できます。 カスタムポリシーを作成して、RAMユーザーが引き受けることができるRAMロールを指定できます。 次のサンプルコードは、カスタムポリシーの例を示しています。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Resource": "acs:ram:*:<account-id>:role/<role-name>"
}
],
"Version": "1"
}
このポリシーでは、
Resource
要素はRAMロールのAlibaba Cloud Resource Name (ARN) を指定します。 この要素では、<account-id>
はAlibaba Cloudアカウントを指定し、<role-name>
はRAMロールの名前を指定します。 RAMロールのARNを表示する方法の詳細については、「RAMロールのARNを見つけるにはどうすればよいですか?」をご参照ください。このポリシーをRAMユーザーにアタッチして、RAMユーザーが引き受けることができるRAMロールを指定できます。 RAMユーザーにポリシーをアタッチする方法の詳細については、「RAMユーザーへの権限の付与」をご参照ください。
RAMロールのARNを表示するにはどうすればよいですか?
RAM コンソール にログインします。
左側のナビゲーションペインで、
を選択します。[ロール] ページで、ARNを表示するRAMロールの名前をクリックします。
[基本情報] セクションで、RAMロールのARNを表示します。
STS APIリクエストの数は制限されていますか?
はい、STS APIリクエストの数は制限されています。 AssumeRole操作は、Alibaba Cloudアカウントごとに1秒あたり最大100回呼び出すことができます。 Alibaba Cloudアカウント内のRAMユーザーとRAMロールを使用して送信されたAPIリクエストもカウントされます。
APIリクエストの数が上限を超えると、過剰なリクエストに対して次のいずれかのエラーメッセージが返されます。
エラーメッセージ
エラーコード
エラーメッセージ
Throttling.Api
apiフロー制御によりリクエストが拒否されました。
Throttling.User
ユーザーフロー制御によりリクエストが拒否されました。
スロットリング
フロー制御によりリクエストが拒否されました。
HTTPステータスコード
302
上記のエラーメッセージまたはHTTPステータスコードの302のいずれかが返された場合は、同時STS APIリクエストの数を減らします。 サービスが同時のSTS APIリクエストに対してより高いクォータを必要とする場合は、 ticket を起票してクォータを増やします。
STSトークンの権限は何ですか?
STSトークンの権限は、指定されたRAMロールによって所有され、AssumeRole操作を呼び出すときにPolicy
パラメーターに指定する値に含まれる権限です。
AssumeRole操作を呼び出すときにPolicyパラメーターを指定しない場合、返されるSTSトークンには特定のRAMロールのすべての権限が付与されます。
STS トークンの有効期間はどれだけですか?
STSトークンの有効期間は、900秒から指定した最大セッション期間の範囲です。 デフォルトの有効期間は3,600秒です。
AssumeRole操作を呼び出してSTSトークンの有効期間を指定するときに、DurationSecondsパラメーターを設定できます。
RAMコンソールを使用するか、APIを呼び出して、RAMロールの最大セッション期間を設定できます。 詳細については、「RAMロールの最大セッション期間の指定」をご参照ください。
異なる時点で複数のSTSトークンを取得した場合、古いトークンと新しいトークンは同時に有効ですか?
はい、古いトークンと新しいトークンは同時に有効です。 すべてのSTSトークンは、有効期限が切れる前に有効です。
STSトークンが公開された場合はどうすればよいですか?
RAMユーザーがRAMロールを引き受けた後に取得したSTSトークンが開示されている場合は、次の手順を実行してSTSトークンを無効にします。
Alibaba Cloud アカウントを使用して、RAM コンソールにログインします。
RAMロールからすべてのポリシーをデタッチします。
詳細については、「RAM ロールの権限の削除」をご参照ください。
RAMロールを削除します。
詳細については、「RAMロールの削除」をご参照ください。
RAMロールが削除されると、期限切れでないSTSトークンは無効になります。
削除したRAMロールを引き続き使用する場合は、同じ名前のRAMロールを作成し、新しいRAMロールに同じポリシーをアタッチします。
STSトークンの最大長は何ですか?
Alibaba Cloud STSは、STSトークンの長さに制限を課していません。 STSトークンの最大長を指定しないことを強くお勧めします。