AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

IAM ロールで発生する、EC2 インスタンスプロファイルのエラーをトラブルシューティングする方法を教えてください。

所要時間2分
0

AWS Identity and Access Management (IAM) ロールで発生する、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスプロファイルのエラーをトラブルシューティングしたいと考えています。

簡単な説明

Amazon EC2 インスタンスでインスタンスプロファイルを作成、更新、削除、またはアタッチしようとすると、次のいずれかのエラーが発生する場合があります。

  • "AccessDenied または許可されていません"
  • "インスタンスプロファイルにロールがアタッチされていません。"
  • "エンティティを削除できません。インスタンスプロファイルからロールを削除してください"
  • "EC2 インスタンスでアクティブアソシエーションエラー発生"
  • "インスタンスプロファイルは既にあります"
  • "要求された DurationSeconds がロールのセッション制限 1 時間を超えています"

解決策

表示されたエラーメッセージについて、次のトラブルシューティング手順を実行します。

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

"AccessDenied または許可されていません"

このエラーは通常、アクセスを制限する IAM ポリシーにおけるアクセス許可の問題に関連しています。アクセス拒否エラーまたは許可されていないというエラーを解決するには、シナリオに合わせて次の解決策を使用します。

アクセス許可の境界

IAM エンティティ (ユーザーまたはロール) がアクセス許可の境界を使用している場合、IAM ポリシーが特定の要件を満たしていない可能性があります。詳細については、「アクセス許可の境界によるアクセス拒否の問題を解決する方法を教えてください」を参照してください。

管理者アクセス許可を持つルートユーザーまたは IAM エンティティ

管理者アクセス許可を持つ IAM エンティティまたは AWS アカウントのルートユーザーにおいて、特定のシナリオで認証の問題が発生することがあります。詳細については、「ルートユーザーまたは管理者ユーザーにおけるアクセス拒否の問題をトラブルシューティングする方法を教えてください」を参照してください。

クロスアカウントアクセス

クロスアカウントで IAM ロールを引き受けようとした場合、そのユーザーには、IAM ロールを引き受ける IAM アカウントのアクセス許可が必要です。また、もう一方の AWS アカウントにおいて、IAM ロールの引き受けを許可するアクセス許可が必要です。詳細については、「クロスアカウントの IAM ロールを引き受けようとすると発生する、"AccessDenied" または "無効な情報です" というエラーを解決する方法を教えてください」を参照してください。

IAM ポリシーのアクセス許可

AWS リソースで API アクションを実行しようとして、"AccessDenied または許可されていません" というエラーが発生した場合は、ポリシーのアクセス許可を確認してください。詳細については、。「IAM ポリシーにおける、アクセス拒否エラーまたは許可されていないというエラーをトラブルシューティングする方法を教えてください」を参照してください。

EC2 インスタンス

EC2 インスタンスを起動すると "AccessDenied" エラーが発生した場合は、インスタンスのプロファイルまたはアクセス許可に問題がある可能性があります。有効なインスタンスプロファイル名、Amazon リソースネーム (ARN) があり、インスタンスプロファイルに IAM ロールがあることを確認してください。詳細については、「Amazon EC2: ロールを使用してインスタンスを起動しようとすると、AccessDenied エラーが発生します」を参照してください。

アクセス拒否または許可されていないというエラーをトラブルシューティングするうえで参考となるデータを取得する

Amazon Athena クエリまたは AWS CLI を使用して、IAM API コールの失敗に関するエラーログを取得することもできます。このデータは、「アクセス拒否」または「許可されていない」というエラーに関する追加のトラブルシューティングに使用できます。詳細については、「IAM アクセス許可における、アクセス拒否または許可されていないというエラーをトラブルシューティングするうえで参考となるデータを取得する方法を教えてください」を参照してください。

"インスタンスプロファイルにロールがアタッチされていません"

このエラーは、EC2 インスタンスプロファイルに IAM ロールがアタッチされていない場合に発生します。AWS マネジメントコンソールまたは AWS CLI を使用して、IAM ロールを EC2 インスタンスプロファイルにアタッチします。詳細については、「Amazon EC2 インスタンスでインスタンスプロファイルをアタッチしたり置き換えたりする方法を教えてください」を参照してください。

"エンティティを削除できません。インスタンスプロファイルからロールを削除してください"

AWS CLI コマンド delete-instance-profile を実行してインスタンスプロファイルを削除しようとした場合、次のようなエラーが表示されることがあります。

"DeleteInstanceProfile 操作の呼び出し時に、エラーが発生しました (DeleteConflict): エンティティを削除できません。最初にインスタンスプロファイルからロールを削除する必要があります。"

このエラーは、ロールがインスタンスプロファイルに関連付けられている場合に発生します。

重要: インスタンスプロファイルを削除する前に、実行中の Amazon (EC2) インスタンスがないことを確認してください。

インスタンスプロファイルを削除するには、AWS CLI コマンド remove-role-from-instance-profile を実行します。

aws iam remove-role-from-instance-profile --instance-profile-name Your_Instance_Profile_Name --role-name Your_Role_Name

次に、AWS CLI コマンド delete-instance-profile を実行してプロファイルを削除します。

aws iam delete-instance-profile --instance-profile-name Your_Instance_Profile_Name

"EC2 インスタンスでアクティブアソシエーションエラー発生"

このエラーは、複数の IAM ロールが関連付けられているインスタンスプロファイルを更新しようとしたときに発生します。

インスタンスプロファイルを更新するには、まず、それに関連付けられているすべての IAM ロールの関連付けを解除する必要があります。詳細については、「EC2 インスタンスで発生する、"アソシエーション iip-assoc-xxxxxxxx はアクティブなアソシエーションではありません" というエラーの解決方法を教えてください」を参照してください。

"インスタンスプロファイルは既にあります"

このエラーは、既に存在するインスタンスプロファイルを作成しようとした場合に発生します。このエラーを解決するには、別の名前でインスタンスプロファイルを作成するか、インスタンスプロファイルを削除してから再作成してください。

注: AWS CLI を使用して IAM ロールを作成する場合、AWS CLI を使用してインスタンスプロファイルも作成する必要があります。IAM ロール名とインスタンスプロファイル名は異なる場合があります。

"要求された DurationSeconds がロールのセッション制限 1 時間を超えています"

このエラーは、一時的なセキュリティ認証情報AssumeRole API を使用して IAM ロールを引き受けたときに、ロールセッションが 1 時間を超えた場合に発生します。ロールチェーンに関するベストプラクティスについては、「IAM ロールチェーンセッションの期間を延長できますか」を参照してください。

関連情報

IAM と Amazon EC2 のトラブルシューティング

AWS公式
AWS公式更新しました 2ヶ月前
コメントはありません

関連するコンテンツ