Greengrass 코어 디바이스를 위한 AWS IoT 플릿 프로비저닝 설정 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Greengrass 코어 디바이스를 위한 AWS IoT 플릿 프로비저닝 설정

플릿 프로비저닝과 함께 AWS IoT Greengrass 코어 소프트웨어를 설치하려면 먼저 컴퓨터에 다음 리소스를 설정해야 합니다. AWS 계정 이러한 리소스를 통해 디바이스는 Greengrass 코어 디바이스에 AWS IoT 등록되고 Greengrass 코어 디바이스로 작동할 수 있습니다. 이 섹션의 단계를 한 번 따라 해당 리소스를 만들고 구성하십시오. AWS 계정

  • 코어 디바이스가 서비스 호출을 승인하는 데 사용하는 토큰 교환 IAM 역할. AWS

  • 토큰 AWS IoT 교환 역할을 가리키는 역할 별칭입니다.

  • (선택 사항) 핵심 장치가 AWS IoT 및 AWS IoT Greengrass 서비스에 대한 호출을 승인하는 데 사용하는 AWS IoT 정책입니다. 이 AWS IoT 정책은 토큰 교환 역할을 가리키는 AWS IoT 역할 별칭에 대한 iot:AssumeRoleWithCertificate 권한을 허용해야 합니다.

    플릿의 모든 코어 디바이스에 대해 단일 AWS IoT 정책을 사용하거나 플릿 프로비저닝 템플릿을 구성하여 각 코어 디바이스에 대한 AWS IoT 정책을 생성할 수 있습니다.

  • AWS IoT플릿 프로비저닝 템플릿. 이 템플릿은 다음을 지정해야 합니다.

    • AWS IoT사물 리소스. 기존 사물 그룹 목록을 지정하여 온라인 상태가 되면 각 장치에 구성 요소를 배포할 수 있습니다.

    • AWS IoT정책 리소스. 이 리소스는 다음 속성 중 하나를 정의할 수 있습니다.

      • 기존 AWS IoT 정책의 이름. 이 옵션을 선택하면 이 템플릿에서 생성한 코어 디바이스가 동일한 AWS IoT 정책을 사용하며 해당 권한을 플릿으로 관리할 수 있습니다.

      • AWS IoT정책 문서. 이 옵션을 선택하면 이 템플릿으로 만든 각 코어 장치는 고유한 AWS IoT 정책을 사용하며 각 개별 코어 장치에 대한 권한을 관리할 수 있습니다.

    • AWS IoT인증서 리소스. 이 인증서 리소스는 AWS::IoT::Certificate::Id 매개변수를 사용하여 인증서를 코어 장치에 연결해야 합니다. 자세한 내용은 AWS IoT개발자 안내서의 J ust-in-time 프로비저닝을 참조하십시오.

  • 플릿 AWS IoT 프로비저닝 템플릿의 프로비저닝 클레임 인증서 및 개인 키. 제조 과정에서 이 인증서와 개인 키를 디바이스에 내장할 수 있으므로 디바이스가 온라인 상태가 되면 스스로 등록하고 프로비저닝할 수 있습니다.

    중요

    프로비저닝 클레임 프라이빗 키는 Greengrass 코어 디바이스를 포함하여 항상 보호되어야 합니다. Amazon CloudWatch 지표 및 로그를 사용하여 디바이스 프로비저닝을 위한 청구 인증서의 무단 사용 등 오용의 징후가 있는지 모니터링하는 것이 좋습니다. 오용을 감지하면 프로비저닝 클레임 인증서를 비활성화하여 디바이스 프로비저닝에 사용할 수 없도록 하십시오. 자세한 내용을 알아보려면 AWS IoT Core 개발자 안내서AWS IoT 모니터링를 참조하세요.

    디바이스 수와 등록되는 디바이스를 더 잘 관리할 수 있도록 플릿 프로비저닝 템플릿을 생성할 때 사전 프로비저닝 후크를 지정할 수 있습니다. AWS 계정 사전 프로비저닝 후크는 등록 시 디바이스가 제공하는 템플릿 파라미터의 유효성을 검사하는 AWS Lambda 함수입니다. 예를 들어, 데이터베이스를 기준으로 기기 ID를 검사하여 기기에 프로비전 권한이 있는지 확인하는 사전 프로비저닝 후크를 만들 수 있습니다. 자세한 내용은 개발자 안내서의 사전 프로비저닝 후크를 참조하십시오. AWS IoT Core

  • 디바이스가 플릿 프로비저닝 템플릿을 등록하고 사용할 수 있도록 하기 위해 프로비저닝 클레임 인증서에 연결하는 AWS IoT 정책입니다.

토큰 교환 역할 생성

Greengrass 코어 디바이스는 토큰 교환 역할이라고 하는 IAM 서비스 역할을 사용하여 서비스 호출을 승인합니다. AWS 디바이스는 AWS IoT 자격 증명 공급자를 사용하여 이 역할에 대한 임시 AWS 자격 증명을 가져오고, 이를 통해 디바이스가 Amazon Logs와 상호 작용하고AWS IoT, Amazon Logs에 로그를 전송하고, Amazon CloudWatch S3에서 사용자 지정 구성 요소 아티팩트를 다운로드할 수 있습니다. 자세한 설명은 핵심 장치가 서비스와 상호 작용할 AWS 수 있도록 권한 부여 섹션을 참조하세요.

AWS IoT역할 별칭을 사용하여 Greengrass 코어 디바이스의 토큰 교환 역할을 구성합니다. 역할 별칭을 사용하면 장치의 토큰 교환 역할을 변경하면서도 장치 구성은 동일하게 유지할 수 있습니다. 자세한 내용은 AWS IoT Core개발자 안내서의 AWS서비스에 대한 다이렉트 콜 승인을 참조하십시오.

이 섹션에서는 토큰 교환 IAM 역할과 해당 역할을 가리키는 AWS 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. 신뢰 정책 문서를 사용하여 토큰 교환 역할을 생성합니다.

      • GreenGrassV2를 TokenExchangeRole 생성할 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 정책을 생성합니다.

      • GreenGrassV2를 TokenExchangeRoleAccess 생성할 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 정책을 토큰 교환 역할에 연결합니다.

      • GreenGrassV2를 TokenExchangeRole IAM 역할 이름으로 바꾸십시오.

      • 정책 ARN을 이전 단계에서 생성한 IAM 정책의 ARN으로 교체합니다.

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

      요청이 성공하면 명령이 출력되지 않습니다.

  2. 토큰 교환 AWS 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 역할을 전달할 권한이 있어야 합니다. AWS IoT 역할 별칭을 만들려고 할 때 오류 메시지가 표시되면 AWS 사용자에게 이 권한이 있는지 확인하세요. 자세한 내용은 사용 설명서의 AWS 서비스에 역할을 전달할 수 있는 권한 부여를 AWS Identity and Access Management 참조하십시오.

AWS IoT 정책 생성

장치를 사물로 등록한 후 해당 장치는 디지털 인증서를 사용하여 인증할 수 있습니다. AWS IoT AWS 이 인증서에는 장치가 인증서와 함께 사용할 수 있는 권한을 정의하는 하나 이상의 AWS IoT 정책이 포함되어 있습니다. 이러한 정책을 통해 장치는 AWS IoT 및 와 통신할 수 AWS IoT Greengrass 있습니다.

AWS IoT플릿 프로비저닝을 사용하면 디바이스를 AWS IoT 연결하여 디바이스 인증서를 생성하고 다운로드합니다. 다음 섹션에서 생성하는 플릿 프로비저닝 템플릿에서 모든 디바이스의 인증서에 동일한 AWS IoT 정책을 AWS IoT 연결할지 아니면 각 디바이스에 대해 새 정책을 생성할지 지정할 수 있습니다.

이 섹션에서는 모든 기기의 인증서에 AWS IoT 연결하는 AWS IoT 정책을 생성합니다. 이 접근 방식을 사용하면 모든 디바이스의 권한을 플릿으로 관리할 수 있습니다. 각 디바이스에 대해 새 AWS IoT 정책을 생성하려는 경우 이 섹션을 건너뛰고 플릿 템플릿을 정의할 때 해당 섹션의 정책을 참조할 수 있습니다.

AWS IoT 정책 생성
  • Greengrass 코어 디바이스 플릿에 대한 AWS IoT 권한을 정의하는 AWS IoT 정책을 생성하십시오. 다음 정책은 모든 MQTT 주제 및 Greengrass 작업에 대한 액세스를 허용하므로 장치가 사용자 지정 애플리케이션 및 새로운 Greengrass 작업이 필요한 향후 변경 사항과 함께 작동하도록 할 수 있습니다. 이 정책은 또한 iot:AssumeRoleWithCertificate 권한을 허용하여 이전 섹션에서 생성한 토큰 교환 역할을 장치가 사용할 수 있도록 합니다. 사용 사례에 따라 이 정책을 제한할 수 있습니다. 자세한 설명은 AWS IoT Greengrass V2코어 디바이스에 대한 최소 AWS IoT 정책 섹션을 참조하세요.

    다음을 따릅니다.

    1. Greengrass 코어 디바이스에 필요한 AWS IoT 정책 문서가 포함된 파일을 생성합니다.

      예를 들어, Linux 기반 시스템에서는 다음 명령을 실행하여 GNU nano를 사용하여 파일을 생성할 수 있습니다.

      nano greengrass-v2-iot-policy.json

      다음 JSON을 파일에 복사합니다.

      • iot:AssumeRoleWithCertificate리소스를 이전 섹션에서 생성한 AWS IoT 역할 별칭의 ARN으로 교체합니다.

      { "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. AWS IoT정책 문서에서 정책을 생성합니다.

      • GreenGrassV2IoT를 ThingPolicy 생성할 정책의 이름으로 바꾸십시오.

      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" }

플릿 프로비저닝 템플릿을 생성하세요.

AWS IoT플릿 프로비저닝 템플릿은 AWS IoT 사물, 정책 및 인증서를 프로비저닝하는 방법을 정의합니다. 플릿 프로비저닝 플러그인으로 Greengrass 코어 디바이스를 프로비저닝하려면 다음을 지정하는 템플릿을 생성해야 합니다.

  • AWS IoT사물 리소스. 기존 사물 그룹 목록을 지정하여 온라인 상태가 되면 각 장치에 구성 요소를 배포할 수 있습니다.

  • AWS IoT정책 리소스. 이 리소스는 다음 속성 중 하나를 정의할 수 있습니다.

    • 기존 AWS IoT 정책의 이름. 이 옵션을 선택하면 이 템플릿에서 생성한 코어 디바이스가 동일한 AWS IoT 정책을 사용하며 해당 권한을 플릿으로 관리할 수 있습니다.

    • AWS IoT정책 문서. 이 옵션을 선택하면 이 템플릿으로 만든 각 코어 장치는 고유한 AWS IoT 정책을 사용하며 각 개별 코어 장치에 대한 권한을 관리할 수 있습니다.

  • AWS IoT인증서 리소스. 이 인증서 리소스는 AWS::IoT::Certificate::Id 매개변수를 사용하여 인증서를 코어 장치에 연결해야 합니다. 자세한 내용은 AWS IoT개발자 안내서의 J ust-in-time 프로비저닝을 참조하십시오.

템플릿에서 기존 AWS IoT 사물 그룹 목록에 사물을 추가하도록 지정할 수 있습니다. 코어 디바이스가 AWS IoT Greengrass 처음으로 연결되면 구성원인 각 사물 그룹에 대해 Greengrass 배포를 수신합니다. 사물 그룹을 사용하면 온라인 상태가 되는 즉시 각 장치에 최신 소프트웨어를 배포할 수 있습니다. 자세한 설명은 디바이스에 AWS IoT Greengrass 구성 요소 배포 섹션을 참조하세요.

AWS IoT서비스를 이용하려면 디바이스를 프로비저닝할 AWS 계정 때 AWS IoT 리소스를 생성하고 업데이트할 수 있는 권한이 필요합니다. AWS IoT서비스에 액세스 권한을 부여하려면 IAM 역할을 생성하고 템플릿을 생성할 때 제공해야 합니다. AWS IoT디바이스를 프로비저닝할 때 사용할 AWS IoT 수 있는 모든 권한에 대한 액세스를 허용하는 관리형 정책을 제공합니다. AWSIoTThingsRegistration 이 관리형 정책을 사용하거나 사용 사례에 맞게 관리형 정책의 권한 범위를 좁히는 사용자 지정 정책을 만들 수 있습니다.

이 섹션에서는 디바이스용 리소스를 AWS IoT 프로비저닝할 수 있는 IAM 역할을 생성하고 해당 IAM 역할을 사용하는 플릿 프로비저닝 템플릿을 생성합니다.

플릿 프로비저닝 템플릿을 만들려면
  1. 내 리소스를 프로비저닝하는 역할을 맡을 AWS IoT 수 있는 IAM 역할을 생성하십시오. AWS 계정 다음을 따릅니다.

    1. 역할을 AWS 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 역할을 생성합니다.

      • 생성할 IAM 역할의 GreengrassFleetProvisioningRole이름으로 바꾸십시오.

      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. 기기를 프로비저닝할 때 사용할 AWS IoT 수 있는 모든 권한에 대한 액세스를 허용하는 AWSIoTThingsRegistration정책을 검토하세요. 이 관리형 정책을 사용하거나 사용 사례에 맞게 범위 축소된 권한을 정의하는 사용자 지정 정책을 만들 수 있습니다. 사용자 지정 정책을 생성하기로 결정했다면 지금 생성하세요.

    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. (선택 사항) 사전 프로비저닝 후크를 만드세요. 사전 프로비저닝 후크는 등록 중에 기기가 제공하는 템플릿 매개변수의 유효성을 검사하는 AWS Lambda 기능입니다. 사전 프로비저닝 후크를 사용하면 어떤 디바이스를 얼마나 많이 온보딩할지 더 세밀하게 제어할 수 있습니다. AWS 계정 자세한 내용은 개발자 안내서의 사전 프로비저닝 후크를 참조하십시오. AWS IoT Core

  3. 플릿 프로비저닝 템플릿을 만드세요. 다음을 따릅니다.

    1. 프로비저닝 템플릿 문서를 포함할 파일을 생성하십시오.

      예를 들어, Linux 기반 시스템에서는 다음 명령을 실행하여 GNU nano를 사용하여 파일을 만들 수 있습니다.

      nano greengrass-fleet-provisioning-template.json

      프로비저닝 템플릿 문서를 작성하세요. 다음 예제 프로비저닝 템플릿에서 시작할 수 있습니다. 이 템플릿은 다음과 같은 속성을 가진 AWS IoT 사물을 생성하도록 지정합니다.

      • 사물의 이름은 ThingName 템플릿 파라미터에 지정하는 값입니다.

      • 사물은 ThingGroupName 템플릿 매개변수에 지정하는 사물 그룹의 멤버입니다. 사물 그룹은 사용자 내에 있어야 합니다AWS 계정.

      • 사물의 인증서에는 이름이 지정된 AWS IoT 정책이 GreengrassV2IoTThingPolicy 첨부되어 있습니다.

      자세한 내용은 AWS 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는 플릿 프로비저닝 템플릿의 각 리소스 사양을 식별하는 임의의 이름입니다. AWS 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 }

프로비저닝 클레임 인증서 및 개인 키를 생성합니다.

클레임 인증서는 디바이스를 AWS IoT 사물로 등록하고 일반적인 작업에 사용할 고유한 X.509 디바이스 인증서를 검색할 수 있는 X.509 인증서입니다. 클레임 인증서를 생성한 후에는 디바이스에서 이를 사용하여 고유한 디바이스 인증서를 생성하고 플릿 프로비저닝 템플릿으로 프로비저닝할 수 있도록 허용하는 AWS IoT 정책을 연결합니다. 클레임 인증서가 있는 장치는 정책에서 허용하는 프로비저닝 템플릿만 사용하여 프로비저닝할 수 있습니다. AWS IoT

이 섹션에서는 클레임 인증서를 생성하고 이전 섹션에서 만든 플릿 프로비저닝 템플릿과 함께 사용할 디바이스에 맞게 구성합니다.

중요

프로비저닝 클레임 프라이빗 키는 Greengrass 코어 디바이스를 포함하여 항상 보호되어야 합니다. Amazon CloudWatch 지표 및 로그를 사용하여 디바이스 프로비저닝을 위한 청구 인증서의 무단 사용 등 오용의 징후가 있는지 모니터링하는 것이 좋습니다. 오용을 감지하면 프로비저닝 클레임 인증서를 비활성화하여 디바이스 프로비저닝에 사용할 수 없도록 하십시오. 자세한 내용을 알아보려면 AWS IoT Core 개발자 안내서AWS IoT 모니터링를 참조하세요.

디바이스 수와 등록되는 디바이스를 더 잘 관리할 수 있도록 플릿 프로비저닝 템플릿을 생성할 때 사전 프로비저닝 후크를 지정할 수 있습니다. AWS 계정 사전 프로비저닝 후크는 등록 시 디바이스가 제공하는 템플릿 파라미터의 유효성을 검사하는 AWS Lambda 함수입니다. 예를 들어, 데이터베이스를 기준으로 기기 ID를 검사하여 기기에 프로비전 권한이 있는지 확인하는 사전 프로비저닝 후크를 만들 수 있습니다. 자세한 내용은 개발자 안내서의 사전 프로비저닝 후크를 참조하십시오. AWS IoT Core

프로비저닝 클레임 인증서 및 개인 키를 만들려면
  1. 클레임 인증서와 개인 키를 다운로드할 폴더를 만드십시오.

    mkdir claim-certs
  2. 프로비저닝에 사용할 인증서와 개인 키를 만들고 저장합니다. AWS IoTAmazon 루트 인증 기관 (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. 디바이스가 인증서를 사용하여 고유한 디바이스 인증서를 생성하고 플릿 프로비저닝 템플릿으로 프로비저닝할 수 있도록 허용하는 AWS IoT 정책을 생성하고 첨부하십시오. 다음 정책은 기기 프로비저닝 MQTT API에 대한 액세스를 허용합니다. 자세한 내용은 개발자 안내서의 디바이스 프로비저닝 MQTT API를 참조하십시오. AWS IoT Core

    다음을 따릅니다.

    1. Greengrass 코어 디바이스에 필요한 AWS IoT 정책 문서가 포함된 파일을 생성합니다.

      예를 들어, Linux 기반 시스템에서는 다음 명령을 실행하여 GNU nano를 사용하여 파일을 생성할 수 있습니다.

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

      다음 JSON을 파일에 복사합니다.

      • 지역의 각 인스턴스를 플릿 프로비저닝을 설정한 AWS 리전 곳으로 바꾸십시오.

      • account-id의 각 인스턴스를 ID로 바꾸십시오. AWS 계정

      • 의 각 인스턴스를 이전 섹션에서 생성한 플릿 프로비저닝 템플릿의 이름으로 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. AWS 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. AWS IoT정책을 프로비저닝 클레임 인증서에 연결합니다.

    • 첨부할 정책의 GreengrassProvisioningClaimPolicy이름으로 바꾸십시오.

    • 대상 ARN을 프로비저닝 클레임 인증서의 ARN으로 교체합니다.

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

    요청이 성공하면 명령이 출력되지 않습니다.

이제 디바이스가 Greengrass 코어 디바이스에 등록하고 스스로를 프로비저닝하는 데 사용할 수 있는 AWS IoT 프로비저닝 클레임 인증서와 개인 키가 생겼습니다. 제조 과정에서 클레임 인증서와 개인 키를 장치에 내장하거나 Core 소프트웨어를 설치하기 전에 인증서와 키를 장치에 복사할 수 있습니다. AWS IoT Greengrass 자세한 내용은 AWS IoT 플릿 프로비저닝으로 AWS IoT Greengrass Core 소프트웨어 설치을(를) 참조하세요.