设置Amazon IoT为 Greengrass 核心设备配置队列 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

设置Amazon IoT为 Greengrass 核心设备配置队列

目的安装Amazon IoT Greengrass具备队列配置的核心软件,您必须首先在您的中设置以下资源Amazon Web Services 账户. 这些资源使设备能够注册自己Amazon IoT并作为 Greengrass 核心设备运行。请按照本节中的步骤一次在Amazon Web Services 账户.

  • 令牌交换 IAM 角色,核心设备使用该角色授权调用Amazon服务。

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT指向令牌交换角色角色的角色别名。

  • (可选)Amazon IoT策略,核心设备使用哪些核心设备授权调用Amazon IoT和Amazon IoT Greengrass服务。该Amazon IoT策略必须允许iot:AssumeRoleWithCertificate的权限Amazon IoT指向令牌交换角色角色的角色别名。

    您可以使用Amazon IoT适用于队列中所有核心设备的策略,也可以配置队列配置模板以创建Amazon IoT针对每个核心设备的策略。

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT队列预配置模板。此模板必须指定以下内容:

    • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT事物资源。您可以指定现有事物组的列表,以便在每个设备上线时将组件部署到每个设备。

    • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT策略资源。此资源可以定义以下属性之一:

      • 现有的名称Amazon IoT政策。如果选择此选项,则使用此模板创建的核心设备将使用相同的Amazon IoT策略,您可以将他们的权限作为队列进行管理。

      • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT策略文档。如果选择此选项,则使用此模板创建的每个核心设备都使用唯一的Amazon IoT策略,您可以管理每个核心设备的权限。

    • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT证书资源。此证书资源必须使用AWS::IoT::Certificate::Id参数以将证书附加到核心设备。有关更多信息,请参阅 。即时预置中的Amazon IoT开发人员指南.

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT为队列预配置模板预配置申请证书和私有密钥。您可以在制造过程中将此证书和私钥嵌入设备中,这样设备就可以在上线时注册和配置自己。

    重要

    预配置申请私有密钥应始终得到保护,包括在 Greengrass 核心设备上。建议使用 CloudWatch 指标和日志以监控滥用迹象,例如未经授予使用申请证书来预配置设备。如果您检测到滥用,请禁用预配置申请证书,以使其不能用于设备预配置。有关更多信息,请参阅 。监控Amazon IoT中的Amazon IoT Core开发人员指南.

    为了帮助你更好地管理在你的自己注册的设备数量以及哪些设备Amazon Web Services 账户,您可以在创建队列配置模板时指定预置挂钩。预先预置挂钩是Amazon Lambda函数,用于验证设备在注册期间提供的模板参数。例如,您可以创建一个预置挂接,用于根据数据库检查设备 ID,以验证设备是否具有预配权限。有关更多信息,请参阅 。预先预配置挂钩中的Amazon IoT Core开发人员指南.

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT您附加到配置声明证书的策略,以允许设备注册和使用队列配置模板。

创建一个令牌交换角色

Greengrass 核心设备使用 IAM 服务角色,称为代币交换角色,授权呼叫Amazon服务。该设备使用Amazon IoT凭证提供商以获得临时Amazon此角色的凭据,允许设备与Amazon IoT,将日志发送到亚马逊 CloudWatch 从 Amazon S3 中记录和下载自定义组件项目。有关更多信息,请参阅 授权核心设备与Amazon服务

你使用Amazon IoT 角色别名为 Greengrass 核心设备配置令牌交换角色。角色别名使您能够更改设备的令牌交换角色,但保持设备配置不变。有关更多信息,请参阅 。授予直接拨打到Amazon服务中的Amazon IoT Core开发人员指南.

在本节中,您将创建令牌交换 IAM 角色和Amazon IoT指向角色的角色别名。如果您已经设置了 Greengrass 核心设备,则可以使用其令牌交换角色和角色别名,而不是创建新的。

创建令牌交换 IAM 角色

  1. 创建一个 IAM 角色,您的设备可用作令牌交换角色。执行以下操作:

    1. 创建包含令牌交换角色所需的信任策略文档的文件。

      例如,在基于 Linux 的系统上,您可以运行以下命令来使用 GNU nano 创建文件。

      nano device-role-trust-policy.json

      将以下 JSON 复制到该文件中。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 使用信任策略文档创建令牌交换角色。

      • ReplaceGreenGrassv2Token Exchange 角色以创建 IAM 角色的名称。

      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json

      如果请求成功,响应看上去与下面的示例类似。

      { "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
    3. 创建一个文件,其中包含令牌交换角色所需的访问策略文档。

      例如,在基于 Linux 的系统上,您可以运行以下命令来使用 GNU nano 创建文件。

      nano device-role-access-policy.json

      将以下 JSON 复制到该文件中。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
      注意

      此访问策略不允许访问 S3 存储桶中的组件项目。要部署在 Amazon S3 中定义项目的自定义组件,您必须向角色添加权限,以允许核心设备检索组件项目。有关更多信息,请参阅 允许访问 S3 存储桶以获取组件项目

      如果您还没有用于组件工件的 S3 存储桶,则可以稍后在创建存储桶后添加这些权限。

    4. 从策略文档创建 IAM 策略。

      • ReplaceGreenGrassv2Token 交易所角色访问使用要创建的 IAM 策略的名称。

      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json

      如果请求成功,响应看上去与下面的示例类似。

      { "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
    5. 将 IAM 策略附加到令牌交换角色。

      • ReplaceGreenGrassv2Token Exchange 角色使用 IAM 角色的名称。

      • 将策略 ARN 替换为您在上一步中创建的 IAM 策略的 ARN。

      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess

      如果请求成功,命令没有任何输出。

  2. 创建Amazon IoT指向令牌交换角色角色的角色别名。

    • ReplaceGreenGrassCoore 令牌交换器角色别名使用要创建的角色别名的名称。

    • 将角色 ARN 替换为您在上一步中创建的 IAM 角色的 ARN。

    aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole

    如果请求成功,响应看上去与下面的示例类似。

    { "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
    注意

    要创建角色别名,您必须有权将令牌交换 IAM 角色传递给Amazon IoT. 如果您在尝试创建角色别名时收到错误消息,请检查Amazon用户拥有此权限。有关更多信息,请参阅 。授予用户权限以将角色传递给Amazon服务中的Amazon Identity and Access Management用户指南.

创建 Amazon IoT 策略

将设备注册为Amazon IoT事情,该设备可以使用数字证书进行身份验证Amazon. 此证书包含一个或多个Amazon IoT定义设备可用于证书的权限的策略。这些策略允许设备与通信Amazon IoT和Amazon IoT Greengrass.

与Amazon IoT队列配置,设备连接到Amazon IoT以创建和下载设备证书。在您在下一节中创建的队列预配置模板中,您可以指定是否Amazon IoT附着相同的Amazon IoT策略适用于所有设备的证书,或者为每台设备创建新策略。

在本部分中,您将创建Amazon IoT那个政策Amazon IoT附加到所有设备的证书。使用这种方法,您可以将所有设备的权限作为队列管理。如果你愿意创建一个新的Amazon IoT针对每台设备的策略,您可以跳过此部分,然后在定义队列模板时参考其中的策略。

创建 Amazon IoT策略

  • 创建Amazon IoT定义Amazon IoT您的 Greengrass 核心设备队列的权限。以下策略允许访问所有 MQTT 主题和 Greengrass 操作,因此您的设备可以与需要新 Greengrass 操作的自定义应用程序和 future 的更改一起使用。此政策还允许iot:AssumeRoleWithCertificate权限,允许您的设备使用您在上一节中创建的令牌交换角色。您可以基于自己的使用案例来限制此策略。有关更多信息,请参阅 最低Amazon IoT用于 的 策略Amazon IoT Greengrass V2核心设备

    执行以下操作:

    1. 创建包含Amazon IoTGreengrass 核心设备所需的策略文档。

      例如,在基于 Linux 的系统上,您可以运行以下命令来使用 GNU nano 创建文件。

      nano greengrass-v2-iot-policy.json

      将以下 JSON 复制到该文件中。

      • 替换iot:AssumeRoleWithCertificate使用 ARN 的Amazon IoT您在上一节中创建的角色别名。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] }
    2. 创建Amazon IoT策略文档中的。

      • ReplaceGreenGrassv2IOTHING 政策使用要创建的策略的名称。

      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json

      如果请求成功,响应看上去与下面的示例类似。

      { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Subscribe\", \"iot:Receive\", \"iot:Connect\", \"greengrass:*\" ], \"Resource\": [ \"*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:AssumeRoleWithCertificate\", \"Resource\": \"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\" } ] }", "policyVersionId": "1" }

创建队列预配置模板

Amazon IoT队列配置模板定义了如何配置Amazon IoT事物、策略和证书。要使用队列配置插件预配 Greengrass 核心设备,您必须创建一个模板,指定以下内容:

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT事物资源。您可以指定现有事物组的列表,以便在每个设备上线时将组件部署到每个设备。

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT策略资源。此资源可以定义以下属性之一:

    • 现有的名称Amazon IoT政策。如果选择此选项,则使用此模板创建的核心设备将使用相同的Amazon IoT策略,您可以将他们的权限作为队列进行管理。

    • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT策略文档。如果选择此选项,则使用此模板创建的每个核心设备都使用唯一的Amazon IoT策略,您可以管理每个核心设备的权限。

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon IoT证书资源。此证书资源必须使用AWS::IoT::Certificate::Id参数以将证书附加到核心设备。有关更多信息,请参阅 。即时预置中的Amazon IoT开发人员指南.

在模板中,您可以指定添加Amazon IoT事情到现有事物组的列表中。当核心设备连接到Amazon IoT Greengrass它首次为其成员的每个事物组接收 Greengrass 部署。您可以使用事物组在每台设备上线后立即将最新软件部署到每台设备。有关更多信息,请参阅 部署Amazon IoT Greengrass组件到设备

这些区域有:Amazon IoT服务需要权限才能创建和更新Amazon IoT您的资源Amazon Web Services 账户在置备设备时。为了给Amazon IoT服务访问权限,则创建 IAM 角色并在创建模板时提供该角色。Amazon IoT提供托管策略,AWSIoTThingsRegistration,这允许访问以下所有权限:Amazon IoT在置备设备时可能会使用。您可以使用此托管策略,也可以创建自定义策略,为您的使用案例规定托管策略中的权限范围。

在本节中,您将创建 IAM 角色,以允许该角色允许Amazon IoT为设备配置资源,然后您创建一个使用该 IAM 角色的队列配置模板。

创建队列预配置模板

  1. 创建 IAM 角色Amazon IoT可以假设在你的中配置资源Amazon Web Services 账户. 执行以下操作:

    1. 创建一个包含允许的信任策略文档的文件Amazon IoT以担任此角色。

      例如,在基于 Linux 的系统上,您可以运行以下命令来使用 GNU nano 创建文件。

      nano aws-iot-trust-policy.json

      将以下 JSON 复制到该文件中。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 使用信任策略文档创建 IAM 角色。

      • ReplaceGreenGrass 车队调配角色以创建 IAM 角色的名称。

      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json

      如果请求成功,响应看上去与下面的示例类似。

      { "Role": { "Path": "/", "RoleName": "GreengrassFleetProvisioningRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole", "CreateDate": "2021-07-26T00:15:12+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
    3. 查看AWSIoTThingsRegistration策略,允许访问以下所有权限:Amazon IoT在置备设备时可能会使用。您可以使用此托管策略,也可以创建自定义策略,为您的使用案例定义范围缩小的权限。如果您选择创建自定义策略,请立即创建。

    4. 将 IAM 策略附加到队列预配置角色。

      • ReplaceGreenGrass 车队调配角色使用 IAM 角色的名称。

      • 如果您在上一步中创建了自定义策略,请将策略 ARN 替换为要使用的 IAM 策略的 ARN。

      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration

      如果请求成功,命令没有任何输出。

  2. (可选)创建预先预置挂钩,这是Amazon Lambda函数,用于验证设备在注册期间提供的模板参数。您可以使用预置挂钩来更好地控制您的内置哪些设备以及有多少台设备Amazon Web Services 账户. 有关更多信息,请参阅 。预先预配置挂钩中的Amazon IoT Core开发人员指南.

  3. 创建队列预配置模板。执行以下操作:

    1. 创建一个文件以包含预配模板文档。

      例如,在基于 Linux 的系统上,您可以运行以下命令来使用 GNU nano 创建文件。

      nano greengrass-fleet-provisioning-template.json

      编写预配模板文档。您可以从以下示例预配模板开始,该模板指定创建Amazon IoT具有以下属性的事物:

      • 事物的名字是你在ThingName模板参数。

      • 该事物是您在ThingGroupName模板参数。事物组必须存在于Amazon Web Services 账户.

      • 东西的证书有Amazon IoT命名的策略GreengrassV2IoTThingPolicy挂载到此角色。

      有关更多信息,请参阅 。预置模板中的Amazon IoT Core开发人员指南.

      { "Parameters": { "ThingName": { "Type": "String" }, "ThingGroupName": { "Type": "String" }, "AWS::IoT::Certificate::Id": { "Type": "String" } }, "Resources": { "MyThing": { "OverrideSettings": { "AttributePayload": "REPLACE", "ThingGroups": "REPLACE", "ThingTypeName": "REPLACE" }, "Properties": { "AttributePayload": {}, "ThingGroups": [ { "Ref": "ThingGroupName" } ], "ThingName": { "Ref": "ThingName" } }, "Type": "AWS::IoT::Thing" }, "MyPolicy": { "Properties": { "PolicyName": "GreengrassV2IoTThingPolicy" }, "Type": "AWS::IoT::Policy" }, "MyCertificate": { "Properties": { "CertificateId": { "Ref": "AWS::IoT::Certificate::Id" }, "Status": "Active" }, "Type": "AWS::IoT::Certificate" } } }
      注意

      MyTthing我的政策, 和我的证书是标识队列配置模板中每个资源规范的任意名称。Amazon IoT不会在它从模板创建的资源中使用这些名称。您可以使用这些名称,也可以用有助于识别模板中的每个资源的值替换它们。

    2. 从预配置模板文档创建队列预配置模板。

      • ReplaceGreenGrasseF队配置模板以及要创建的模板的名称。

      • 将模板描述替换为您的模板的描述。

      • 将预配置角色 ARN 替换为您之前创建的角色的 ARN。

      Linux or Unix
      aws iot create-provisioning-template \ --template-name GreengrassFleetProvisioningTemplate \ --description "A provisioning template for Greengrass core devices." \ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \ --template-body file://greengrass-fleet-provisioning-template.json \ --enabled
      Windows Command Prompt (CMD)
      aws iot create-provisioning-template ^ --template-name GreengrassFleetProvisioningTemplate ^ --description "A provisioning template for Greengrass core devices." ^ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^ --template-body file://greengrass-fleet-provisioning-template.json ^ --enabled
      PowerShell
      aws iot create-provisioning-template ` --template-name GreengrassFleetProvisioningTemplate ` --description "A provisioning template for Greengrass core devices." ` --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ` --template-body file://greengrass-fleet-provisioning-template.json ` --enabled
      注意

      如果您创建了预配置挂钩,Lambda 使用--pre-provisioning-hook参数。

      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook

      如果请求成功,响应看上去与下面的示例类似。

      { "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate", "templateName": "GreengrassFleetProvisioningTemplate", "defaultVersionId": 1 }

创建预配置申请证书和私有密钥

声明证书是允许设备注册为的 X.509 证书Amazon IoT并检索唯一的 X.509 设备证书以用于常规操作。创建索赔证书之后,您可以附加Amazon IoT允许设备使用它来创建唯一的设备证书并使用队列配置模板进行配置的策略。具有声明证书的设备只能使用您在Amazon IoT政策。

在本节中,您将创建申请证书,然后将其配置为设备以与您在上一节中创建的队列预配置模板一起使用。

重要

预配置申请私有密钥应始终得到保护,包括在 Greengrass 核心设备上。建议使用 CloudWatch 指标和日志以监控滥用迹象,例如未经授予使用申请证书来预配置设备。如果您检测到滥用,请禁用预配置申请证书,以使其不能用于设备预配置。有关更多信息,请参阅 。监控Amazon IoT中的Amazon IoT Core开发人员指南.

为了帮助你更好地管理在你的自己注册的设备数量以及哪些设备Amazon Web Services 账户,您可以在创建队列配置模板时指定预置挂钩。预先预置挂钩是Amazon Lambda函数,用于验证设备在注册期间提供的模板参数。例如,您可以创建一个预置挂接,用于根据数据库检查设备 ID,以验证设备是否具有预配权限。有关更多信息,请参阅 。预先预配置挂钩中的Amazon IoT Core开发人员指南.

创建预配置申请证书和私有密钥

  1. 创建一个文件夹,从中下载申请证书和私有密钥。

    mkdir claim-certs
  2. 创建并保存证书和私有密钥以用于预配置。Amazon IoT提供由 Amazon Root 证书颁发机构 (CA) 签发的客户端证书。

    Linux or Unix
    aws iot create-keys-and-certificate \ --certificate-pem-outfile "claim-certs/claim.pem.crt" \ --public-key-outfile "claim-certs/claim.public.pem.key" \ --private-key-outfile "claim-certs/claim.private.pem.key" \ --set-as-active
    Windows Command Prompt (CMD)
    aws iot create-keys-and-certificate ^ --certificate-pem-outfile "claim-certs/claim.pem.crt" ^ --public-key-outfile "claim-certs/claim.public.pem.key" ^ --private-key-outfile "claim-certs/claim.private.pem.key" ^ --set-as-active
    PowerShell
    aws iot create-keys-and-certificate ` --certificate-pem-outfile "claim-certs/claim.pem.crt" ` --public-key-outfile "claim-certs/claim.public.pem.key" ` --private-key-outfile "claim-certs/claim.private.pem.key" ` --set-as-active

    如果请求成功,响应将包含有关证书的信息。保存证书的 ARN 以便以后使用。

  3. 创建并附加Amazon IoT允许设备使用证书创建唯一的设备证书并使用队列配置模板进行配置的策略。以下策略授予对设备预配置 MQTT API 的访问权限。有关更多信息,请参阅 。设备预配置 MQTT API中的Amazon IoT Core开发人员指南.

    执行以下操作:

    1. 创建包含Amazon IoTGreengrass 核心设备所需的策略文档。

      例如,在基于 Linux 的系统上,您可以运行以下命令来使用 GNU nano 创建文件。

      nano greengrass-provisioning-claim-iot-policy.json

      将以下 JSON 复制到该文件中。

      • 替换的每个实例领域使用Amazon Web Services 区域您在哪里设置车队配置。

      • 替换的每个实例account-id与您的Amazon Web Services 账户ID。

      • 替换的每个实例GreenGrasseF队配置模板使用您在上一节中创建的队列预配置模板的名称。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] } ] }
    2. 创建Amazon IoT策略文档中的。

      • ReplaceGreenGrass 提供索赔政策使用要创建的策略的名称。

      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json

      如果请求成功,响应看上去与下面的示例类似。

      { "policyName": "GreengrassProvisioningClaimPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:Connect\", \"Resource\": \"*\" }, { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\" ], \"Resource\": [ \"arn:aws:iot:region:account-id:topic/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:Subscribe\", \"Resource\": [ \"arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] } ] }", "policyVersionId": "1" }
  4. 将Amazon IoT策略指向预配置申请证书。

    • ReplaceGreenGrass 提供索赔政策以附加的策略的名称。

    • 将目标 ARN 替换为预配置申请证书的 ARN。

    aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    如果请求成功,命令没有任何输出。

现在,您拥有了设备可以用来注册的预配声明证书和私钥Amazon IoT并将自己配置为 Greengrass 核心设备。您可以在制造过程中将声明证书和私钥嵌入设备中,或者在安装Amazon IoT Greengrass核心软件。有关更多信息,请参阅安装Amazon IoT Greengrass核心软件Amazon IoT队列预配置