翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
KMS キーの過去の使用状況を確認する
モニタリングと監査の目的で、KMS キーが過去にどのように使用されたかを知りたい場合があります。たとえば、KMS キーを無効にしたり、削除をスケジュールしたりする前に、KMS キーがまだアクティブに使用されているかどうかを判断したり、アカウント内の未使用のキーを特定したりできます。次の戦略は、KMS キーの過去の使用状況を判断するのに役立ちます。
警告
過去の使用状況を判断するためのこれらの戦略は、 AWS プリンシパルと AWS KMS オペレーションに対してのみ有効です。への API コールを含まないキーの使用を検出することはできません AWS KMS。対称 KMS キーからデータキーが生成された後、 の外部でのローカル暗号化または復号化のその後の使用 AWS KMS は、最後の使用情報に反映されません。同様に、これらの戦略では、 の外部で非対称 KMS キーのパブリックキーの使用を検出することはできません AWS KMS。公開キーの暗号化に使用される非対称 KMS キーを削除する際の特別なリスク (復号できない暗号テキストの作成など) の詳細については、Deleting asymmetric KMS keys を参照してください。
トピック
KMS キーのアクセス許可内容を確認し、潜在的な使用の範囲を判断する
KMS キーに現在アクセスできるユーザーまたは内容を特定すると、KMS キーがどの程度広く使用されているか、またまだ必要かどうかを判断できます。現在 KMS キーにアクセスできるユーザーまたはユーザーを確認するには、「」を参照してくださいへのアクセスの確認 AWS KMS keys。
KMS キーで最後に実行された暗号化オペレーションを調べる
AWS KMS は、各 KMS キーで最後に成功した暗号化オペレーションの使用情報を、関連する CloudTrail イベント ID とともに提供します。これにより、未使用の KMS キーを識別するプロセスが簡単になります。また、キーポリシーで kms:TrailingDaysWithoutKeyUsage 条件キーを使用して、最近使用したキーが誤って無効化されたり、削除がスケジュールされたりしないようにすることもできます。
AWS マネジメントコンソール AWS CLI、、または AWS KMS API を使用して、KMS キーで最後に成功した暗号化オペレーションを表示できます。
注記
特定の AWS サービスは、データ保護のために KMS キーに依存するリソースを作成しますが、そのキーに対して暗号化オペレーションを頻繁に呼び出しません。例えば、Amazon EC2 サービスは、ボリュームがインスタンス AWS KMS にアタッチされている場合にのみ、暗号化された Amazon EBS ボリュームのデータキーを復号するために を呼び出します。このような場合、KMS キーを削除できるかどうかを判断するために、最後の使用状況情報だけに依存しないでください。Amazon EBS ボリュームを保護する KMS キーを削除しても、既にアタッチされている Amazon EBS ボリュームは中断されませんが、暗号化された Amazon EBS ボリュームを別の Amazon EC2 インスタンスにアタッチしようとすると失敗します。
使用状況追跡期間について
AWS KMS は、各 KMS キーで最後に成功した暗号化オペレーションのみを追跡します。暗号化オペレーションが実行されてから使用量が記録されるまでに、最大 1 時間の遅延が発生する場合があります。
KMS キーの最後の使用状況情報を確認すると、レスポンスには追跡開始日が含まれます。TrackingStartDate は、 がそのキーの暗号化アクティビティの記録 AWS KMS を開始した日付です。この日付をキーの作成日とともに使用履歴を確認するには、キーの作成日を追跡開始日と比較します。
-
最後の使用状況情報が存在する場合、キーは追跡が開始されてから暗号化オペレーションに使用されています。レスポンスには、オペレーションタイプ、タイムスタンプ、および関連する AWS CloudTrail イベント ID が含まれます。
-
最後の使用状況情報が空の場合、キーは追跡が開始されてから暗号化オペレーションを記録しません。キーの作成日を と比較して
TrackingStartDate、これが何を意味するかを判断します。-
キーが 以降に作成された場合
TrackingStartDate、キーは作成後に暗号化オペレーションに使用されていません。 -
キーが より前に作成された場合
TrackingStartDate、追跡が開始されてから使用されているキーの記録はありません。ただし、追跡が開始される前にキーが使用された可能性があります。キーが以前に使用されたかどうかを確認するには、過去の AWS CloudTrail ログを調べます。
-
警告
未使用のキーを削除するときは、最後の使用状況情報だけに頼らないでください。代わりに、最初にキーを無効にし、DisabledExceptionエントリをモニタリング AWS CloudTrail します。これは、無効にしている間にキーの使用を試みたことを示します。これにより、潜在的な依存関係とワークロードの障害を特定できます。
暗号化オペレーションの追跡
次の成功した暗号化オペレーションのみが、最後の使用状況情報をレポートするために追跡および記録されます。非暗号化オペレーションは除外されます。
-
Decrypt -
DeriveSharedSecret -
Encrypt -
GenerateDataKey -
GenerateDataKeyPair -
GenerateDataKeyPairWithoutPlaintext -
GenerateDataKeyWithoutPlaintext -
GenerateMac -
ReEncrypt -
Sign -
Verify -
VerifyMac
その他の考慮事項
使用状況情報を使用する場合は、次の点に注意してください。
-
マルチリージョン KMS キー — マルチリージョン KMS キーの場合、プライマリキーとレプリカキーは最後の使用状況情報を個別に追跡します。マルチリージョンキーセットの各キーは、独自の最後の使用状況情報を保持します。
-
ReEncrypt オペレーション — この
ReEncryptオペレーションでは、復号用のソースキーと暗号化用の送信先キーの 2 つのキーを使用します。最後の使用状況情報は、両方のキーについて個別に記録されます。各キーには、それぞれのキー所有者のアカウントからの CloudTrail イベント ID が割り当てられます。
次の方法を使用して、最後の使用状況情報を表示できます。
KMS キーで最後に成功した暗号化オペレーションは、各 KMS キーの詳細ページで確認できます。KMS キーの詳細ページを表示する手順については、「」を参照してくださいKMS キーの詳細にアクセスして一覧表示する。
GetKeyLastUsage オペレーションは、指定された KMS キーで実行された最後の暗号化オペレーションの使用情報を返します。KMS キーを識別するには、キー ID またはキー ARN を使用します。
たとえば、次の の呼び出しは、キー ID が 1234abcd-12ab-34cd-56ef-1234567890ab の KMS キーに関する使用状況情報GetKeyLastUsageを取得します。
$ aws kms get-key-last-usage --key-id "1234abcd-12ab-34cd-56ef-1234567890ab" { "KeyCreationDate": 1773253425.56, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "TrackingStartDate": 1773253425.56, "KeyLastUsage": { "Timestamp": 1773253497.0, "Operation": "Encrypt", "KmsRequestId": "040cce3e-9ef3-4651-b8cf-e47c9bafdc9b", "CloudTrailEventId": "2cfd5892-ea8c-4342-ad49-4b9594b06a8b" } }
対照的に、次の の呼び出しでは、キー ID が 0987dcba-09fe-87dc-65ba-ab0987654321 の KMS キーの使用情報GetKeyLastUsageが表示されません。
$ aws kms get-key-last-usage --key-id "0987dcba-09fe-87dc-65ba-ab0987654321" { "KeyCreationDate": 1672531200.0, "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "TrackingStartDate": 1773253425.56, "KeyLastUsage": {} }
AWS CloudTrail ログを調べて過去の使用状況を確認する
KMS キーの使用履歴を使用して、特定の KMS キーで暗号化された暗号文があるかどうかを判断できます。
すべての AWS KMS API アクティビティは AWS CloudTrail ログファイルに記録されます。KMS キーがあるリージョンに CloudTrail 証跡を作成している場合は、CloudTrail ログファイルを調べて、特定の KMS キーのすべての AWS KMS API アクティビティの履歴を表示できます。トレイルを持っていない場合でも、 CloudTrail イベント履歴で最近のイベントを表示できます。が CloudTrail AWS KMS を使用する方法の詳細については、「」を参照してくださいを使用した AWS KMS API コールのログ記録 AWS CloudTrail。
次の例は、KMS キーを使用して、Amazon Simple Storage Service (Amazon S3) に保存されているオブジェクトを保護するときに生成される CloudTrail ログエントリを示しています。この例では、KMS キー (SSE-KMS) を使用したサーバー側の暗号化を使用してデータを保護し、オブジェクトを Amazon S3 にアップロードします。SSE-KMS を使用して Amazon S3 にオブジェクトをアップロードする場合は、オブジェクトの保護に使用する KMS キーを指定します。Amazon S3 は AWS KMS GenerateDataKeyオペレーションを使用してオブジェクトの一意のデータキーをリクエストし、このリクエストイベントは CloudTrail に次のようなエントリで記録されます。
{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-09-10T23:12:48Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admins", "accountId": "111122223333", "userName": "Admins" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-09-10T23:58:18Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "cea04450-5817-11e5-85aa-97ce46071236", "eventID": "80721262-21a5-49b9-8b63-28740e7ce9c9", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
後で Amazon S3 からこのオブジェクトをダウンロードすると、Amazon S3 は指定された KMS キーを使用してオブジェクトのデータキーを復号 AWS KMS するDecryptリクエストを に送信します。これを行うと、CloudTrail ログファイルに次のようなエントリが含まれます。
{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-09-10T23:12:48Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admins", "accountId": "111122223333", "userName": "Admins" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-09-10T23:58:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}}, "responseElements": null, "requestID": "db750745-5817-11e5-93a6-5b87e27d91a0", "eventID": "ae551b19-8a09-4cfc-a249-205ddba330e3", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
これらのログエントリを評価すると、特定の KMS キーの過去の使用状況を明らかにし、その KMS キーを削除する必要があるかどうかを判断できる場合があります。
CloudTrail ログファイルに AWS KMS API アクティビティがどのように表示されるかのその他の例については、「」を参照してくださいを使用した AWS KMS API コールのログ記録 AWS CloudTrail。CloudTrail の詳細については、AWS CloudTrail ユーザーガイドを参照してください。