

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控何時存取排程刪除的 AWS Secrets Manager 秘密
<a name="monitoring_cloudwatch_deleted-secrets"></a>

您可以使用 AWS CloudTrail Amazon CloudWatch Logs 和 Amazon Simple Notification Service (Amazon SNS) 的組合來建立警示，在嘗試存取待刪除秘密時通知您。如果您收到警示的通知，您可以取消秘密的刪除，讓您有更多時間決定是否真的想要刪除該秘密。您調查到最後可能會還原秘密，因為您仍需要此秘密。或者，您可能需要為使用新秘密的使用者，提供最新的詳細資訊。

下列程序說明在對 `GetSecretValue` 操作提出請求而導致特定的錯誤訊息寫入 CloudTrail 日誌檔時，如何收到通知。可對秘密執行其他 API 操作，無需觸發警示。此 CloudWatch 警示會偵測可能指出使用過期登入資料之人員或應用程式的使用情況。

在開始這些程序之前，您必須在您要監控 AWS Secrets Manager API 請求的 AWS 區域 和 帳戶中開啟 CloudTrail。如需說明，請前往 *AWS CloudTrail 使用者指南*中的[首次建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)。

## 步驟 1：設定 CloudTrail 日誌檔案交付至 CloudWatch Logs
<a name="monitoring_cloudwatch_deleted-secrets_part1"></a>

您必須將 CloudTrail 日誌檔設定為交付到 CloudWatch Logs。這樣做可讓 CloudWatch Logs 監控它們，以使 Secrets Manager API 請求擷取待刪除的秘密。

**設定將 CloudTrail 日誌檔交付至 CloudWatch Logs**

1. 前往 [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) 開啟 CloudTrail 主控台。

1. 在頂端導覽列上，選擇 AWS 區域 以監控秘密。

1. 在左側導覽窗格中，選擇 **Trails** (追蹤)，然後選擇要為 CloudWatch 設定的追蹤名稱。

1. 在 **Trails Configuration** (追蹤組態) 頁面，向下捲動到 **CloudWatch Logs** 部分，然後選擇編輯圖示 (![Edit pencil icon](http://docs.aws.amazon.com/zh_tw/secretsmanager/latest/userguide/images/edit-pencil-icon.png))。

1. 在 **New or existing log group (新建或現有的日誌群組)** 中，輸入日誌群組的名稱，例如 **CloudTrail/MyCloudWatchLogGroup**。

1. 對於 **IAM role** (IAM 角色)，您可以使用名為 **CloudTrail\_CloudWatchLogs\_Role** 的預設角色。此角色有預設的角色政策，內含將 CloudTrail 事件交付至日誌群組所需的許可。

1. 選擇 **Continue** (繼續) 來儲存您的組態。

1. 在 **AWS CloudTrail 將與帳戶中 API 活動相關的 CloudTrail 事件交付至 CloudWatch Logs 日誌群組**頁面，選擇 **Allow** (允許)。

## 步驟 2：建立 CloudWatch 警示
<a name="monitoring_cloudwatch_deleted-secrets_part2"></a>

若要在 Secrets Manager `GetSecretValue` API 操作請求存取待刪除的秘密時收到通知，您必須建立 CloudWatch 警示並設定通知。

**建立 CloudWatch 警示**

1. 前往 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 登入 CloudWatch 主控台。

1. 在頂端導覽列上，選擇您要監控秘密 AWS 的區域。

1. 在左側導覽窗格中，選擇 **Logs (日誌)**。

1. 在 **Log Groups (日誌群組)** 中，選取您在之前程序中建立的日誌群組旁的核取方塊，例如 **CloudTrail/MyCloudWatchLogGroup**。然後，選擇 **Create Metric Filter** (建立指標篩選條件)。

1. 在 **Filter Pattern** (篩選條件模式) 中，請輸入或貼上下列內容：

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

   選擇 **Assign Metric (指派指標)**。

1. 在 **Create Metric Filter and Assign a Metric** (建立指標篩選條件並指定指標) 頁面上，請執行下列動作：

   1. 針對 **Metric Namespace (指標命名空間)**，輸入 **CloudTrailLogMetrics**。

   1. 針對 **Metric Name (指標名稱)**，輸入 **AttemptsToAccessDeletedSecrets**。

   1. 選擇 **Show advanced metric settings (顯示進階指標設定)**，然後在必要時於 **Metric Value (指標值)** 中輸入 **1**。

   1. 選擇 **Create Filter** (建立篩選條件)。

1. 在篩選條件方塊中，選擇 **Create Alarm** (建立警示)。

1. 在 **Create Alarm** (建立警示) 視窗中，請執行下列動作：

   1. 在 **Name (名稱)** 輸入 **AttemptsToAccessDeletedSecretsAlarm**。

   1.  在 **Whenever: (無論何時：)** 的 **is: (是)** 中，選擇 **>=**，然後輸入 **1**。

   1. 在 **Send notification to:** (傳送通知給：) 欄位旁，執行以下其中一項：
      + 若要建立和使用新的 Amazon SNS 主題，請選擇 **New list** (新清單)，然後輸入新的主題名稱。對於 **Email list:** (電子郵件清單：) 欄位，請輸入至少一個電子郵件地址。您可以利用逗號分隔來輸入多個電子郵件地址。
      + 若要使用現有的 Amazon SNS 主題，請選擇要使用的主題名稱。如果清單不存在，請選擇 **Select list (選取清單)**。

   1. 選擇**建立警示** 。

## 步驟 3：測試 CloudWatch 警示
<a name="monitoring_cloudwatch_deleted-secrets_part3"></a>

若要測試警示，請建立秘密，然後將其排定刪除。接著嘗試擷取秘密值。您很快就會在警示中設定的地址收到電子郵件。它會提醒您使用的秘密已排定要刪除。