ルートユーザーまたは管理者ユーザーのアクセス拒否の問題のトラブルシューティング方法を教えてください。

最終更新日: 2022 年 4 月 4 日

ルートユーザー、または 管理者アクセス許可が追加されている AWS Identity and Access Management (IAM) エンティティでアクセス拒否エラーが発生しました。アクセス拒否の問題のトラブルシューティングと解決方法を教えてください。

簡単な説明

ルートユーザーまたは管理者アクセス許可が追加された IAM エンティティでアクセス拒否エラーが発生する理由はいくつかあります。次のような理由が挙げられます。

  • サービスコントロールポリシー (SCP) によってサービスへのアクセスが制限されている
  • リソースベースのポリシーにより、リソースへのアクセスが制限されている
  • アクセス許可の境界によってエンティティが実行できるアクションが制限されている
  • 設定されているセッションポリシーによって認可の問題が発生している
  • VPC エンドポイントポリシーによって IAM エンティティへのアクセスが制限されている

ユースケースと発生したエラーに応じて、以下のトラブルシューティングステップを使用します。

解決方法

ルートユーザーの認可問題を解決する

IAM ポリシーを使用してルートユーザーのアクセス許可を制限することはできませんが、サービスコントロールポリシー (SCP) を使用して AWS Organizations メンバーアカウントからルートユーザーを制限できます。組織の管理アカウントを使用して、SCP からの制限を確認します。

次の例は、ルートユーザーの Amazon Simple Storage Service (Amazon S3) アクセスを拒否するサービスコントロールポリシーを示しています。この例では、aws:PrincipleArn 条件キーと arn:aws:iam::<<accountIAD>:root の形式のルート ARN に一致する値が使用されています。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::*:root"
          ]
        }
      }
    }
  ]
}

管理者アクセス許可が割り当てられた IAM エンティティの認可の問題を解決する

IAM エンティティには、管理者レベルのアクセスを付与するポリシーが設定されていることがありますが、他のタイプのポリシーによって制限される場合もあります。詳細については、「アクセス拒否エラーメッセージのトラブルシューティング」および「ポリシータイプ」を参照してください。IAM エンティティのアクセスを制限している可能性のあるポリシーを理解するには、以下のガイドラインを参考にしてください。

  • 組織 SCP は、メンバーアカウント IAM エンティティへのアクセスを制限できます。組織の管理アカウントを使用して、SCP からの制限を確認します。
  • リソースベースのポリシーは、IAM エンティティからリソースへのアクセスを制限できます。リソースベースのポリシーの例として、Amazon S3 バケットポリシーがあります。リソースベースのポリシーをサポートするサービスの一覧については、「AWS IAM と連携するサービス」を参照してください。
  • アクセス許可の境界は、アイデンティティベースのポリシーがエンティティに付与できる最大アクセス許可を定義します。アクセス許可の境界を使用する場合、エンティティが実行できるのは、ID ベースのポリシーとアクセス許可の境界の両方で許可されているアクションだけです。IAM コンソールを使用して、ユーザーまたはロールにアクセス許可の境界が割り当てられているかどうかを確認します。
  • フェデレーティッドユーザーの IAM ロールの一時セッションを作成すると、セッションポリシーをプログラムによって渡すことができます。セッションのアクセス許可は、セッションが作成される IAM エンティティに割り当てられた ID ベースのポリシーとセッションポリシーそのものが交差する部分になます。AssumeRole/AssumeRoleWithSAML/AssumeRoleWithWebIdentity API コールの AWS CloudTrail ログを使用して、IAM ロールセッションにセッションポリシーが渡されているかどうかを確認します。フェデレーティッドユーザーセッションに渡されたセッションポリシーを確認するには、CloudTrail ログで GetFederationToken API コールを確認します。これらの API コールの詳細については、「アクション」を参照してください。
  • VPC エンドポイントポリシーは、VPC エンドポイントにアタッチできるリソースベースのポリシーです。これは IAM エンティティへのアクセスを制限できます。VPC エンドポイント経由でリクエストをルーティングする場合は、関連付けられた VPC エンドポイントポリシーによる制限を確認してください。詳細については、「VPC エンドポイントポリシーを使用する」を参照してください。

Amazon S3 リソースに対するアクセス拒否エラーメッセージを解決する

Amazon S3 リソースに関するアクセス拒否エラーメッセージのトラブルシューティングの詳細については、「Amazon S3 から 403: Access Denied エラーをトラブルシューティングする方法とは?」を参照してください。

AWS 請求およびコスト管理コンソールにアクセスする際の認可の問題を解決する

管理者アクセス許可のある IAM エンティティで請求およびコスト管理コンソールにアクセスしようとすると、認可の問題が発生することがあります。「請求コンソールへのアクセス権の委任」のステップ 1 で説明されているように、請求および管理コンソールへの IAM ユーザー/ロールのアクセス許可を有効にします。このデータに対する IAM エンティティのアクセスを許可するには、このステップを完了し、必要な IAM アクセス許可を追加する必要があります。

関連する認可の問題を解決するには、IAM エンティティがルートユーザーとしてアクティブ化されているかどうかを確認します。