

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

# CloudWatch 調查功能的安全性
<a name="Investigations-Security"></a>

本節包含有關 CloudWatch 調查如何與 AWS 安全性和許可功能整合的主題。

**Topics**
+ [預設 CloudWatch 調查許可、保留和加密](#Ephemeral-Investigations-Security)
+ [CloudWatch 調查群組的使用者許可](#Investigations-Security-IAM)
+ [Database Insights 的其他許可](#Investigations-Security-RDS)
+ [如何在調查期間控制 CloudWatch 調查功能可存取的資料](#Investigations-Security-Data)
+ [調查資料加密](#Investigations-KMS)
+ [跨區域推論](#cross-region-inference)

## 預設 CloudWatch 調查許可、保留和加密
<a name="Ephemeral-Investigations-Security"></a>

如果您使用預設設定執行調查，但未在您的帳戶中執行其他設定，調查會使用目前主控台工作階段可用的許可，而且只會使用唯讀許可存取遙測資料。不需要調查群組 IAM 角色組態或許可政策。不過，這表示調查對資料的存取權受登入使用者許可的限制。

此調查僅適用於啟動調查的同個使用者。調查只在 24 小時內供檢視，之後會刪除，無復原選項。

調查資料會以 AWS 擁有的金鑰進行靜態加密。您無法檢視或管理 AWS 擁有的金鑰，也無法將其用於其他用途或稽核其用途。不過，您不需要採取任何動作或變更任何設定即可使用這些金鑰。如需詳細資訊，請參閱 [AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。

## CloudWatch 調查群組的使用者許可
<a name="Investigations-Security-IAM"></a>

AWS 已建立三個 受管 IAM 政策，可供使用 CloudWatch 調查群組的使用者使用。
+ [AIOpsConsoleAdminPolicy](managed-policies-cloudwatch.md#managed-policies-QInvestigations-AIOpsConsoleAdminPolicy)：使得管理員能夠在帳戶中設定 CloudWatch 調查、存取 CloudWatch 調查動作、管理信任的身分傳播，以及管理與 IAM Identity Center 的整合和組織存取權。
+ [AIOpsOperatorAccess](managed-policies-cloudwatch.md#managed-policies-QInvestigations-AIOpsOperatorAccess)：授與使用者執行調查動作的權限，包括啟動調查。還授與存取調查事件所需的其他許可。
+ [AIOpsReadOnlyAccess](managed-policies-cloudwatch.md#managed-policies-QInvestigations-AIOpsReadOnlyAccess)：授與對 CloudWatch 調查和其他相關服務的唯讀許可。

我們建議您使用三個 IAM 主體，授與其中一個 **AIOpsConsoleAdminPolicy** IAM 政策，授與另一個 **AIOpsOperatorAccess** 政策，授與第三個 **AIOpsReadOnlyAccess** 政策。這些主體可以是 IAM 角色 (建議) 或 IAM 使用者。然後，使用 CloudWatch 調查的使用者將使用其中一個主體登入。

### 產生事件報告的權限
<a name="Investigations-Security-IAM-IRG"></a>

產生事件報告需要額外的許可，以允許 AI 收集事件、事實，然後建立報告。

具有 **AIOpsConsoleAdminPolicy** 的使用者可以產生、編輯和複製事件報告。根據預設，您的調查群組會獲指派 **AIOpsAssistantPolicy**，以授予資源的存取權。不過，它沒有產生調查報告所需的許可。若要將調查資料整理到事件報告中的許可授予調查群組，您必須新增類似下列範例的政策，其中包含其他許可，或將其他動作做為內嵌政策新增至群組：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IncidentReportOperations",
            "Effect": "Allow",
            "Action": [
                "aiops:GetInvestigation",
                "aiops:ListInvestigationEvents",
                "aiops:GetInvestigationEvent",

                "aiops:CreateReport",
                "aiops:UpdateReport", 
                "aiops:GetReport",

                "aiops:PutFact",
                "aiops:ListFacts",
                "aiops:GetFact",
                "aiops:GetFactVersions"
            ],
            "Resource": [
                "arn:aws:aiops:*:*:investigation-group/*"
            ]
        }
    ]
}
```

------

 新的 受管政策`AIOpsAssistantIncidentReportPolicy`提供必要的許可，並自動新增至 2025 年 10 月 10 日之後建立的調查群組。如需詳細資訊，請參閱[AIOpsAssistantIncidentReportPolicy](managed-policies-cloudwatch.md#managed-policies-QInvestigations-AIOpsAssistantIncidentReportPolicy)。

## Database Insights 的其他許可
<a name="Investigations-Security-RDS"></a>

若要在調查期間使用 Database Insights 功能，必須將 `AmazonRDSPerformanceInsightsFullAccess` 受管政策連結至您用來執行調查的 IAM 角色或使用者。CloudWatch 調查功能需要這些許可，才能為您的 Amazon RDS 資料庫執行個體建立和存取效能分析報告。

若要連結此政策，請使用 IAM 主控台將 `AmazonRDSPerformanceInsightsFullAccess` 受管政策新增至您的調查主體。如需此受管政策及其許可的詳細資訊，請參閱 [AmazonRDSPerformanceInsightsFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html)。

## 如何在調查期間控制 CloudWatch 調查功能可存取的資料
<a name="Investigations-Security-Data"></a>

當您在帳戶中設定調查群組時，可以指定 CloudWatch 調查功能在調查期間存取您的資源時，必須擁有哪些許可。為此，您可以將 IAM 角色指派給調查群組。

若要讓 CloudWatch 調查功能存取資源，並能夠提出建議和假設，建議的方法是將 **AIOpsAssistantPolicy** 連結至調查群組角色。這會授予調查群組在調查期間分析 AWS 資源的許可。如需此角色之完整內容的詳細資訊，請參閱[AIOpsAssistantPolicy](managed-policies-cloudwatch.md#managed-policies-QInvestigations-AIOpsAssistant)。

除了連接 **AIOpsAssistantPolicy** 之外，您也可以選擇將 AWS [general**ReadOnlyAccess**](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ReadOnlyAccess.html) 連接至調查群組角色。這樣做的原因是，透過發行的新 AWS 服務和動作的許可，更頻繁地 AWS 更新 **ReadOnlyAccess**。**AIOpsAssistantPolicy** 亦將針對新動作進行更新，但更新頻率不高。

如果想要縮小授與 CloudWatch 調查功能的許可範圍，可以將自訂 IAM 政策連結到調查群組 IAM 角色，而非連結 **AIOpsAssistantPolicy** 政策。為此，可以使用 [AIOpsAssistantPolicy](managed-policies-cloudwatch.md#managed-policies-QInvestigations-AIOpsAssistant) 的內容啟動自訂政策，然後移除您不想授與 CloudWatch 調查功能的許可。如此可防止 CloudWatch 調查功能根據您未授與存取權的 AWS 服務或動作提出建議。

**注意**  
CloudWatch 調查功能所能存取的任何內容，皆可新增至調查中並供調查作業員檢視。我們建議您將 CloudWatch 調查許可與調查群組作業員擁有的許可保持一致。

### 允許 CloudWatch 調查功能在調查期間解密加密的資料
<a name="Investigations-Security-Decrypt"></a>

如果您使用 中的客戶受管金鑰加密下列任何服務中的資料 AWS KMS，而且您希望 CloudWatch 調查能夠從這些服務解密資料並將其包含在調查中，則需要將一或多個額外的 IAM 政策連接到調查群組 IAM 角色。
+ AWS Step Functions

政策陳述式應包含加密內容的內容金鑰，以協助縮小許可範圍。例如，下列政策可讓 CloudWatch 調查功能解密 Step Functions 狀態機器的資料。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
        {
            "Sid": "AIOPSKMSAccessForStepFunctions",
            "Effect": "Allow",
            "Principal": {
                "Service": "aiops.amazonaws.com"
            },
            "Action":
            [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition":
            {
                "StringEquals":
                {
                     "kms:ViaService": "states.*.amazonaws.com",
                     "kms:EncryptionContext:aws:states:{{stateMachineArn}}": "arn:aws:states:{{region}}:{{accountId}}:stateMachine:*"
                }
            }
        }
    ]
}
```

------

如需有關這些政策類型和使用這些內容金鑰的詳細資訊，請參閱《 AWS Key Management Service 開發人員指南》中的 [kms:ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service) 和 [kms:EncryptionContext:*context-key*](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-encryption-context)，以及《IAM 使用者指南》中的 [aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)。

## 調查資料加密
<a name="Investigations-KMS"></a>

對於調查資料的加密， AWS 提供兩個選項：
+ **AWS 擁有的金鑰** – 根據預設，CloudWatch 調查會使用 AWS 擁有的金鑰加密靜態的調查資料。您無法檢視或管理 AWS 擁有的金鑰，也無法將其用於其他用途或稽核其用途。不過，您不需要採取任何動作或變更任何設定即可使用這些金鑰。如需 AWS 擁有金鑰的詳細資訊，請參閱 [AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。
+ **客戶自管金鑰**：是您自行建立和管理的金鑰。您可以選擇使用客戶受管金鑰，而不是調查資料的 AWS 擁有金鑰。如需客戶自管金鑰的更多相關資訊，請參閱[客戶自管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

從調查產生的事件報告會使用與父調查相同的加密設定。這可在您的調查資料和文件中維持一致的安全狀態

**注意**  
CloudWatch 調查會使用 AWS 擁有的金鑰自動啟用靜態加密，無需付費。如果您使用客戶受管金鑰，則需支付 AWS KMS 費用。如需定價的詳細資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。

如需 的詳細資訊 AWS KMS，請參閱 [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

### 為您的調查群組使用客戶自管金鑰
<a name="Investigations-KMS-customerkey"></a>

您可以將調查群組與客戶自管金鑰建立關聯，然後，在該群組中建立的所有調查，都將使用客戶自管金鑰來加密您的靜態調查資料。

CloudWatch 調查功能對客戶自管金鑰的使用，需符合下列條件：
+ CloudWatch 調查僅支援具有預設 AWS KMS 金鑰規格 和 的對稱加密金鑰`SYMMETRIC_DEFAULT`，其用量定義為 `ENCRYPT_DECRYPT`。
+ 若要讓使用者使用客戶自管金鑰建立或更新調查群組，該使用者必須具備 `kms:DescribeKey`、`kms:GenerateDataKey` 和 `kms:Decrypt` 許可。
+ 若要讓使用者在使用客戶自管金鑰的調查群組中建立或更新調查，該使用者必須具備 `kms:GenerateDataKey` 和 `kms:Decrypt` 許可。
+ 若要讓使用者在使用客戶自管金鑰的調查群組中檢視調查資料，該使用者必須具備 `kms:Decrypt` 許可。

### 設定調查以使用 AWS KMS 客戶受管金鑰
<a name="Investigations-KMS-Setup"></a>

首先，如果還沒有要使用的對稱金鑰，請使用下列命令新建一個。

```
aws kms create-key
```

命令輸出包含金鑰 ID 和金鑰的 Amazon Resource Name (ARN)。在本節的後續步驟中，您將需要這些資訊。以下為此輸出的範例。

```
{
"KeyMetadata": {
"Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1478910250.94,
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/6f815f63-e628-448c-8251-e4EXAMPLE",
        "AWSAccountId": "111122223333",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

**設定金鑰許可**

接著，設定金鑰許可。根據預設，所有 AWS KMS 金鑰都是私有的。只有資源擁有者可以使用它來加密和解密資料。然而，資源擁有者可以授予其他使用者和資源存取金鑰的許可。在此步驟中，您將給予 AI 操作服務主體許可來使用金鑰。此服務主體必須位於存放 KMS 金鑰的相同 AWS 區域中。

根據最佳實務，建議您將 KMS 金鑰的使用限制為您指定的 AWS 帳戶或資源。

設定許可的第一步是將金鑰的預設政策儲存為 `policy.json`。為此，請使用下列命令。將 {{key-id}} 替換為金鑰的 ID。

```
aws kms get-key-policy --key-id {{key-id}} --policy-name default --output text > ./policy.json
```

在文字編輯器中開啟 `policy.json` 檔案，並將下列政策區段新增至該政策。使用逗號從新區段中分隔現有陳述式。這些新區段使用`Condition`區段來增強 AWS KMS 金鑰的安全性。如需詳細資訊，請參閱 [AWS KMS 金鑰和加密內容](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html#encrypt-log-data-kms-policy)。

此政策為服務主體提供許可，原因如下：
+ `aiops` 服務需要取得資料金鑰的 `GenerateDataKey` 許可，並使用該資料金鑰來加密靜態儲存的資料。從資料儲存區讀取資料時，需要 `Decrypt` 許可才能解密資料。當您使用 `aiops` API 讀取資料或者更新調查或調查事件時，即會發生解密。更新操作會在解密後擷取現有資料、更新資料，並在加密後將更新的資料儲存在資料儲存區
+ CloudWatch 警示服務可以建立調查或調查事件。這些建立操作會驗證發起人是否有權存取為調查群組定義的 AWS KMS 金鑰。政策陳述式會將 `GenerateDataKey` 和 `Decrypt` 許可授與 CloudWatch 警示服務，使之能夠代表您建立調查。

**注意**  
下列政策假設您遵循使用三個 IAM 主體的建議，並授與其中一個 **AIOpsConsoleAdminPolicy** IAM 政策，授與另一個 **AIOpsOperatorAccess** 政策，授與第三個 **AIOpsReadOnlyAccess** 政策。這些主體可以是 IAM 角色 (建議) 或 IAM 使用者。然後，使用 CloudWatch 調查功能的使用者將使用其中一個主體登入。  
對於下列政策，您將需要這三個主體的 ARN。

```
{
    "Sid": "Enable AI Operations Admin for the DescribeKey permissions",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/{AIOpsConsoleAdmin}"
    },
    "Action": [
        "kms:DescribeKey"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:ViaService": "aiops.{region}.amazonaws.com"
        }
    }
},
{
   "Sid": "Enable AI Operations Admin and Operator for the Decrypt and GenerateDataKey permissions", 
   "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::{account-id}:role/{AIOpsConsoleAdmin}",
            "arn:aws:iam::{account-id}:role/{AIOpsOperator}"
         ]
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
    ],
    "Resource": "*",
    "Condition": {
       "StringEquals": {
            "kms:ViaService": "aiops.{region}.amazonaws.com"
        },
        "ArnLike": {
            "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*"
        }
    }
 },
 {
   "Sid": "Enable AI Operations ReadOnly for the Decrypt permission",
   "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/{AIOpsReadOnly}"
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
       "StringEquals": {
            "kms:ViaService": "aiops.{region}.amazonaws.com"
        },
        "ArnLike": {
            "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*"
        }
    }
 },
 {
   "Sid": "Enable the AI Operations service to have the DescribeKey permission",
   "Effect": "Allow",
    "Principal": {
        "Service": "aiops.amazonaws.com"
    },
    "Action": [
        "kms:DescribeKey"
    ],
    "Resource": "*",
    "Condition": {
       "StringEquals": {
            "aws:SourceAccount": "{account-id}"
        },
        "StringLike": {
            "aws:SourceArn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*"
        }
    }
 },
 {
   "Sid": "Enable the AI Operations service to have the Decrypt and GenerateDataKey permissions",
   "Effect": "Allow",
    "Principal": {
        "Service": "aiops.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
    ],
    "Resource": "*",
    "Condition": {
       "StringEquals": {
            "aws:SourceAccount": "{account-id}"
        },
        "StringLike": {
            "aws:SourceArn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*"
        },
        "ArnLike": {
            "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*"
        }
    }
 },
 {
    "Sid": "Enable CloudWatch to have the Decrypt and GenerateDataKey permissions",
    "Effect": "Allow",
    "Principal": {
        "Service": "aiops.alarms.cloudwatch.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "ArnLike": {
            "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*"
        },
        "StringEquals": {
            "aws:SourceAccount": "{account-id}",
            "kms:ViaService": "aiops.{region}.amazonaws.com"
        }, 
        "StringLike": { 
            "aws:SourceArn": "arn:aws:cloudwatch:{region}:{account-id}:alarm:*"
        }
    }
  }
```

更新政策之後，輸入下列命令將其指派給金鑰。

```
aws kms put-key-policy --key-id {{key-id}} --policy-name default --policy file://policy.json
```

**將金鑰與調查群組關聯起來**

當您使用 CloudWatch 主控台建立調查群組時，您可以選擇將 AWS KMS 金鑰與調查群組建立關聯。如需詳細資訊，請參閱[設定調查群組](Investigations-GetStarted-Group.md)。

也可以將客戶自管金鑰與現有的調查群組關聯起來。

### 變更您的加密組態
<a name="Investigations-KMS-Changes"></a>

您可以更新調查群組，以切換使用客戶自管金鑰或服務擁有的金鑰。也可以從使用一個客戶自管金鑰變更為使用另一個。當您進行此類變更時，變更會套用至變更後建立的新調查。先前的調查仍然與舊的加密組態相關聯。目前進行中的調查也會繼續使用新資料的原始金鑰。

只要先前使用的金鑰處於作用中狀態，且 Amazon Q 可以存取該金鑰以進行調查，您就可以擷取使用該方法加密的舊調查，以及目前調查中使用上一個金鑰加密的資料。如果您刪除先前使用的金鑰或撤銷其存取權，則無法擷取使用該金鑰加密的調查資料。

## 跨區域推論
<a name="cross-region-inference"></a>

CloudWatch 調查使用*跨區域推論*將流量分散到不同 AWS 區域。雖然資料只會存放在主要區域中，但在使用跨區域推論時，您的調查資料可能會移動到主要區域之外。所有資料都會透過 Amazon 的安全網路進行加密傳輸。

如需各區域跨區域推論分佈的詳細資訊，請參閱下表。


| 支援的 CloudWatch 調查地理位置 | 調查區域 | 可能的推論區域 | 
| --- | --- | --- | 
| 美國 (US) | 美國東部 (維吉尼亞北部) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 美國東部 (俄亥俄) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 美國西部 (奧勒岡) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
| 歐洲 (EU) | 歐洲 (法蘭克福) | 歐洲 (法蘭克福)、歐洲 (愛爾蘭)、歐洲 (巴黎)、歐洲 (斯德哥爾摩) | 
|  | 歐洲 (愛爾蘭) | 歐洲 (法蘭克福)、歐洲 (愛爾蘭)、歐洲 (巴黎)、歐洲 (斯德哥爾摩) | 
|  | 歐洲 (西班牙) | 歐洲 (法蘭克福)、歐洲 (愛爾蘭)、歐洲 (巴黎)、歐洲 (斯德哥爾摩) | 
|  | 歐洲 (斯德哥爾摩) | 歐洲 (法蘭克福)、歐洲 (愛爾蘭)、歐洲 (巴黎)、歐洲 (斯德哥爾摩) | 
| 亞太地區 (AP) | 亞太地區 (香港) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 亞太地區 (孟買) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 亞太地區 (新加坡) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 亞太地區 (悉尼) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 亞太地區 (東京) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 亞太地區 (馬來西亞) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 
|  | 亞太區域 (泰國) | 美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡) | 