

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

# 在 中記錄和監控 AWS RAM
<a name="security-monitoring"></a>

監控是維護 和 AWS 解決方案的可靠性、可用性 AWS RAM 和效能的重要部分。您應該從 AWS 解決方案的所有部分收集監控資料，以便在發生多點失敗時更輕鬆地偵錯。 AWS 提供數種工具來監控您的 AWS RAM 資源並回應潛在事件：

**Amazon EventBridge**  
提供near-real-time的系統事件串流，描述 AWS 資源的變更。EventBridge 啟用自動的事件驅動運算，因為您可以在這些事件發生時，編寫監看特定事件與在其他 AWS 服務內觸發自動化動作的規則。如需詳細資訊，請參閱[AWS RAM 使用 EventBridge 進行監控](using-eventbridge.md)。

**AWS CloudTrail**  
擷取由 發出或代表發出的 API 呼叫和相關事件， AWS 帳戶 並將日誌檔案交付至您指定的 Amazon S3 儲存貯體。您可以識別呼叫的使用者和帳戶 AWS、進行呼叫的來源 IP 地址，以及呼叫的時間。如需詳細資訊，請參閱[使用 記錄 AWS RAM API 呼叫 AWS CloudTrail](cloudtrail-logging.md)。

# AWS RAM 使用 EventBridge 進行監控
<a name="using-eventbridge"></a>

使用 Amazon EventBridge，您可以在其中設定特定事件的自動通知 AWS RAM。來自 的事件 AWS RAM 會以近乎即時的方式交付至 EventBridge。您可以設定 EventBridge 來監控事件並叫用目標，以回應指出資源共享變更的事件。變更資源共用會觸發資源共用擁有者的事件，以及授予資源共用存取權的委託人。

當您建立事件模式時，來源是 `aws.ram`。

**注意**  
請小心撰寫程式碼，這些程式碼取決於這些事件。這些事件無法保證，但會盡最大努力發出。如果 AWS RAM 嘗試發出事件時發生錯誤，服務會再嘗試數次。不過，它可能會逾時，並導致該特定事件遺失。

如需詳細資訊，請參閱「Amazon EventBridge 使用者指南」。

## 範例：資源共用失敗的提醒
<a name="using-eventbridge-example-sharing"></a>

考慮您希望與組織中的其他帳戶共用 Amazon EC2 容量保留的情況。這樣做是降低成本的好方法。

不過，如果您不符合[共用容量保留的所有先決條件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-sharing.html#sharing-cr-prereq)，則可能會無提示地無法執行與共用資源相關的非同步任務。如果共用操作失敗，而其他帳戶中的使用者嘗試啟動具有其中一個容量保留的執行個體，則 Amazon EC2 就像容量保留已滿一樣，並改為以隨需執行個體的形式啟動執行個體。這可能會導致高於預期的成本。

若要監控資源共用失敗，請設定 Amazon EventBridge 規則，以便在 AWS RAM 資源共用失敗時提醒您。下列教學程序使用 Amazon Simple Notification Service (SNS) 主題，在 EventBridge 發現資源共用失敗時通知所有主題訂閱者。如需 Amazon SNS 的詳細資訊，請參閱 [Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/)。

**建立規則，在資源共用失敗時通知您**

1. 開啟 [Amazon EventBridge 主控台](https://console.aws.amazon.com/events)。

1. 在導覽窗格中，選擇**規則**，然後在**規則**清單中，選擇**建立規則**。

1. 輸入規則的名稱和選用描述，然後選擇**下一步**。

1. 向下捲動至**事件模式**方塊，然後選擇**自訂模式 (JSON 編輯器）**。

1. 複製並貼上下列事件模式：

   ```
   {
     "source": ["aws.ram"],
     "detail-type": ["Resource Sharing State Change"],
     "detail": {
       "event": ["Resource Share Association"],
       "status": ["failed"]
     }
   }
   ```

1. 選擇**下一步**。

1. 針對**目標 1**，在**目標類型**下，選擇 **AWS 服務**。

1. 在**選取目標**下，選擇 **SNS 主題**。

1. 針對**主題**，選擇您要發佈通知的 SNS 主題。本主題必須已存在。

1. 選擇**下一步**，然後再次選擇**下一步**，查看 以檢閱您的組態。

1. 當您對選項感到滿意時，請選擇**建立規則**。

1. 返回**規則**頁面，確保您的新規則標記為**已啟用**。如有必要，請選擇規則名稱旁的選項按鈕，然後選擇**啟用**。

只要啟用該規則，任何失敗 AWS RAM 的資源共享都會對您發佈主題的收件人產生 SNS 提醒。

您也可以嘗試從這些帳戶在 [Amazon EC2 主控台中檢視](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-sharing.html#identifying-shared-cr)共用容量保留，以確認共用容量保留可供您共用的帳戶存取。

# 使用 記錄 AWS RAM API 呼叫 AWS CloudTrail
<a name="cloudtrail-logging"></a>

AWS RAM 已與 服務整合 AWS CloudTrail，此服務提供使用者、角色或 AWS 服務在其中採取之動作的記錄 AWS RAM。CloudTrail 會將 AWS RAM 的所有 API 呼叫擷取為事件。擷取的呼叫包括來自 AWS RAM 主控台的呼叫，以及對 AWS RAM API 操作的程式碼呼叫。如果您建立線索，您可以將 CloudTrail 事件持續交付到您指定的 Amazon S3 儲存貯體，包括 的事件 AWS RAM。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的**事件歷史記錄**檢視最新事件。使用 CloudTrail 所收集的資訊來判斷提出的請求 AWS RAM、請求 IP 地址、請求者、提出請求的時間，以及其他詳細資訊。

如需有關 CloudTrail 的相關資訊，請參閱 [AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## AWS RAM CloudTrail 中的資訊
<a name="ram-info-in-cloudtrail"></a>

當您建立帳戶 AWS 帳戶 時，您的 上會啟用 CloudTrail。當活動在 中發生時 AWS RAM，該活動會與**事件歷史記錄**中的其他 AWS 服務事件一起記錄在 CloudTrail 事件中。您可以在 中檢視、搜尋和下載最近的事件 AWS 帳戶。如需詳細資訊，請參閱《使用 CloudTrail 事件歷史記錄檢視事件》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

如需您 AWS 帳戶帳戶中正在進行事件的記錄 (包含 AWS RAM的事件)，請建立追蹤。*線索*能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。根據預設，當您在主控台中建立線索時，線索會套用至所有 AWS 區域。該追蹤會記錄來自 AWS 分割區中所有區域的事件，並將日誌檔案交付到您指定的 Amazon S3 儲存貯體。此外，您可以設定其他 AWS 服務，以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。如需詳細資訊，請參閱下列內容：
+ [為您的 建立線索 AWS 帳戶](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [AWS 服務 與 CloudTrail 日誌的整合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [設定 CloudTrail 的 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [接收多個區域的 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)及[接收多個帳戶的 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

CloudTrail 會記錄所有 AWS RAM 動作，並記錄在 [AWS RAM API 參考](https://docs.aws.amazon.com/ram/latest/APIReference/)中。例如，對 `CreateResourceShare`、`AssociateResourceShare` 以及 `EnableSharingWithAwsOrganization` 動作發出的呼叫會在 CloudTrail 日誌檔案中產生項目。

每個事件或日誌項目都會包含可幫助您確定請求發出者的資訊。
+ AWS 帳戶 根憑證
+ 來自 AWS Identity and Access Management (IAM) 角色或聯合身分使用者的臨時安全登入資料。
+ IAM 使用者提供的長期安全憑證。
+ 另一項 AWS 服務。

如需詳細資訊，請參閱 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 了解 AWS RAM 日誌檔案項目
<a name="understanding-ram-entries"></a>

追蹤是一種組態，能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌專案。一個事件為任何來源提出的單一請求，並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔並非依公有 API 呼叫的堆疊追蹤排序，因此不會以任何特定順序出現。

以下範例顯示 `CreateResourceShare` 動作的 CloudTrail 日誌項目。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "NOPIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::111122223333:user/admin",
        "accountId": "111122223333",
        "accessKeyId": "BCDIOSFODNN7EXAMPLE",
        "userName": "admin"
    },
    "eventTime": "2018-11-03T04:23:19Z",
    "eventSource": "ram.amazonaws.com",
    "eventName": "CreateResourceShare",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.1.0",
    "userAgent": "aws-cli/1.16.2 Python/2.7.10 Darwin/16.7.0 botocore/1.11.2",
    "requestParameters": {
        "name": "foo"
    },
    "responseElements": {
        "resourceShare": {
            "allowExternalPrincipals": true,
            "name": "foo",
            "owningAccountId": "111122223333",
            "resourceShareArn": "arn:aws:ram:us-east-1:111122223333:resource-share/EXAMPLE0-1234-abcd-1212-987656789098",
            "status": "ACTIVE"
        }
    },
    "requestID": "EXAMPLE0-abcd-1234-mnop-987654567876",
    "eventID": "EXAMPLE0-1234-abcd-hijk-543234565434",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```