削除が予定されている AWS Secrets Manager シークレットへのアクセスをモニタリングする - AWS Secrets Manager

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

削除が予定されている AWS Secrets Manager シークレットへのアクセスをモニタリングする

AWS CloudTrail、Amazon CloudWatch Logs、および Amazon Simple Notification Service (Amazon SNS) の組み合わせを使用して、削除保留中のシークレットへのアクセス試行を通知するアラームを作成できます。アラームから通知を受け取ると、削除が本当に必要かどうかを時間をかけて判断するために、シークレットの削除をキャンセルしなければならない場合があります。調査の結果、シークレットが実際にまだ必要であるため、シークレットが保存されたままになる可能性があります。または、使用する新しいシークレットの詳細を使用して、ユーザーを更新する必要がある場合があります。

次の手順では、 GetSecretValueオペレーションのリクエストによって特定のエラーメッセージが CloudTrail ログファイルに書き込まれたときに通知を受け取る方法について説明します。他の API オペレーションは、アラームをトリガーせずにシークレットで実行できます。この CloudWatch アラームは、古い認証情報を使用しているユーザーまたはアプリケーションを示す可能性のある使用状況を検出します。

これらの手順を開始する前に、 AWS Secrets Manager API リクエストをモニタリングする AWS リージョン アカウントと アカウント CloudTrail で を有効にする必要があります。手順については、「AWS CloudTrail ユーザーガイド」の「Creating a trail for the first time」を参照してください。

ステップ 1: CloudWatch Logs への CloudTrail ログファイル配信を設定する

CloudTrail ログファイルの CloudWatch Logs への配信を設定する必要があります。これにより、 CloudWatch Logs は Secrets Manager API リクエストを監視して、削除保留中のシークレットを取得できます。

CloudWatch Logs への CloudTrail ログファイル配信を設定するには
  1. https://console.aws.amazon.com/cloudtrail/ で CloudTrail コンソールを開きます。

  2. 上部のナビゲーションバーで、シークレットをモニタリング AWS リージョン する を選択します。

  3. 左側のナビゲーションペインで、証跡 を選択し、 に設定する証跡の名前を選択します CloudWatch。

  4. 証跡設定ページで、CloudWatch ログセクションまで下にスクロールし、編集アイコン () を選択します Remote control icon with power, volume, and channel buttons.

  5. [New or existing log group] (新規または既存のロググループ)にロググループの名前 (CloudTrail/MyCloudWatchLogGroup) を入力します。

  6. IAM ロール では、CloudTrail_CloudWatchLogs_Role という名前のデフォルトロールを使用できます。このロールには、ロググループに CloudTrail イベントを配信するために必要なアクセス許可を持つデフォルトのロールポリシーがあります。

  7. [Continue] (続行) を選択して設定を保存します。

  8. AWS CloudTrail では、アカウントの API アクティビティに関連する CloudTrail イベントを CloudWatch ロググループページに配信しを許可する を選択します。

ステップ 2: アラームを作成する CloudWatch

Secrets Manager GetSecretValue API オペレーションが削除保留中のシークレットへのアクセスをリクエストしたときに通知を受け取るには、 CloudWatch アラームを作成して通知を設定する必要があります。

CloudWatch アラームを作成するには
  1. https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールにサインインします。

  2. 上部のナビゲーションバーで、シークレットをモニタリングする AWS リージョンを選択します。

  3. 左のナビゲーションペインで [Logs] (ログ) を選択します。

  4. ロググループ のリストで、前の手順で作成したロググループの横にある CloudTrail/MyCloudWatchLogGroup などのチェックボックスをオンにします。その後、[Create Metric Filter] (メトリクスフィルタの作成) を選択します。

  5. [Filter Pattern] (フィルタパターン) に、以下を入力するか貼り付けます。

    { $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }

    [Assign Metric] (メトリクスの割り当て) を選択します。

  6. [Create Metric Filter and Assign a Metric] (メトリクスフィルタの作成とメトリクスの割り当て) ページで、次の操作を実行します。

    1. [Metric Namespace] (メトリクス名前空間) に「CloudTrailLogMetrics」と入力します。

    2. [Metric Name] (メトリクス名) に「AttemptsToAccessDeletedSecrets」と入力します。

    3. [Show advanced metric settings] (メトリクスの詳細設定の表示) を選択した後、必要に応じて [Metric Value] (メトリクス値) に「1」と入力します。

    4. [Create Filter] (フィルタの作成) を選択します。

  7. フィルタボックスで、[Create Alarm] (アラームの作成) を選択します。

  8. [Create Alarm] (アラームの作成) ウィンドウで、以下の操作を行います。

    1. [Name] (名前) に、「AttemptsToAccessDeletedSecretsAlarm」と入力します。

    2. [Whenever:] (次の時:) の [is:] (が:) で [>=] を選択し、「1」と入力します。

    3. [Send notification to:] (通知の送信:) の横で、次のいずれかを実行します。

      • 新しい Amazon SNS トピックを作成し使用するには、[New list] (新しいリスト) を選択し、新しいトピック名を入力します。[Email list:] (E メールリスト:) に、E メールアドレスを少なくとも 1 つ入力します。カンマで区切って、複数の E メールアドレスを入力できます。

      • 既存の Amazon SNS トピックを使用するには、使用するトピックの名前を選択します。リストが存在しない場合は、[Select list] (リストの選択) を選択します。

    4. [Create Alarm] (アラームの作成) を選択します。

ステップ 3: アラームを CloudWatchテストする

アラームをテストするには、シークレットを作成し、それを削除用にスケジュールします。次に、シークレット値の取得を試みます。 アラームで設定したアドレスに間もなく E メールが届きます。これは、削除予定のシークレットの使用について警告します。