

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

# 使用 AWS Secrets Manager 用于 C2C 工作流程的数据保护
<a name="secrets-manager"></a>

AWS Secrets Manager 是一项密钥存储服务，可用于保护数据库凭据、API 密钥和其他机密信息。然后，您可以将硬编码凭证改为对 Secrets Manager 进行 API 调用。这有助于确保别人在检查您的代码时不会泄露密钥，因为代码中没有密钥。有关概述，请参阅《AWS Secrets Manager 用户指南》[https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。

Secrets Manager 使用密 AWS Key Management Service 钥对机密进行加密。有关更多信息，请参阅 [Secret encryption and decryption in AWS Key Management Service](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。

的托管 AWS IoT Device Management 集成与集成， AWS Secrets Manager 因此您可以将数据存储在 Secrets Manager 中，并在配置中使用密钥 ID。

## 托管集成如何使用机密
<a name="managed-integrations-OAuth"></a>

开放授权 (OAuth) 是委托访问授权的开放标准，允许用户在不共享密码的情况下授予网站或应用程序访问其在其他网站上的信息的权限。这是第三方应用程序代表用户访问用户数据的安全方式，为共享密码提供了一种更安全的替代方案。

在 OAuth 中，客户端 ID 和客户端密钥是在客户端应用程序请求访问令牌时对其进行识别和身份验证的凭证。

托管集成 AWS IoT Device Management 使用 OAuth 与使用 C2C 工作流程的客户进行沟通。客户需要提供客户端 ID 和客户端密钥才能进行通信。托管集成客户将在其 AWS 账户中存储客户端 ID 和客户密钥，托管集成会读取我们客户账户中的客户端 ID 和客户机密。

## 如何创建密钥
<a name="managed-integrations-createsecret"></a>

要创建密钥，请按照《 AWS Secrets Manager 用户指南》中[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中的步骤进行操作。

您必须使用客户管理的密钥创建您的密 AWS KMS 钥，以便进行托管集成，才能读取密钥值。有关更多信息，请参阅[《 AWS Secrets Manager 用户指南》中的 AWS KMS 密钥权限](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-authz)。

您还必须使用下一节中的 IAM 策略。

## 授予托管集成的访问权限 AWS IoT Device Management 找回秘密
<a name="managed-integrations-policies"></a>

要允许托管集成从 Secrets Manager 检索密钥值，请在创建密钥时在密钥的资源策略中加入以下权限。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [ {
    "Effect" : "Allow",
    "Principal" : {
      "Service" : "iotmanagedintegrations.amazonaws.com"
    },
    "Action" : [ "secretsmanager:GetSecretValue" ],
    "Resource" : "*" ,
    "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:iotmanagedintegrations:{{AWS Region}}:{{123456789012}}:account-association:{{account-association-id}}"
        
        }
      }
  } ]
}
```

------

将以下声明添加到您的客户管理 AWS KMS 密钥的策略中。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Principal": {
                "Service": [
                    "iotmanagedintegrations.amazonaws.com"
                ]
        },
            "Resource": [
            "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/*"
            ]
        }

    ]
}
```

------