Access Analyzer リソースタイプ - AWS Identity and Access Management

Access Analyzer リソースタイプ

Access Analyzer は、Access Analyzer を有効にしたリージョンで AWS リソースに適用されているリソースベースのポリシーを分析します。リソースベースのポリシーのみが分析されます。Access Analyzer が各リソースタイプの結果を生成する方法の詳細については、各リソースに関する情報を参照してください。

Amazon Simple Storage Service バケット

Access Analyzer は Amazon S3 バケットを分析し、バケットに適用されている Amazon S3 バケットポリシー、ACL、アクセスポイントが外部エンティティにアクセスを許可すると、結果を生成します。外部エンティティは、フィルターの作成に使用できる、信頼ゾーン外のプリンシパルや他のエンティティです。たとえば、バケットポリシーが別のアカウントにアクセスを許可したり、パブリックアクセスを許可したりすると、Access Analyzer は結果を生成します。ただし、バケットでパブリックアクセスのブロックを有効にすると、アカウントレベルまたはバケットレベルでアクセスをブロックできます。

Amazon S3 ブロックパブリックアクセス設定は、バケットに適用されるバケットポリシーを上書きします。また、この設定は、バケットのアクセスポイントに適用されるアクセスポイントポリシーを上書きします。Access Analyzer は、ポリシーが変更されるたびに、バケットレベルでブロックパブリックアクセス設定を分析します。ただし、6 時間ごとに 1 回のみ、アカウントレベルでパブリックアクセスのブロック設定を評価します。つまり、最大 6 時間、Access Analyzer はバケットへのパブリックアクセスに関する結果を生成または解決しない場合があります。たとえば、パブリックアクセスを許可するバケットポリシーがある場合、Access Analyzer はそのアクセスに関する結果を生成します。パブリックアクセスのブロックを有効にして、アカウントレベルでバケットへのすべてのパブリックアクセスをブロックすると、Access Analyzer は、バケットへのすべてのパブリックアクセスがブロックされていても、バケットポリシーに関する結果を最大 6 時間解決しません。

AWS Identity and Access Management ロール

IAM ロールの場合、Access Analyzer は信頼ポリシーを分析します。ロールの信頼ポリシーでは、ロールを引き受けるために信頼するプリンシパルを定義します。ロールの信頼ポリシーは、IAM のロールにアタッチされる必須のリソースベースのポリシーです。Access Analyzer は、信頼ゾーン外の外部エンティティからアクセスできる信頼ゾーン内のロールに関する結果を生成します。

注記

IAM ロールはグローバルリソースです。ロールの信頼ポリシーが外部エンティティにアクセスを許可すると、Access Analyzer は有効な各リージョンで結果を生成します。

AWS Key Management Service キー

AWS KMS カスタマーマスターキー (CMK) の場合、Access Analyzer はキーに適用されているキーポリシーと許可を分析します。Access Analyzer は、キーポリシーや許可が外部エンティティに対してキーへのアクセスを許可すると、結果を生成します。たとえば、ポリシーステートメントで km:CallerAccount 条件キーを使用して、特定の AWS アカウントですべてのユーザーへのアクセスを許可し、現在のアカウント (現在のアナライザーの信頼ゾーン) 以外のアカウントを指定すると、Access Analyzer は結果を生成します。IAM ポリシーステートメントの KMS 条件キーの詳細については、「AWS KMS 条件キー」を参照してください。

Access Analyzer は、KMS キーを分析することで、キーポリシーや許可のリストなど、キーのメタデータを読み取ります。キーポリシーが Access Analyzer ロールに対してキーのメタデータの読み取りを許可しない場合、結果としてアクセス拒否エラーが生成されます。たとえば、次のポリシーステートメントの例で、これがキーに適用されている唯一のポリシーである場合は、Access Analyzer でアクセス拒否エラーが発生します。

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Admin" }, "Action": "kms:*", "Resource": "*" }

このステートメントでは、AWS アカウント 111122223333 の Admin という名前のロールのみがキーへのアクセスを許可されるため、Access Analyzer はキーを完全には分析できず、結果としてアクセス拒否エラーが生成されます。エラーの結果は、[Findings (結果)] テーブルに赤いテキストで表示されます。結果は次のように表示されます。

{ "error": "ACCESS_DENIED", "id": "12345678-1234-abcd-dcba-111122223333", "analyzedAt": "2019-09-16T14:24:33.352Z", "resource": "arn:aws:kms:us-west-2:1234567890:key/1a2b3c4d-5e6f-7a8b-9c0d-1a2b3c4d5e6f7g8a", "resourceType": "AWS::KMS::Key", "status": "ACTIVE", "updatedAt": "2019-09-16T14:24:33.352Z" }

KMS CMK を作成する場合、キーにアクセスするために付与されるアクセス許可は、キーの作成方法によって異なります。キーリソースへのアクセス拒否エラーが結果として返された場合は、次のポリシーステートメントをキーリソースに適用して、キーへのアクセス許可を Access Analyzer を付与します。

{ "Sid": "Allow Access Analyzer access to key metadata", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:DescribeKey", "kms:GetKeyPolicy", "kms:List*" ], "Resource": "*" },

KMS キーリソースへのアクセス拒否が結果として返された場合、キーポリシーを更新して結果を解決すると、結果は解決済みの状態に更新されます。外部エンティティに対してキーへのアクセスを許可するポリシーステートメントやキー付与がある場合、キーリソースに関する追加の結果が表示されることがあります。

AWS Lambda の関数とレイヤー

AWS Lambda 関数の場合、Access Analyzer は外部エンティティに対して関数へのアクセスを許可するポリシー (ポリシー内の条件ステートメントを含む) を分析します。また、Access Analyzer は AWS Lambda API の AddPermission オペレーションを EventSourceToken で使用するときに付与されるアクセス許可も分析します。

Amazon Simple Queue Service キュー

Amazon SQS キューの場合、Access Analyzer は外部エンティティに対してキューへのアクセスを許可するポリシー (ポリシー内の条件ステートメントを含む) を分析します。