

# 外部アクセスと内部アクセスのサポートされている IAM Access Analyzer リソースタイプ
<a name="access-analyzer-resources"></a>

外部および内部アクセスアナライザーの場合、IAM Access Analyzer は、IAM Access Analyzer を有効にしたリージョンで AWS リソースに適用されているリソースベースのポリシーを分析します。分析されるのは、リソースベースのポリシーのみです。IAM Access Analyzer が各リソースタイプの結果を生成する方法の詳細については、各リソースに関する情報を参照してください。

**注記**  
リストされているサポート対象のリソースタイプは、外部および内部アクセスアナライザー用です。内部アクセスアナライザーは、外部アクセスアナライザーがサポートするすべてのリソースタイプをサポートしているわけではありません。未使用のアクセスアナライザーは、IAM ユーザーとロールのみをサポートします。詳細については、「[IAM Access Analyzer の検出結果の仕組みを理解する](access-analyzer-concepts.md)」を参照してください。

## 外部アクセスでサポートされるリソースタイプ
<a name="access-analyzer-supported-external-resources"></a>
+ [Amazon Simple Storage Service バケット](#access-analyzer-s3)
+ [Amazon Simple Storage Service ディレクトリバケット](#access-analyzer-s3-directory)
+ [AWS Identity and Access Management ロール](#access-analyzer-iam-role)
+ [AWS Key Management Service キー](#access-analyzer-kms-key)
+ [AWS Lambda の関数とレイヤー](#access-analyzer-lambda)
+ [Amazon Simple Queue Service キュー](#access-analyzer-sqs)
+ [AWS Secrets Manager シークレット](#access-analyzer-secrets-manager)
+ [Amazon Simple Notification Service トピック](#access-analyzer-sns)
+ [Amazon Elastic Block Store ボリュームスナップショット](#access-analyzer-ebs)
+ [Amazon Relational Database Service DB スナップショット](#access-analyzer-rds-db)
+ [Amazon Relational Database Service DB クラスタースナップショット](#access-analyzer-rds-db-cluster)
+ [Amazon Elastic Container Registry リポジトリ](#access-analyzer-ecr)
+ [Amazon Elastic File System ファイルシステム](#access-analyzer-efs)
+ [Amazon DynamoDB Streams](#access-analyzer-ddb-stream)
+ [Amazon DynamoDB テーブル](#access-analyzer-ddb-table)

## 内部アクセスでサポートされるリソースタイプ
<a name="access-analyzer-supported-internal-resources"></a>
+ [Amazon Simple Storage Service バケット](#access-analyzer-s3)
+ [Amazon Simple Storage Service ディレクトリバケット](#access-analyzer-s3-directory)
+ [Amazon Relational Database Service DB スナップショット](#access-analyzer-rds-db)
+ [Amazon Relational Database Service DB クラスタースナップショット](#access-analyzer-rds-db-cluster)
+ [Amazon DynamoDB Streams](#access-analyzer-ddb-stream)
+ [Amazon DynamoDB テーブル](#access-analyzer-ddb-table)

## Amazon Simple Storage Service バケット
<a name="access-analyzer-s3"></a>

IAM Access Analyzer が外部アクセスアナライザーの Amazon S3 バケットを分析するときは、バケットに適用された Amazon S3 バケットポリシー、アクセスコントロールリスト (ACL)、またはアクセスポイント (マルチリージョンアクセスポイントを含む) が外部エンティティにアクセス権を付与する場合に結果を生成します。外部エンティティは、[フィルタの作成](access-analyzer-findings-filter.md)に使用できる、信頼ゾーン外のプリンシパルや他のエンティティです。例えば、バケットポリシーが別のアカウントにアクセスを許可したり、パブリックアクセスを許可したりすると、IAM Access Analyzer は結果を生成します。ただし、バケットで[パブリックアクセスのブロック](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)を有効にすると、アカウントレベルまたはバケットレベルでアクセスをブロックできます。

内部アクセスアナライザーの場合、IAM Access Analyzer は、組織またはアカウント内のプリンシパル (ユーザーまたはロール) が指定された Amazon S3 バケットにアクセスできる場合に検出結果を生成します。

**注記**  
IAM Access Analyzer は、クロスアカウントアクセスポイントにアタッチされたアクセスポイントポリシーを分析しません。これは、対象のアクセスポイントとポリシーが、アナライザーのアカウント外にあるためです。IAM Access Analyzer は、バケットからクロスアカウントアクセスポイントへのアクセスが委任され、そのバケットまたはアカウントでパブリックアクセスのブロックが有効になっていない場合に、結果を生成し公開します。パブリックアクセスのブロックを有効にしている場合、この公開結果は解決されます。また、IAM Access Analyzer により、クロスアカウントアクセスポイントでのアカウント間の結果が生成されます。

Amazon S3 *パブリックアクセスのブロック設定*は、バケットに適用されているバケットポリシーより優先されます。また、この設定は、バケットのアクセスポイントに適用されているアクセスポイントポリシーを上書きします。IAM Access Analyzer は、ポリシーが変更されるたびに、パブリックアクセスのブロックの設定を、バケットレベルで分析します。また、6 時間ごとに 1 回のみアカウントレベルで、パブリックアクセスのブロックに関する設定の評価を行います。つまり、最大 6 時間、IAM Access Analyzer はバケットへのパブリックアクセスに関する結果を生成または解決しない場合があります。例えば、パブリックアクセスを許可するバケットポリシーがある場合、IAM Access Analyzer はそのアクセスに関する結果を生成します。その後、パブリックアクセスのブロックを有効化し、バケットへのすべてのパブリックアクセスを (アカウントレベルで) ブロックすると、パブリックアクセスがまったくない状態であっても、IAM Access Analyzer は、そのバケットポリシーに関する結果を最大 6 時間解決しません。アカウントレベルでパブリックアクセスのブロックを有効化した後は、クロスアカウントアクセスポイントで公開された結果の解決にも、最大6時間かかる場合があります。バケットポリシーを変更せずにリソースコントロールポリシー (RCP) を変更しても、検出結果で報告されたバケットの再スキャンはトリガーされません。IAM Access Analyzer は、次の定期スキャン時 (24 時間以内) に新しいポリシーまたは更新されたポリシーを分析します。

マルチリージョンアクセスポイントの場合、IAM Access Analyzer は、結果の生成に確立されたポリシーを使用します。IAM Access Analyzer は、マルチリージョンアクセスポイントに対する変更を 6 時間ごとに 1 回評価します。つまり、マルチリージョンアクセスポイントの作成もしくは削除、またはそのポリシーの更新を行った場合でも、IAM Access Analyzer は結果の生成または解決を最大 6 時間実行しないことになります。

## Amazon Simple Storage Service ディレクトリバケット
<a name="access-analyzer-s3-directory"></a>

Amazon S3 ディレクトリバケットは、パフォーマンスが重要なワークロードやアプリケーションに推奨される汎用バケットのフラットストレージ構造とは対照的に、データをディレクトリに階層的に整理します。外部アクセスアナライザーの場合、IAM Access Analyzer は外部エンティティに対してディレクトリバケットへのアクセスを許可するためのディレクトリバケットポリシー (ポリシー内の条件ステートメントを含む) を分析します。

内部アクセスアナライザーの場合、IAM Access Analyzer は、組織またはアカウント内のプリンシパル (ユーザーまたはロール) が指定された Amazon S3 ディレクトリバケットにアクセスできる場合に検出結果を生成します。

Amazon S3 ディレクトリバケットはアクセスポイントもサポートしており、アクセスポイントを介してディレクトリバケットに対して行われたすべてのリクエストに対して、個別のアクセス許可とネットワーク制御が適用されます。各アクセスポイントには、基になるディレクトリバケットにアタッチされたバケットポリシーと連動して機能するアクセス ポイント ポリシーを設定できます。ディレクトリバケットのアクセスポイントを使用すると、特定のプレフィックス、API アクション、または仮想プライベートクラウド (VPC) へのアクセスを制限できます。

**注記**  
IAM Access Analyzer は、クロスアカウントアクセスポイントにアタッチされたアクセスポイントポリシーを分析しません。これは、対象のアクセスポイントとポリシーが、アナライザーのアカウント外にあるためです。IAM Access Analyzer は、バケットからクロスアカウントアクセスポイントへのアクセスが委任され、そのバケットまたはアカウントでパブリックアクセスのブロックが有効になっていない場合に、結果を生成し公開します。パブリックアクセスのブロックを有効にしている場合、この公開結果は解決されます。また、IAM Access Analyzer により、クロスアカウントアクセスポイントでのアカウント間の結果が生成されます。

Amazon S3 ディレクトリバケットの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「[ディレクトリバケットの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html)」を参照してください。

## AWS Identity and Access Management ロール
<a name="access-analyzer-iam-role"></a>

IAM ロールの場合、IAM Access Analyzer は[信頼ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#term_trust-policy)を分析します。ロールの信頼ポリシーでは、ロールを引き受けるために信頼するプリンシパルを定義します。ロールの信頼ポリシーは、IAM のロールに添付される必須のリソースベースのポリシーです。IAM Access Analyzer は、信頼ゾーン外の外部エンティティからアクセスできる信頼ゾーン内のロールに関する結果を生成します。

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

## AWS Key Management Service キー
<a name="access-analyzer-kms-key"></a>

AWS KMS keys の場合、IAM Access Analyzer はキーポリシーとキーに適用された許可を分析します。IAM Access Analyzer は、外部エンティティに対してキーへのアクセスを許可すると、結果を生成します。例えば、ポリシーステートメントで [kms:CallerAccount](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-caller-account) 条件キーを使用して、特定の AWS アカウントですべてのユーザーへのアクセスを許可し、現在のアカウント (現在のアナライザーの信頼ゾーン) 以外のアカウントを指定すると、IAM Access Analyzer は結果を生成します。AWS KMS IAM ポリシーステートメントにおける条件キーの詳細については、「[AWS KMS 条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awskeymanagementservice.html#awskeymanagementservice-policy-keys)」を参照してください。

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

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

このステートメントでは、AWS アカウント 111122223333 の*Admin*という名前のロールのみがキーへのアクセスを許可されるため、IAM 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 キーを作成する場合、キーにアクセスするために付与されるアクセス許可は、キーの作成方法によって異なります。キーリソースへのアクセス拒否エラーが結果として返された場合は、次のポリシーステートメントをキーリソースに適用して、キーへのアクセス許可を IAM Access Analyzer に付与します。

```
{
    "Sid": "Allow IAM Access Analyzer access to key metadata",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer"
        },
    "Action": [
        "kms:DescribeKey",
        "kms:GetKeyPolicy",
        "kms:List*"
    ],
    "Resource": "*"
},
```

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

## AWS Lambda の関数とレイヤー
<a name="access-analyzer-lambda"></a>

AWS Lambda 関数の場合、IAM Access Analyzer は、外部エンティティに対して関数へのアクセスを許可するポリシー (ポリシー内の条件ステートメントを含む) を分析します。Lambda では、独自のリソースベースのポリシーを関数、バージョン、エイリアス、レイヤーにアタッチできます。IAM Access Analyzer は、関数とレイヤーにアタッチされたリソースベースのポリシーに基づいて外部アクセスを報告します。IAM Access Analyzer は、エイリアスにアタッチされたリソースベースのポリシーや、修飾された ARN を使用して呼び出された特定のバージョンに基づいて外部アクセスを報告することはありません。

詳細については、「AWS Lambda デベロッパーガイド」の「[Using resource-based policies for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)」と「[Using versions](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using)」を参照してください。

## Amazon Simple Queue Service キュー
<a name="access-analyzer-sqs"></a>

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

## AWS Secrets Manager シークレット
<a name="access-analyzer-secrets-manager"></a>

AWS Secrets Manager シークレットの場合、IAM Access Analyzer は外部エンティティにシークレットへのアクセスを許可するポリシー (ポリシー内の条件ステートメントを含む) を分析します。

## Amazon Simple Notification Service トピック
<a name="access-analyzer-sns"></a>

IAM Access Analyzer は、Amazon SNS トピックにアタッチされたリソースベースのポリシーを分析します。これには、外部からのトピックへのアクセスを許可するポリシー内の条件ステートメントが含まれます。リソースベースのポリシーを使用して、トピックのサブスクライブや発行などの Amazon SNS アクションの実行を外部アカウントに許可できます。信頼ゾーン外のアカウントからのプリンシパルが Amazon SNS トピックに対して操作を実行できる場合、そのトピックは外部からのアクセスが可能です。Amazon SNS トピックの作成時にポリシーで `Everyone` を選択すると、そのトピックは一般公開されます。`AddPermission` は、外部アクセスを許可するリソースベースのポリシーを Amazon SNS トピックに追加するもう 1 つの方法です。

## Amazon Elastic Block Store ボリュームスナップショット
<a name="access-analyzer-ebs"></a>

Amazon Elastic Block Store ボリュームスナップショットにリソースベースのポリシーはありません。スナップショットは Amazon EBS の共有アクセス許可を通じて共有されます。Amazon EBS ボリュームスナップショットの場合、IAM Access Analyzer は外部エンティティによるスナップショットへのアクセスを許可するアクセスコントロールリストを分析します。Amazon EBS ボリュームスナップショットは、暗号化されている場合に外部アカウントと共有できます。暗号化されていないボリュームスナップショットは、外部アカウントと共有してパブリックアクセス権を付与することができます。共有設定は、スナップショットの `CreateVolumePermissions` 属性にあります。お客様が Amazon EBS スナップショットの外部アクセスをプレビューするときは、スナップショットが暗号化されていることを示すものとして、暗号化キーを指定することができます。これは、IAM Access Analyzer プレビューが Secrets Manager シークレットを処理する方法に似ています。

## Amazon Relational Database Service DB スナップショット
<a name="access-analyzer-rds-db"></a>

Amazon RDS DB スナップショットにリソースベースのポリシーはありません。DB スナップショットは Amazon RDS データベースのアクセス許可を通じて共有され、共有できるのは手動の DB スナップショットのみです。外部アクセスアナライザーの場合、IAM Access Analyzer は外部エンティティによる Amazon RDS スナップショットへのアクセスを許可するアクセスコントロールリストを分析します。暗号化されていない DB スナップショットはパブリックにすることができます。暗号化された DB スナップショットをパブリック共有することはできませんが、最大 20 個の他のアカウントと共有できます。詳細については、「[DB スナップショットの作成](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)」を参照してください。IAM Access Analyzer は、データベースの手動スナップショットを Amazon S3 バケットなどにエクスポートする機能を、信頼できるアクセスと見なします。

内部アクセスアナライザーの場合、IAM Access Analyzer は、組織またはアカウント内のプリンシパル (ユーザーまたはロール) が指定された Amazon RDS DB スナップショットにアクセスできる場合に検出結果を生成します。

**注記**  
IAM Access Analyzer は、データベース自体に直接設定されたパブリックまたはクロスアカウントアクセスを識別しません。IAM Access Analyzer は、Amazon RDS DB スナップショットに設定されたパブリックまたはクロスアカウントアクセスの結果のみを識別します。

## Amazon Relational Database Service DB クラスタースナップショット
<a name="access-analyzer-rds-db-cluster"></a>

Amazon RDS DB クラスタースナップショットにリソースベースのポリシーはありません。スナップショットは Amazon RDS DB クラスターのアクセス許可を通じて共有されます。外部アクセスアナライザーの場合、IAM Access Analyzer は外部エンティティによる Amazon RDS クラスタースナップショットへのアクセスを許可するアクセスコントロールリストを分析します。暗号化されていないクラスタースナップショットはパブリックにすることができます。暗号化されたクラスタースナップショットをパブリック共有することはできません。暗号化されていないクラスタースナップショットと暗号化されたクラスタースナップショットは、どちらも最大 20 個の他のアカウントと共有できます。詳細については、「[DB クラスタースナップショットの作成](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html)」を参照してください。IAM Access Analyzer は、DB クラスタースナップショットを Amazon S3 バケットなどにエクスポートする機能を、信頼できるアクセスと見なします。

内部アクセスアナライザーの場合、IAM Access Analyzer は、組織またはアカウント内のプリンシパル (ユーザーまたはロール) が指定された Amazon RDS DB クラスタースナップショットにアクセスできる場合に検出結果を生成します。

**注記**  
IAM Access Analyzer の結果には、AWS Resource Access Manager を使用した Amazon RDS DB クラスターおよびクローンの別の AWS アカウントまたは組織との共有のモニタリングは含まれません。IAM Access Analyzer は、Amazon RDS DB クラスタースナップショットに設定されたパブリックまたはクロスアカウントアクセスの結果のみを識別します。

## Amazon Elastic Container Registry リポジトリ
<a name="access-analyzer-ecr"></a>

Amazon ECR リポジトリの場合、IAM Access Analyzer はリソースベースのポリシーを分析します。これには、外部エンティティによるリポジトリへのアクセスを許可するポリシー内の条件ステートメントが含まれます (Amazon SNS トピックおよび Amazon EFS ファイルシステムといった他のリソースタイプと同様です)。Amazon ECR リポジトリの場合、外部からの利用が可能であるとみなされるには、プリンシパルがアイデンティティベースのポリシーを通じて `ecr:GetAuthorizationToken` へのアクセス許可を持っている必要があります。

## Amazon Elastic File System ファイルシステム
<a name="access-analyzer-efs"></a>

Amazon EFS ファイルシステムの場合、IAM Access Analyzer はポリシーを分析します。これには、外部エンティティによるファイルシステムへのアクセスを許可するポリシーの条件ステートメントが含まれます。信頼ゾーン外のアカウントからのプリンシパルが Amazon EFS ファイルシステムに対して操作を実行できる場合、そのファイルシステムは外部からのアクセスが可能です。アクセス権は、IAM を使用するファイルシステムポリシー、およびファイルシステムのマウント方法によって定義されます。例えば、Amazon EFS ファイルシステムを別のアカウントにマウントすると、そのアカウントが組織内にあり、その組織を信頼ゾーンとして定義した場合を除き、外部からのアクセスが可能であると見なされます。パブリックサブネットを持つ仮想プライベートクラウドからファイルシステムをマウントする場合、そのファイルシステムは外部からのアクセスが可能です。Amazon EFS を AWS Transfer Family で使用する場合、ファイルシステムがパブリックアクセスを許可していると、ファイルシステムとは異なるアカウントが所有する Transfer Family サーバーから受信したファイルシステムのアクセス要求がブロックされます。

## Amazon DynamoDB Streams
<a name="access-analyzer-ddb-stream"></a>

外部アクセスアナライザーについては、外部エンティティが DynamoDB ストリームにアクセスすることを許可するクロスアカウントアクションが DynamoDB ポリシーによって少なくとも 1 つ許可される場合、IAM Access Analyzer は検出結果を生成します。DynamoDB でサポートされるクロスアカウントアクションの詳細については、「Amazon DynamoDB デベロッパーガイド」の「[リソースベースのポリシーでサポートされる IAM アクション](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-iam-actions.html)」を参照してください。

内部アクセスアナライザーの場合、IAM Access Analyzer は、組織またはアカウント内のプリンシパル (ユーザーまたはロール) が指定された DynamoDB ストリームにアクセスできる場合に検出結果を生成します。

## Amazon DynamoDB テーブル
<a name="access-analyzer-ddb-table"></a>

外部アクセスアナライザーについては、DynamoDB ポリシーで外部エンティティが DynamoDB テーブルまたはインデックスにアクセスすることを許可するクロスアカウントアクションを少なくとも 1 つ許可している場合、IAM Access Analyzer は、DynamoDB テーブルの検出結果を生成します。DynamoDB でサポートされるクロスアカウントアクションの詳細については、「Amazon DynamoDB デベロッパーガイド」の「[リソースベースのポリシーでサポートされる IAM アクション](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-iam-actions.html)」を参照してください。

内部アクセスアナライザーの場合、IAM Access Analyzer は、組織またはアカウント内のプリンシパル (ユーザーまたはロール) が指定された DynamoDB テーブルにアクセスできる場合に検出結果を生成します。