STS AssumeRole の一般的なエラーと原因は次のとおりです。

SN エラー 原因
1 ErrorCode: NoPermission ErrorMessage: root アカウントはロールを引き受けることはできません。 AssumeRole は、プライマリアカウントのキーを使用して呼び出されます。 サブアカウントのキーを使用します。
2 ErrorCode: MissingSecurityToken ErrorMessage: このアクションには SecurityToken が必須です。 AssumeRoleは、一時的なアカウントのキーを使用して呼び出されます。 サブアカウントのキーを使用します。
3 Error code: InvalidAccessKeyId.NotFound Error message: 指定されたアクセスキーが見つかりません。 AccessKeyID は無効です。 AccessKeyID が正しく入力されているかを確認してください。 AccessKeyId の両側にスペースはありません。
4 Error code: InvalidAccessKeyId.Inactive Error message: 指定されたアクセスキーは無効です。 使用したサブアカウントのキーは無効です。 キーを有効にするか置き換えます。コンソール上で、[リソースアクセス管理] > [ユーザー管理] > [管理] > [ユーザー詳細] > [ユーザーアクセスキー] に移動し、キーが無効か有効かを確認します。 > > > >
5 ErrorCode: InvalidParameter.PolicyGrammar ErrorMessage: パラメーター Policy は文法チェックに合格していません。 ロールプレイ中に指定された権限ポリシーが無効です。 AssumeRole の権限ポリシーを指定してもしなくてもかまいません。 権限ポリシーが指定されている場合、一時的なアカウントのアクセス許可は、指定された権限ポリシーとそのロールのアクセス許可の組み合わせになります。 権限ポリシーが指定されていない場合、一時的なアカウントのアクセス許可は、そのロールのアクセス許可になります。 このエラーが報告されたら、指定された権限ポリシーを確認します。 一時的なアカウントがロールを引き受ける際、権限ポリシーを指定することは推奨されません。 権限ポリシーが必要な場合は、 RAM Policy Editor を使用して生成します。
6 ErrorCode: InvalidParameter.RoleSessionName ErrorMessage: パラメーター RoleSessionName の形式が間違っています。 AssumeRole で指定された RoleSessionName が無効です。このパラメーターは、誰が指定のトークンを使用しているかを示すため、さまざまなトークンを識別するのに使用されます。これにより、監査が容易になります。 形式: ^ [a-zA-Z0-9 \。@ \ -_] + $。パラメーターの長さは 2 〜 32 文字です。

詳しくは、「ロールの引き受け (AssumeRole)」をご参照ください。 たとえば、a、1、abc\*abc、Teenage Mutant Ninja Turtles のような名前は無効です。

7 ErrorCode: InvalidParameter.DurationSeconds Error message: DurationSecondsの最小値は 15 分、最大値は 1 時間です。 ロールが引き受けられている場合、指定された有効期限は無効です。 言い換えると、AssumeRoleRequest.setDurationSeconds パラメーターは無効ということになります。 ロールが引き受けられると、有効継続時間 を秒単位で指定できます。 有効継続時間は 900 〜 3600 秒です。例えば、assumeRoleRequest.setDurationSeconds (60L * 20) は 20 分間、有効であることを意味します。
8 ErrorCode: NoPermission ErrorMessage: このロールでは、sts:AssumeRole を実行する権限がありません。sts:AssumeRole を実行する権限の承認がされていないか、指定されたロールはあなたを信頼していません。
  • 原因 1: AssumeRole のサブアカウントに権限がありません。 サブアカウントに AliyunSTSAssumeRoleAccess システム権限付与ポリシーを与える必要があります。 AliyunSTSAssumeRoleAccess アクセス権限を付与するには、[リソースアクセス管理] > [ユーザー管理] > [承認] > [オプション承認ポリシー名] に移動します。 > > >
  • 原因 2: ロールを引き受けるため、要求を送信しているサブアカウントのアカウント ID が、そのロールの "信頼できるアカウント ID " と一致しません。 ロールの作成者は、アカウント ID を確認および変更する必要があります。 サブアカウントのアカウント ID は、このサブアカウントを作成したプライマリユーザーの ID です。 ロールのアカウント ID は、このロールを作成したプライマリユーザーのアカウント ID です。 アカウント ID を確認して変更するには、リソースアクセス[管理] > [ロール管理] > [管理] > [ロール詳細] > [基本情報の編集] に移動する必要があります。 > > > >
  • 原因 3:ロールの種類が正しくありません。 ロールの種類が "ユーザーロール" と "サービスロール" に分類されている場合、"サービスロール" は AssumeRole を使用して一時的なアカウントを引き受けることはできません。
  • Java のロールの引き受けの例は、『GitHub』をご参照ください。
  • 他の原因によるロールの引き受けの例については、「STS SDK ユーザーガイド」をご参照ください。