AWS KMS キーの過去の使用状況を特定する方法を教えてください。

所要時間1分
0

AWS Key Management Service (AWS KMS) キーの過去の使用状況を特定したいです。

解決策

アクティブではない KMS キーを直接識別することはできません。ただし、AWS CloudTrail と Amazon Athena を使用してキーの使用状況を追跡することはできます。

CloudTrail イベント履歴を使用する

CloudTrail コンソールを使用すると、AWS リージョン内の過去 90 日間の管理イベントを確認できます。90 日が経過すると、イベントはイベント履歴に表示されなくなります。

次の手順を実行します。

  1. CloudTrail コンソールを開きます。
  2. リージョンを選択します。
  3. ナビゲーションペインで [イベント履歴] を選択します。
  4. [イベント履歴]ページの [ルックアップ属性] で、[イベントソース] を選択します。次に、検索フィールドに kms.amazonaws.com と入力すると、AWS KMS API コールが表示されます。
  5. [日付と時刻で絞り込む] フィールドで時間範囲を選択し、最近のアクティビティを確認します。

各イベントの [イベントレコード] を確認することで、キーの ARN、ユーザー ID、呼び出し元サービスを特定できます。

注: AWS KMS イベントが複数ある場合、この方法では時間がかかる場合があります。

Athena を使用して CloudTrail ログをクエリする

次の手順を実行します。

  1. CloudTrail ログから Athena テーブルを作成します。
  2. AWS KMS API コールを取得してキーの ARN で絞り込むには、次の Athena クエリを実行します。
    SELECT
        eventName,
        COUNT(eventName) AS NumberOfChanges,
        eventSource,
        resources
    FROM
        "default"."your-table-name"
    WHERE
        eventSource = 'kms.amazonaws.com' AND
      ARRAY_JOIN(TRANSFORM(resources, x -> x.arn), '') LIKE '%kms-key-id%'
        OR CAST(requestParameters AS VARCHAR) LIKE '%kms-key-id%'
    GROUP BY
        eventName,
        eventSource,
        resources
    ORDER BY
        NumberOfChanges DESC

注: 上記のコード例では、値を実際の Athena テーブル名と KMS キー ID の値に置き換えてください。

特定の期間で絞り込むには、WHERE 句に条件を追加します。

AND eventtime >= 'YYYY-MM-DDT00:00:00Z' AND eventtime <= 'YYYY-MM-DDT00:00:00Z'

注: Athena では、実行したクエリに対して料金が発生します。

関連情報

AWS CloudTrail で AWS KMS API コールをログ記録する

LookupEvents

AWS KMS キーを監視する

KMS キーの過去の使用状況を判断する

AWS公式
AWS公式更新しました 2ヶ月前
コメントはありません

関連するコンテンツ