

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

# 管理密钥和资源策略
<a name="managing-secrets-resource-policies"></a>

[配置第三方语音提供者](configure-third-party-speech-providers.md)时，需要在 Secrets Manager 中创建一个包含语音提供者的 API 密钥的密钥。创建密钥的过程分为两步：
+ 创建包含 API 密钥的密钥。有关说明，请参阅[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。
+ 配置必要的权限：
  + 将基于资源的策略附加到密钥。
  + 将基于资源的策略附加到与密钥关联的 KMS 密钥（不是 API 密钥）。KMS 密钥保护密钥中的 API 密钥。

  这些策略允许 Amazon Connect 访问密钥中的 API 密钥。请注意，您不能使用默认 `aws/secretsmanager` KMS 密钥；必须创建新密钥或使用现有的客户管理的密钥。有关 KMS 密钥如何保护机密的更多信息，请参阅 Secrets Manager [中的密钥加密和解密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)。

确保密钥的基于资源的策略包括`aws:SourceAccount`和`aws:SourceArn`混淆的副手条件（请参阅混淆的[副手问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)），并且 KMS 密钥的基于资源的策略包含该`kms:EncryptionContext:SecretARN`条件。这将确保 Amazon Connect 只能在单个特定实例的环境中访问您的 API 密钥密钥，并且只能在该实例和特定密钥的上下文中访问您的 KMS 密钥。

## Secrets Manager 密钥基于资源的策略示例
<a name="example-resource-policy-secrets-manager"></a>

以下是您可以附加到密钥的基于资源的策略的示例。

```
{
  "Version":"2012-10-17",		 	 	                    
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "connect.amazonaws.com"
        ]
      },
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:sourceArn": "///the ARN of your Amazon Connect instance///"
        },
        "StringEquals": {
          "aws:sourceAccount": "///Your account ID///"
        }
      }
    }
  ]
}
```

## s 的基于资源的策略示例 AWS KMS key
<a name="example-resource-policy-kms-keys"></a>

以下是您可以附加到 KMS 密钥的基于资源的策略的示例。

```
{
  "Version":"2012-10-17",		 	 	                    
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "connect.amazonaws.com"
        ]
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "aws:sourceArn": "///the ARN of your Amazon Connect instance///"
        },
        "StringEquals": {
          "aws:sourceAccount": "///Your account ID///",
          "kms:EncryptionContext:SecretARN": "///the ARN of your secrets manager secret///"
        }
      }
    }
  ]
}
```

## 将基于资源的策略附加到你的 Secrets Manager 密钥
<a name="attaching-resource-policy-secrets-manager"></a>

要将基于资源的策略附加到您的密钥，请转到中的 Secrets Manager 控制台 AWS 管理控制台，导航到您的密钥，选择**编辑权限****或资源权限**，然后直接在页面上添加或修改资源策略，使其看起来与[示例](#example-resource-policy-secrets-manager)类似。您也可以通过的`put-resource-policy`命令附加资源策略，或者使用 [PutResourcePolicy](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutResourcePolicy.html)API 操作以编程方式附加资源策略。 AWS CLI

## 将基于资源的策略附加到您的 KMS 密钥
<a name="attaching-resource-policy-kms-key"></a>

要将基于资源的策略附加到您的 KMS 密钥，请转到中的 AWS Key Management Service 控制台 AWS 管理控制台，导航到您的 KMS 密钥并编辑您的密钥策略，使其与[示例](#example-resource-policy-kms-keys)类似。您也可以通过的`put-key-policy`命令更新密钥，或者使用 [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)API 操作以编程方式更新密钥。 AWS CLI

## 轮换 API 密钥
<a name="rotating-api-keys"></a>

我们建议至少每 90 天轮换 API 密钥，以最大限度地降低泄露风险，并在紧急情况下保持经过良好实践的密钥轮换流程。

要轮换 API 密钥，必须轮换包含该密钥的密钥。有关如何[轮换密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)的更多信息，请参阅 S *ecrets Manager 用户指南*中的轮换 Secrets Manager 密钥。轮换 API 密钥时，建议您等待先前密钥的使用量降至零，然后再撤消旧的 API 密钥，以确保正在进行的请求不会受到影响。