操作调查中的安全 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

操作调查中的安全

注意

Amazon Q 开发者版操作调查功能为预览版,可能会发生变化。目前在以下区域中可用:

  • 美国东部(弗吉尼亚州北部)

  • 美国东部(俄亥俄州)

  • 美国西部(俄勒冈州)

  • 亚太地区(香港)

  • 亚太地区(孟买)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太地区(东京)

  • 欧洲地区(法兰克福)

  • 欧洲地区(爱尔兰)

  • 欧洲地区(西班牙)

  • 欧洲地区(斯德哥尔摩)

本部分包括有关 Amazon Q 开发者版操作调查如何与 Amazon 安全和权限功能集成的主题。

用户权限

Amazon 已创建三项托管 IAM 策略,供将处理 Amazon Q 开发者版操作调查的用户使用。

  • AIOpsConsoleAdminPolicy – 允许管理员在账户中设置 Amazon Q 开发者版操作调查、访问 Amazon Q 开发者版操作调查操作、管理可信身份传播以及管理与 IAM Identity Center 的集成和组织访问权限。

  • AIOpsOperatorAccess – 授予用户访问调查操作的权限,包括开始调查。还授予访问调查事件所需的额外权限。

  • AIOpsReadOnlyAccess – 授予对 Amazon Q 开发者版操作调查以及相关服务的只读权限。

我们建议您使用三个 IAM 主体,向其中一个授予 AIOpsConsoleAdminPolicy IAM 策略,向另一个授予 AIOpsOperatorAccess 策略,向第三个授予 AIOpsReadOnlyAccess 策略。这些主体可以是 IAM 角色(推荐)或 IAM 用户。然后,使用 Amazon Q 开发者版操作调查的用户将通过其中一个主体登录。

如何控制 Amazon Q 开发者版在调查期间可以访问哪些数据

启用 Amazon Q 开发者版操作调查功能时,您可以指定 Amazon Q 开发者版在调查期间拥有哪些权限才能访问您的资源。为此,您可以为助手分配 IAM 角色。

为了让 Amazon Q 开发者版能够访问资源并能够提出建议和假设,推荐的方法是将 AIOpsAssistantPolicy 附加到助手的角色。这会授予助手在调查期间分析您的 Amazon 资源的权限。有关该策略完整内容的信息,请参阅 Amazon Q 开发者版操作调查的 IAM 策略(AIOpsAssistantPolicy)

除了附加 AIOpsAssistantPolicy 外,您还可以选择将常规 Amazon ReadOnlyAccess 附加到助手的角色。这样做的原因是,Amazon 使用已发布的新 Amazon 服务和操作的权限更频繁地更新 ReadOnlyAccessAIOpsAssistantPolicy 也将针对新操作进行更新,但更新频率不会那么高。

如果您想缩小授予 Amazon Q 开发者版的权限范围,则可以将自定义 IAM 策略附加到助手的 IAM 角色,而不是附加 AIOpsAssistantPolicy 策略。为此,请使用 AIOpsAssistantPolicy 的内容开始您的自定义策略,然后移除您不想授予 Amazon Q 开发者版的权限。这将使助手无法根据您未授予访问权限的 Amazon 服务或操作提出建议。

注意

Amazon Q 开发者版可以访问的任何内容都可以添加到调查中,并由您的调查操作员查看。我们建议您将 Amazon Q 开发者版操作调查权限与您的调查组操作员拥有的权限保持一致。

允许 Amazon Q 开发者版在调查期间解密加密数据

如果您使用 Amazon KMS 中的客户管理型密钥对以下任何服务中的数据进行加密,并且希望 Amazon Q 开发者版能够解密来自这些服务的数据并将其纳入调查,则需要为助手的 IAM 角色附加一个或多个 IAM 策略。

  • Amazon Step Functions

策略声明应包括加密上下文的上下文密钥,进而帮助缩小权限范围。例如,以下策略将允许 Amazon Q 开发者版为 Step Functions 状态机解密数据。

{ "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:*" } } } ] }

有关这些类型的策略和使用这些上下文密钥的更多信息,请参阅《Amazon Key Management Service Developer Guide》中的 kms:ViaServicekms:EncryptionContext:context-key,以及《IAM 用户指南》中的 aws:SourceArn

调查数据加密

为了加密您的调查数据,Amazon 提供了两个选项:

  • Amazon 拥有的密钥 – 默认情况下,Amazon Q 开发者版使用 Amazon 拥有的密钥对静态调查数据进行加密。您无法查看或管理 Amazon 拥有的密钥,也无法将其用于其他目的或审计其使用情况。但是,无需执行任何操作或更改任何设置即可使用这些密钥。有关 Amazon 拥有的密钥的更多信息,请参阅 Amazon owned keys

  • 客户自主管理型密钥 – 这些是您自己创建和管理的密钥。您可以选择使用客户自主管理型密钥而不是 Amazon 拥有的密钥来处理调查数据。有关客户自主管理型密钥的更多信息,请参阅 Customer managed keys

注意

Amazon Q 开发者版会自动使用 Amazon 拥有的密钥启用静态加密,且不收取任何费用。如果您使用客户自主管理型密钥,则收取 Amazon KMS 费用。有关定价的更多信息,请参阅 Amazon Key Management Service 定价

有关 Amazon KMS的更多信息,请参阅Amazon Key Management Service

将客户自主管理型密钥用于调查组

您可以将调查组与客户自主管理型密钥相关联,然后在该组中创建的所有调查都将使用客户自主管理型密钥对您的静态调查数据进行加密。

Amazon Q 开发者版操作调查客户自主管理型密钥的使用有以下条件:

  • Amazon Q 开发者版操作调查仅支持具有默认密钥规范的对称加密 Amazon KMS 密钥 SYMMETRIC_DEFAULT,且其用法定义为 ENCRYPT_DECRYPT

  • 要使用客户自主管理型密钥创建或更新调查组,该用户必须拥有 kms:DescribeKeykms:GenerateDataKeykms:Decrypt 权限。

  • 要让用户在使用客户自主管理型密钥的调查组中创建或更新调查,该用户必须拥有 kms:GenerateDataKeykms:Decrypt 权限。

  • 要让用户查看使用客户自主管理型密钥的调查组中的调查数据,该用户必须拥有 kms:Decrypt 权限。

设置调查以使用 Amazon KMS 客户自主管理型密钥

首先,如果您还没有要使用的对称密钥,请使用以下命令创建新密钥。

aws kms create-key

命令输出包括密钥的密钥 ID 和 Amazon 资源名称(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" ] } }

设置密钥的权限

接下来,设置密钥的权限。默认情况下,所有 Amazon KMS 密钥都是私有的。只有资源所有者可以使用它来加密和解密数据。但是,资源拥有者可以将密钥的访问权限授予其他用户和资源。在此步骤中,您将授予 AI Operations 服务主体使用该密钥的权限。此服务主体必须位于存储 KMS 密钥的相同 Amazon 区域内。

作为最佳实践,我们建议您将 KMS 密钥的使用限制为仅限于您指定的 Amazon 账户或资源。

设置权限的第一步是将密钥的默认策略另存为 policy.json。为此,请使用以下命令。将 key-id 替换为密钥的 ID。

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

在文本编辑器中,打开 policy.json 文件,然后将以下策略部分添加到该策略中。使用逗号将现有语句与新的部分分隔。这些新的部分使用 Condition 部分来增强 Amazon KMS 密钥的安全性。有关更多信息,请参阅 Amazon KMS keys and encryption context

此策略为服务主体提供权限,原因如下:

  • aiops 服务需要 GenerateDataKey 权限才能获取数据密钥,并使用该数据密钥对静态存储的数据进行加密。在从数据存储中读取数据时,需要 Decrypt 权限才能解密您的数据。当您使用 aiops API 读取数据或更新调查或调查事件时,就会发生解密。更新操作在解密现有数据后获取数据,更新数据,并在加密后将更新的数据存储在数据存储中

  • CloudWatch 警报服务可以创建调查或调查事件。这些创建操作可验证调用方是否有权访问为调查组定义的 Amazon KMS 密钥。该策略语句授予 CloudWatch 警报服务代表您创建调查的 GenerateDataKeyDecrypt 权限。

注意

以下策略假设您遵循使用三个 IAM 主体的建议,向其中一个授予 AIOpsConsoleAdminPolicy IAM 策略,向另一个授予 AIOpsOperatorAccess 策略,向第三个授予 AIOpsReadOnlyAccess 策略。这些主体可以是 IAM 角色(推荐)或 IAM 用户。然后,使用 Amazon Q 开发者版操作调查的用户将通过其中一个主体登录。

对于以下策略,您需要这三个主体的 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 控制台创建调查组时,您可以选择将 Amazon KMS 密钥与调查组关联。有关更多信息,请参阅 设置操作调查

您还可以将客户自主管理型密钥与现有调查组关联。

更改加密配置

您可以更新调查组,使其在使用客户自主管理型密钥或服务拥有的密钥之间进行切换。您也可以从使用一个客户自主管理型密钥更改为使用另一个客户自主管理型密钥。当您进行此类更改时,更改将应用于更改后创建的新调查。之前的调查仍与旧的加密配置关联。目前正在进行的调查也继续使用原始密钥获取新数据。

只要先前使用的密钥处于活动状态,且 Amazon Q 可以访问该密钥进行调查,您就可以检索使用该方法加密的旧调查,以及当前调查中使用先前密钥加密的数据。如果您删除先前使用的密钥或撤消对该密钥的访问权限,则无法检索使用该密钥加密的调查数据。

跨区域推理

Amazon Q 开发者版操作调查使用跨区域推理来跨不同 Amazon 区域分配流量。尽管数据仍然只存储在主区域中,但在使用跨区域推理时,您的调查数据可能会移出主区域。所有数据都将通过 Amazon 的安全网络进行加密传输。有关更多信息,请参阅《Amazon Q 开发者版用户指南》中的跨区域推理

有关每个区域的跨区域推理分布发生位置的详细信息,请参阅下表。

支持的 Amazon Q 开发者版操作调查地理位置 调查区域 可能的推理区域
美国(US) 美国东部(弗吉尼亚州北部) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
美国东部(俄亥俄州) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
美国西部(俄勒冈州) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
欧洲(EU) 欧洲地区(法兰克福) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)
欧洲地区(爱尔兰) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)
欧洲地区(西班牙) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)
欧洲地区(斯德哥尔摩) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)
亚太地区(AP) 亚太地区(香港) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
亚太地区(孟买) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
亚太地区(新加坡) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
亚太地区(悉尼) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)
亚太地区(东京) 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)