

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 暗号化された Amazon S3 オブジェクトを分析する
<a name="discovery-supported-encryption-types"></a>

で Amazon Macie を有効にすると AWS アカウント、Macie は AWS のサービス [ユーザーに代わって Amazon Simple Storage Service (Amazon S3) およびその他の を呼び出すために必要なアクセス許可を Macie に付与するサービスにリンクされたロール](service-linked-roles.md)を作成します。Amazon S3 サービスにリンクされたロールを使用すると、サービスがユーザーに代わってアクションを実行するためのアクセス許可を手動で追加する必要がなくなる AWS のサービス ため、 のセットアッププロセスが簡素化されます。このタイプのロールの詳細については、「*AWS Identity and Access Management ユーザーガイド*」の「[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)」を参照してください。

Macie のサービスリンクロール`AWSServiceRoleForAmazonMacie`のアクセス許可ポリシーにより、Macie は S3 バケットとオブジェクトに関する情報の取得および S3 バケット内のオブジェクトの取得、分析などのアクションを実行することが許可されます。お客様のアカウントが組織の Macie 管理者アカウントである場合、ポリシーにより Macie が組織のメンバーアカウントに対してユーザーに代わってこれらのアクションを実行することも許可されます。

S3 オブジェクトが暗号化されている場合、Macie サービスリンクロールのアクセス許可ポリシーは通常、オブジェクトの復号化に必要なアクセス許可を Macie に付与します。ただし、これは使用された暗号化のタイプによって異なります。それは、Macie が適切な暗号化キーの使用を許可されているかどうかによっても異なる可能性があります。

**Topics**
+ [S3 オブジェクトの暗号化オプション](#discovery-supported-encryption-types-matrix)
+ [Macie にカスタマーマネージドの使用を許可する AWS KMS key](#discovery-supported-encryption-cmk-configuration)

## Amazon S3 オブジェクトの暗号化オプション
<a name="discovery-supported-encryption-types-matrix"></a>

Amazon S3 は S3 オブジェクトの複数の暗号化オプションをサポートしています。これらのオプションのほとんどで、Amazon Macie は、ユーザーアカウントの Macie サービスリンクロールを使用してオブジェクトを復号化できます。ただし、これはオブジェクトの暗号化に使用された暗号化のタイプによって異なります。

**Amazon S3 マネージドキーを用いたサーバー側の暗号化 (SSE-S3)**  
Amazon S3 マネージドキー (SSE-S3) を用いたサーバー側の暗号化を使用してオブジェクトが暗号化されている場合、Macie はそのオブジェクトを復号化できます。  
このタイプの暗号化の詳細については、Amazon Simple Storage Service ユーザーガイドの[Amazon S3 マネージドキーを用いたサーバー側の暗号化を使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)を参照してください。

** AWS KMS keys (DSSE-KMS および SSE-KMS) によるサーバー側の暗号化**  
オブジェクトが二層式サーバー側の暗号化または AWS マネージド AWS KMS key (DSSE-KMS または SSE-KMS) によるサーバー側の暗号化を使用して暗号化されている場合、Macie はオブジェクトを復号できます。  
オブジェクトが二層式サーバー側の暗号化またはカスタマーマネージド AWS KMS key (DSSE-KMS または SSE-KMS) によるサーバー側の暗号化を使用して暗号化されている場合、Macie は Macie に[キーの使用を許可する](#discovery-supported-encryption-cmk-configuration)場合にのみオブジェクトを復号できます。これは、外部キーストアで完全に管理される KMS キー AWS KMS と KMS キーで暗号化されたオブジェクトの場合に当てはまります。Macie が該当の KMS キー使用を許可されていない場合、Macie はオブジェクトのメタデータの保存およびレポートのみできます。  
これらのタイプの暗号化の詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[AWS KMS keysによる二層式サーバー側の暗号化 (DSSE-KMS) の使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingDSSEncryption.html)」と「[AWS KMS keysによるサーバー側の暗号化 (SSE-KMS) の使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)」を参照してください。  
 AWS KMS keys Macie がアカウントの S3 バケット内のオブジェクトを分析するためにアクセスする必要があるすべてのカスタマーマネージドのリストを自動的に生成できます。これを行うには、GitHub AWS KMS の [Amazon Macie Scripts リポジトリから入手できる Permission Analyzer ](https://github.com/aws-samples/amazon-macie-scripts)スクリプトを実行します。スクリプトは、 AWS Command Line Interface (AWS CLI) コマンドの追加スクリプトを生成することもできます。必要に応じてこれらのコマンドを実行し、指定した KMS キーに必要な設定設定とポリシーを更新できます。

**顧客提供のキーを用いたサーバー側の暗号化 (SSE-C)**。  
お客様が用意したキー (SSE-C) を用いたサーバー側の暗号化を使用してオブジェクトが暗号化されている場合、Macie はオブジェクトを復号化できません。Macie はオブジェクトのメタデータのみを保存およびレポートできます。  
このタイプの暗号化の詳細については、Amazon Simple Storage Service ユーザーガイドの[お客様が用意したキーによるサーバー側の暗号化の使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html)を参照してください。

**クライアント側の暗号化**  
クライアント側の暗号化を使用してオブジェクトが暗号化されている場合、Macie はオブジェクトを復号化できません。Macie はオブジェクトのメタデータのみを保存およびレポートできます。例えば、Macie はオブジェクトに関連付けられているオブジェクトとタグのサイズをレポートできます。  
Amazon S3 のコンテキストでのこのタイプの暗号化詳細については、Amazon Simple Storage Service ユーザーガイドの[クライアント側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)を参照してください。

Macie で[バケットインベントリをフィルタリング](monitoring-s3-inventory-filter.md)して、特定のタイプの暗号化を使用するオブジェクトを保存する S3 バケットを判別できます。また、新しいオブジェクトを保存するときに、デフォルトで特定のタイプのサーバー側の暗号化を使用するバケットを判別することもできます。次のテーブルは、バケットインベントリに適用してこの情報を検索できるフィルターの例を示しています。


| ...のバケットを表示するには | ...でこのフィルターを適用 | 
| --- | --- | 
| SSE-C 暗号化を使用するオブジェクトを保存する | [暗号化方法別のオブジェクト数] が [カスタマー提供]、From = 1 | 
| DSSE-KMS 暗号化を使用するオブジェクトを保存する | [暗号化方法別のオブジェクト数] が [AWS KMS で管理]、From = 1 | 
| SSE-S3 暗号化を使用するオブジェクトを保存する | [暗号化方法別のオブジェクト数] が [Amazon S3 で管理]、From = 1 | 
| クライアント側の暗号化を使用するオブジェクトを保存する (または暗号化されていない) | 暗号化によるオブジェクトカウントは、暗号化なしおよび From = 1 | 
| DSSE-KMS 暗号化を使用してデフォルトで新しいオブジェクトを暗号化する | [デフォルトの暗号化] = aws:kms:dsse | 
| SSE-KMS 暗号化を使用してデフォルトで新しいオブジェクトを暗号化する | デフォルトの暗号化= aws:kms | 
| SSE-S3 暗号化を使用してデフォルトで新しいオブジェクトを暗号化する | デフォルトの暗号化= AES256 | 

バケットが DSSE-KMS または SSE-KMS 暗号化を使用してデフォルトで新しいオブジェクトを暗号化するように設定されている場合は、どちら AWS KMS key を使用するかを決定することもできます。これを行うには、**S3 バケット**ページでバケットを選択します。バケット詳細パネルの**サーバー側の暗号化**の **[AWS KMS key]** フィールドを参照します。このフィールドには、Amazon リソースネーム (ARN) またはキーの一意の識別子 (キー ID) が表示されます。

## Macie にカスタマーマネージドの使用を許可する AWS KMS key
<a name="discovery-supported-encryption-cmk-configuration"></a>

Amazon S3 オブジェクトが、二層式サーバー側の暗号化またはカスタマーマネージド AWS KMS key (DSSE-KMS または SSE-KMS) によるサーバー側の暗号化を使用して暗号化されている場合、Amazon Macie はキーの使用が許可されている場合にのみオブジェクトを復号できます。このアクセスを提供する方法は、キーを所有するアカウントがオブジェクトを保存する S3 バケットも所有しているかどうかによって異なります。
+ 同じアカウントが AWS KMS key と バケットを所有している場合、アカウントのユーザーはキーのポリシーを更新する必要があります。
+ あるアカウントが を所有 AWS KMS key し、別のアカウントがバケットを所有している場合、キーを所有するアカウントのユーザーは、キーへのクロスアカウントアクセスを許可する必要があります。

このトピックでは、これらのタスクの実行方法を説明し、両方のシナリオの例を示します。カスタマーマネージドへのアクセスの許可の詳細については AWS KMS keys、「 *AWS Key Management Service デベロッパーガイド*」の[「KMS キーのアクセスとアクセス許可](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)」を参照してください。

### カスタマーマネージドキーへの同じアカウントのアクセスを許可する
<a name="discovery-supported-encryption-cmk-configuration-1account"></a>

同じアカウントが AWS KMS key と S3 バケットの両方を所有している場合、アカウントのユーザーはキーのポリシーにステートメントを追加する必要があります。追加のステートメントでは、アカウントの Macie サービスリンクロールがキーを使用してデータを復号することを許可する必要があります。キーポリシーの更新の詳細な情報については、*AWS Key Management Service デベロッパーガイド*の[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)を参照してください。

ステートメントにおいて:
+ `Principal` 要素は、 AWS KMS key と S3 バケットを所有するアカウントの Macie サービスにリンクされたロールの Amazon リソースネーム (ARN) を指定する必要があります。

  アカウントがオプトインの場合 AWS リージョン、ARN にはリージョンに適したリージョンコードも含める必要があります。例えば、アカウントが、リージョンコード *me-south-1* が設定されている中東 (バーレーン) リージョン内にある場合、`Principal` 要素は `arn:aws:iam::{{123456789012}}:role/aws-service-role/macie.me-south-1.amazonaws.com/AWSServiceRoleForAmazonMacie` を指定する必要があります。ここで、{{123456789012}}は、アカウントのアカウント ID です。Macie が現在利用可能なリージョンのリージョンコードのリストについては、「AWS 全般のリファレンス」の「[Amazon Macie エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/macie.html)」を参照してください。
+ `Action` 配列は、`kms:Decrypt` アクションを指定する必要があります。これは、キーで暗号化された S3 オブジェクトを復号するために Macie が実行できる唯一の AWS KMS アクションです。

 AWS KMS keyのポリシーに追加するステートメントの例を次に示します。

```
{
    "Sid": "Allow the Macie service-linked role to use the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{{123456789012}}:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie"
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

前の例では、以下のようになっています。
+ `Principal` 要素 の `AWS` フィールドは、アカウントの Macie サービスリンクロール`AWSServiceRoleForAmazonMacie`のARNを指定します。これにより、Macie サービスにリンクされたロールがポリシーステートメントで指定されたアクションを実行することを許可します。{{123456789012}} はアカウント ID の例です。この値をKMS キーと S3 バケットを所有するアカウントのアカウント ID に置き換えます。
+ `Action` 配列は、Macie サービスリンクロールが KMS キーを使用して実行することを許可されたアクション (キーで暗号化される暗号文を復号) を指定します。

このステートメントをキーポリシーのどこに追加するかは、ポリシーに現在含まれている構造と要素によって異なります。ステートメントをポリシーに追加するときに、構文が有効であることを確認します。キーポリシーは JSON 形式を使用します。これは、ステートメントをポリシーのどこに追加するかに応じて、ステートメントの前後にカンマを追加する必要があることも意味します。

### カスタマーマネージドキーへのクロスアカウントアクセスを許可する
<a name="discovery-supported-encryption-cmk-configuration-xaccount"></a>

あるアカウントが AWS KMS key (*キー所有者*) を所有し、別のアカウントが S3 バケット (*バケット所有者*) を所有している場合、キー所有者はバケット所有者に KMS キーへのクロスアカウントアクセスを提供する必要があります。これを行うには、キー所有者はまず、キーのポリシーにより、バケット所有者がキーの使用とキーの付与の作成の両方を行うことを許可することを確認します。次に、バケット所有者はキーの付与を作成します。付与 は、ポリシーツールであり、付与によって指定された条件が満たされている場合、 AWS プリンシパルに暗号化オペレーションで (KMS キー) の使用を許可します。この場合、許可は、関連する許可をバケット所有者のアカウントの Macie サービスリンクロールに委任します。

キーポリシーの更新の詳細な情報については、*AWS Key Management Service デベロッパーガイド*の[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)を参照してください。付与の詳細については、AWS Key Management Service デベロッパーガイドの[AWS KMSでの付与](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)を参照してください。

**ステップ 1: キーポリシーを変更する**  
キーポリシーでは、キー所有者は、ポリシーに 2 つのステートメントが含まれていることを確認する必要があります:
+ 最初のステートメントは、バケット所有者がキーを使用してデータを復号することを許可します。
+ 2 番目のステートメントは、バケット所有者が自らの (当該バケット所有者の) アカウントの Macie サービスリンクロールの許可を作成することを許可します。

最初のステートメントでは、`Principal` 要素は、バケット所有者のアカウントの ARN を指定する必要があります。`Action` 配列は、`kms:Decrypt` アクションを指定する必要があります。これは、キーで暗号化されたオブジェクトを復号するために Macie が実行できる唯一の AWS KMS アクションです。 AWS KMS keyのポリシーのこのステートメントの例を次に示します。

```
{
    "Sid": "Allow account {{111122223333}} to use the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:root"
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

前の例では、以下のようになっています。
+ `Principal` 要素の `AWS` フィールドは、バケット所有者のアカウントの ARN を指定します ({{111122223333}})。これにより、バケット所有者がポリシーステートメントで指定されたアクションを実行することを許可します。{{111122223333}} はアカウント ID の例です。この値をバケット所有者のアカウントのアカウント ID に置き換えます。
+ `Action` 配列は、バケット所有者が KMS キーを使用して実行することを許可されたアクション (キーで暗号化される暗号文を復号) を指定します。

キーポリシーの 2 番目のステートメントは、バケット所有者が自分のアカウントの Macie サービスにリンクされたロールの付与を作成することを許可します。このステートメントでは、`Principal` 要素は、バケットの所有者のアカウントの ARN を指定する必要があります。`Action` 配列は、`kms:CreateGrant` アクションを指定する必要があります。`Condition` 要素は、ステートメントで指定された `kms:CreateGrant` アクションへのアクセスをフィルタリングできます。 AWS KMS keyのポリシーのこのステートメントの例を次に示します。

```
{
    "Sid": "Allow account {{111122223333}} to create a grant",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:root"
    },
    "Action": [
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:GranteePrincipal": "arn:aws:iam::{{111122223333}}:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie"
        }
    }
}
```

前の例では、以下のようになっています。
+ `Principal` 要素の `AWS` フィールドは、バケット所有者のアカウントの ARN を指定します ({{111122223333}})。これにより、バケット所有者がポリシーステートメントで指定されたアクションを実行することを許可します。{{111122223333}} はアカウント ID の例です。この値をバケット所有者のアカウントのアカウント ID に置き換えます。
+ `Action` 配列は、バケット所有者が KMS キーを使用して実行することを許可されたアクションを指定します (キーの付与を作成)。
+ `Condition` 要素は、`StringEquals` [条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)と `kms:GranteePrincipal` [条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-policy-keys)を使用して、ポリシーステートメントで指定されたアクションへのアクセスをフィルタリングします。この場合、バケット所有者は指定された `GranteePrincipal` のためのみ許可を作成できます。これは、これらのバケット所有者のアカウントの Macie サービスリンクロールの ARN です。そのARNでは、{{111122223333}} はアカウント ID の例です。この値をバケット所有者のアカウントのアカウント ID に置き換えます。

  バケット所有者のアカウントがオプトインにある場合は AWS リージョン、Macie サービスにリンクされたロールの ARN に適切なリージョンコードも含めます。例えば、アカウントが、リージョンコード *me-south-1* が設定されている中東 (バーレーン) リージョンにある場合は、ARN で `macie.amazonaws.com` を `macie.me-south-1.amazonaws.com` と置き換えます。Macie が現在利用可能なリージョンのリージョンコードのリストについては、「AWS 全般のリファレンス」の「[Amazon Macie エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/macie.html)」を参照してください。

キー所有者がこれらのステートメントをキーポリシーのどこに追加するかは、ポリシーに現在含まれている構造と要素によって異なります。キー所有者がステートメントを追加するときは、構文が有効であることを確認する必要があります。キーポリシーは JSON 形式を使用します。これは、ステートメントをポリシーのどこに追加するかに応じて、キー所有者は各ステートメントの前後にカンマを追加する必要があることも意味します。

**ステップ 2: 許可を作成する**  
キー所有者が必要に応じてキーポリシーを更新した後、バケット所有者はキーの付与を作成する必要があります。この付与は、関連するアクセス許可を (バケット所有者の) アカウントの Macie サービスにリンクされたロールに委任します。バケット所有者が付与を作成する前に、バケット所有者はアカウントの `kms:CreateGrant` アクションの実施が許可されていることを確認する必要があります。このアクションにより、ロール所有者が既存のカスタマーマネージド AWS KMS keyに許可を追加することが許可されます。

許可を作成するには、バケット所有者は AWS Key Management Service API の [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) オペレーションを使用できます。バケット所有者が付与を作成するときに、必要なパラメータに次の値を指定する必要があります。
+ `KeyId` – KMS キーの ARN。KMS キーへのクロスアカウントアクセスでは、この値は ARN である必要があります。キー ID にすることはできません。
+ `GranteePrincipal` – アカウントの Macie サービスリンクロール (`AWSServiceRoleForAmazonMacie`) の ARN この値は `arn:aws:iam::{{111122223333}}:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie` である必要があります。ここで、{{111122223333}} は、バケット所有者のアカウントのアカウント ID です。

  アカウントがオプトインリージョン内にある場合、ARN には適切なリージョンコードを含める必要があります。例えば、アカウントが、リージョンコード me-south-1 が設定されている中東 (バーレーン) リージョン内にある場合、ARN は `arn:aws:iam::{{111122223333}}:role/aws-service-role/macie.me-south-1.amazonaws.com/AWSServiceRoleForAmazonMacie` である必要があります。ここで、{{111122223333}} は、バケット所有者のアカウント ID です。
+ `Operations` – AWS KMS 復号アクション (`Decrypt`)。これは、KMS キーで暗号化されたオブジェクトを復号するために Macie が実行できる唯一の AWS KMS アクションです。

 AWS Command Line Interface (AWS CLI) を使用してカスタマーマネージド KMS キーの許可を作成するには、[create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) コマンドを実行します。以下の例のように指定します。この例は Microsoft Windows 用にフォーマットされており、読みやすさを向上させるためにキャレット (^) の行連結文字を使用します。

```
C:\> aws kms create-grant ^
--key-id {{arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab}} ^
--grantee-principal {{arn:aws:iam::111122223333:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie}} ^
--operations "Decrypt"
```

コードの説明は以下のとおりです。
+ `key-id` は、付与を適用する KMS キーの ARN を指定します。
+ `grantee-principal` は、許可によって指定されたアクションの実行を許可されたアカウントの Macie サービスリンクロールの ARN を指定します。この値は、キーポリシーの 2 番目のステートメントの `kms:GranteePrincipal` 条件によって指定された ARN と一致する必要があります。
+ `operations` は、許可が、指定されたプリンシパルが実行することを許可するアクション (KMS キーで暗号化される暗号文の復号) を指定します。

コマンドが正常に実行された場合は、以下のような出力が表示されます。

```
{
    "GrantToken": "<grant token>",
    "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2"
}
```

ここで、`GrantToken` は、作成された付与を表す、一意で、非シークレットで、可変長の base64 でエンコードされた文字列であり、`GrantId` は、付与の一意の識別子です。