将 PagerDuty 访问凭证存储在 AWS Secrets Manager 密钥中 - Incident Manager

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 PagerDuty 访问凭证存储在 AWS Secrets Manager 密钥中

PagerDuty 为响应计划开启与集成后,事件管理器将按以下 PagerDuty 方式使用:

  • PagerDuty 当您在事件管理器中创建新事件时,事件管理器会在中创建相应的事件。

  • PagerDuty 环境中使用您在中 PagerDuty 创建的寻呼工作流程和升级策略。但是,事件管理器不会导入您的 PagerDuty 配置。

  • 事件管理器将时间轴事件作为事件的注释发布 PagerDuty,最多 2,000 个注释。

  • 在事件管理器中解决相关 PagerDuty 事件时,您可以选择自动解决事件。

要将 Incident Manager 与集成 PagerDuty,您必须先在中创建一个 AWS Secrets Manager 包含您的 PagerDuty 凭据的密钥。这些允许事件管理器与您的 PagerDuty服务进行通信。然后,您可以在事件管理器中创建的响应计划中包含一项 PagerDuty 服务。

您在 Secrets Manager 中创建的该密钥必须以正确的 JSON 格式包含以下内容:

  • 来自您 PagerDuty 账户的 API 密钥。您可以使用通用访问 REST API 密钥,也可以使用用户令牌 REST API 密钥。

  • 您的 PagerDuty 子域中的有效用户电子邮件地址。

  • 您部署子域名的 PagerDuty 服务区域。

    注意

    PagerDuty 子域中的所有服务都部署到同一个服务区域。

先决条件

在 Secrets Manager 中创建密钥前,请确保您满足以下要求。

KMS 密钥

您必须使用在 AWS Key Management Service (AWS KMS) 中创建的客户托管密钥对您创建的密钥进行加密。您在创建存储 PagerDuty 凭证的密钥时指定此密钥。

重要

Secrets Manager 提供了使用加密密钥的选项 AWS 托管式密钥,但不支持这种加密模式。

客户托管式密钥必须满足以下要求:

  • 密钥类型:选择对称

  • 密钥用法:选择加密和解密

  • 区域性:如果要将响应计划复制到多个区域 AWS 区域,请确保选择多区域密钥。

     

密钥策略

配置响应计划的用户必须拥有密钥基于资源的策略的 kms:GenerateDataKeykms:Decrypt 权限。ssm-incidents.amazonaws.com 服务主体必须拥有密钥基于资源的策略的 kms:GenerateDataKeykms:Decrypt 权限。

以下策略说明了这些权限。将每个 user input placeholder 替换为您自己的信息。

JSON
{ "Version": "2012-10-17" , "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow creator of response plan to use the key", "Effect": "Allow", "Principal": { "AWS": "IAM_ARN_of_principal_creating_response_plan" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" }, { "Sid": "Allow Incident Manager to use the key", "Effect": "Allow", "Principal": { "Service": "ssm-incidents.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" } ] }

有关创建客户托管式密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的创建对称加密 KMS 密钥。有关 AWS KMS 密钥的更多信息,请参阅AWS KMS 概念

如果现有的客户托管式密钥满足之前的所有要求,则可以编辑其策略以添加这些权限。有关在客户托管式密钥中更新策略的信息,请参阅《AWS Key Management Service 开发人员指南》中的更改密钥策略

提示

您可以指定条件密钥来进一步限制访问权限。例如,以下策略允许通过 Secrets Manager 访问美国东部(俄亥俄州)区域 (us-east-2) 中的 Secrets Manager:

{ "Sid": "Enable IM Permissions", "Effect": "Allow", "Principal": { "Service": "ssm-incidents.amazonaws.com" }, "Action": ["kms:Decrypt", "kms:GenerateDataKey*"], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } }
GetSecretValue 许可

创建响应计划的 IAM 身份(用户、角色或群组)必须拥有 IAM 权限 secretsmanager:GetSecretValue

将 PagerDuty 访问凭证存储在 AWS Secrets Manager 密钥中
  1. 按照《AWS Secrets Manager 用户指南》中创建 AWS Secrets Manager 密钥中的步骤 3a 中的步骤进行操作。

  2. 在步骤 3b 中,对于密钥/值对,请执行以下操作:

    • 选择纯文本选项卡。

    • 将方框中的默认内容替换为以下 JSON 结构:

      { "pagerDutyToken": "pagerduty-token", "pagerDutyServiceRegion": "pagerduty-region", "pagerDutyFromEmail": "pagerduty-email" }
    • 在您粘贴的 JSON 示例中,placeholder values按以下方式替换:

      • pagerduty-token:您 PagerDuty 账户中的通用访问权限 REST API 密钥或用户令牌 REST API 密钥的值。

        有关相关信息,请参阅PagerDuty 知识库中的 API 访问密钥

      • pagerduty-region:托管您的 PagerDuty 子域 PagerDuty 的数据中心的服务区域。

        有关相关信息,请参阅PagerDuty 知识库中的服务区域

      • pagerduty-email:属于您的 PagerDuty 子域的用户的有效电子邮件地址。

        有关相关信息,请参阅PagerDuty 知识库中的管理用户

      以下示例显示了包含所需 PagerDuty凭据的完整的 JSON 密钥:

      { "pagerDutyToken": "y_NbAkKc66ryYEXAMPLE", "pagerDutyServiceRegion": "US", "pagerDutyFromEmail": "JohnDoe@example.com" }
  3. 在步骤 3c 中,对于加密密钥,选择您创建的符合上一部分先决条件中所列要求的客户托管式密钥。

  4. 在步骤 4c 中,对于资源权限,请执行以下操作:

    • 展开资源权限

    • 选择编辑权限

    • 将策略方框中的默认内容替换为以下 JSON 结构:

      { "Effect": "Allow", "Principal": { "Service": "ssm-incidents.amazonaws.com" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" }
    • 选择保存

  5. 在步骤 4d 中,对于复制密钥,如果将响应计划复制到多个 AWS 区域,请执行以下操作:

    • 展开复制密钥

    • 对于 AWS 区域,选择在其中复制响应计划的区域。

    • 对于加密密钥,请选择在该区域创建或复制到该区域的符合先决条件部分所列要求的客户托管式密钥。

    • 对于每增加一个 AWS 区域,请选择添加区域,然后选择区域名称和客户托管密钥。

  6. 完成《AWS Secrets Manager 用户指南》中创建 AWS Secrets Manager 密钥中的其余步骤。

有关如何将 PagerDuty 服务添加到 Incident Manager 事件工作流程的信息,请参阅主题中的将 PagerDuty 服务集成到响应计划制定响应计划

相关信息

如何使用 PagerDuty 和实现事件响应自动化 AWS Systems Manager Incident Manager(AWS 云 运营和迁移博客)

《AWS Secrets Manager 用户指南》中的在 AWS Secrets Manager中的密钥加密