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

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

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

安装Amazon IoT Greengrass具有队列配置功能的核心软件,您必须先在您的中设置以下资源Amazon Web Services 账户。这些资源使设备能够注册自己Amazon IoT并作为 Greengrass 的核心设备运行。只需按照本节中的步骤操作一次,即可在中创建和配置这些资源Amazon Web Services 账户。

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

  • 一个Amazon IoT指向代币交换角色的角色别名。

  • (可选)一个Amazon IoT策略,核心设备使用哪些来授权对的呼叫Amazon IoT和Amazon IoT Greengrass服务。这个Amazon IoT策略必须允许iot:AssumeRoleWithCertificate许可Amazon IoT指向代币交换角色的角色别名。

    你可以使用单个Amazon IoT针对队列中所有核心设备的策略,或者您可以配置队列配置模板来创建Amazon IoT每台核心设备的策略。

  • 一个Amazon IoT舰队配置模板。此模板必须指定以下内容:

    • 一个Amazon IoT事物资源。您可以指定现有事物组列表,以便在每台设备联机时将组件部署到每台设备。

    • 一个Amazon IoT政策资源。此资源可以定义以下属性之一:

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

      • 一个Amazon IoT政策文件。如果选择此选项,则根据此模板创建的每台核心设备都使用唯一的Amazon IoT策略,您可以管理每台核心设备的权限。

    • 一个Amazon IoT证书资源。此证书资源必须使用AWS::IoT::Certificate::Id用于将证书附加到核心设备的参数。有关更多信息,请参阅Just-in-time 配置Amazon IoT开发者指南

  • 一个Amazon IoT队列配置模板的配置声明证书和私钥。您可以在制造过程中将此证书和私钥嵌入到设备中,这样设备就可以在上线时自行注册和配置。

    重要

    供应声称私钥应始终受到保护,包括在 Greengrass 核心设备上。我们建议您使用亚马逊 CloudWatch 用于监控滥用迹象的指标和日志,例如未经授权使用索赔证书来配置设备。如果您发现滥用,请禁用配置声明证书,使其无法用于设备配置。有关更多信息,请参阅监控Amazon IoTAmazon IoT Core开发者指南

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

  • 一个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. 使用信任策略文档创建令牌交换角色。

      • 替换GreenGrassv2TokenExchangeRole使用要创建的 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 策略。

      • 替换GreenGrassv2TokenExchangeRoleAccess使用要创建的 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 策略附加到令牌交换角色。

      • 替换GreenGrassv2TokenExchangeRole使用 IAM 角色的名称。

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

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

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

  2. 创建一个Amazon IoT指向代币交换角色的角色别名。

    • 替换GreengrassCoreTokenExchangeRoleAlias使用要创建的角色别名的名称。

    • 将角色 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 操作的未来更改。该政策还允许iot:AssumeRoleWithCertificate权限,允许您的设备使用您在上一节中创建的令牌交换角色。您可以根据自己的用例限制此政策。有关更多信息,请参阅Amazon IoT Greengrass V2核心设备的最低Amazon IoT政策

    执行以下操作:

    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政策文件中的政策。

      • 替换GreenGrassv2IoTThingPolicy使用要创建的策略的名称。

      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 核心设备,必须创建一个指定以下内容的模板:

  • 一个Amazon IoT事物资源。您可以指定现有事物组列表,以便在每台设备联机时将组件部署到每台设备。

  • 一个Amazon IoT政策资源。此资源可以定义以下属性之一:

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

    • 一个Amazon IoT政策文件。如果选择此选项,则根据此模板创建的每台核心设备都使用唯一的Amazon IoT策略,您可以管理每台核心设备的权限。

  • 一个Amazon IoT证书资源。此证书资源必须使用AWS::IoT::Certificate::Id用于将证书附加到核心设备的参数。有关更多信息,请参阅Just-in-time 配置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 角色。

      • 替换GreengrassFleetProvisioningRole使用要创建的 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 策略附加到队列配置角色。

      • 替换GreengrassFleetProvisioningRole使用 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" } } }
      注意

      MyThingMyPolicy,以及MyCertificate是任意名称,用于标识舰队配置模板中的每个资源规格。Amazon IoT不会在根据模板创建的资源中使用这些名称。您可以使用这些名称或将其替换为有助于识别模板中每种资源的值。

    2. 根据配置模板文档创建队列配置模板。

      • 替换GreengrassFleetProvisioningTemplate使用要创建的模板的名称。

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

      • 将配置角色 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 函数的 ARN--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 IoTAmazon IoT Core开发者指南

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

创建置备申请证书和私钥
  1. 创建一个文件夹,用于下载索赔证书和私钥。

    mkdir claim-certs
  2. 创建并保存用于置备的证书和私钥。Amazon IoT提供由亚马逊根证书颁发机构 (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 APIAmazon IoT Core开发者指南

    执行以下操作:

    1. 创建一个包含以下内容的文件Amazon IoTGreengrass 核心设备所需的政策文件。

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

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

      将以下 JSON 复制到文件中。

      • 替换的每个实例领域与Amazon Web Services 区域您可以在其中设置队列配置。

      • 替换的每个实例账号和你的Amazon Web Services 账户同义词。

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

      { "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政策文件中的政策。

      • 替换GreengrassProvisioningClaimPolicy使用要创建的策略的名称。

      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供应声明证书的策略。

    • 替换GreengrassProvisioningClaimPolicy并附上要附加的策略的名称。

    • 将目标 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队列配置功能的 C Amazon IoT Greengrass ore 软件