코어 디바이스에 AWS 서비스와 상호 작용 권한 부여 - AWS IoT Greengrass

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

코어 디바이스에 AWS 서비스와 상호 작용 권한 부여

AWS IoT Greengrass 코어 디바이스에서는 AWS IoT Core 자격 증명 공급자를 통해 AWS 서비스 직접 호출 권한을 부여합니다. AWS IoT Core 자격 증명 공급자를 통해 디바이스에서 X.509 인증서를 고유한 디바이스 ID로 사용하여 AWS 요청을 인증합니다. 따라서 AWS IoT Greengrass 코어 디바이스에 AWS 액세스 키 ID와 비밀 액세스 키를 저장할 필요가 없습니다. 자세한 내용은 AWS IoT Core 개발자 안내서AWS 서비스에 직접 호출 권한 부여하기를 참조하세요.

AWS IoT Greengrass 코어 소프트웨어를 실행하면 코어 디바이스에 필요한 AWS 리소스를 프로비저닝하도록 선택할 수 있습니다. 여기에는 코어 디바이스에서 AWS IoT Core 자격 증명 공급자를 통해 수임하는 AWS Identity and Access Management(IAM) 역할이 포함되어 있습니다. --provision true 인수를 사용하여 코어 디바이스에 임시 AWS 자격 증명 가져오기를 허용하는 역할과 정책을 구성합니다. 이 인수에서는 이 IAM 역할을 지목하는 AWS IoT 역할 별칭도 구성됩니다. IAM 역할의 이름과 사용할 AWS IoT 역할 별칭을 지정할 수 있습니다. 이러한 이름 파라미터 없이 --provision true를 지정하면 Greengrass 코어 디바이스에서는 다음 기본 리소스를 생성하여 사용합니다.

  • IAM 역할: GreengrassV2TokenExchangeRole

    역할에는 이름이 GreengrassV2TokenExchangeRoleAccess인 정책과 credentials.iot.amazonaws.com에 역할 수임이 허용되는 신뢰 관계가 있습니다. 코어 디바이스에 대한 최소 권한이 정책에 포함되어 있습니다.

    중요

    이 정책에는 S3 버킷의 파일에 대한 액세스 권한이 포함되어 있지 않습니다. 역할에 권한을 추가하여 코어 디바이스에서 S3 버킷의 구성 요소 아티팩트를 검색하도록 허용해야 합니다. 자세한 내용은 구성 요소 아티팩트에 대한 S3 버킷 액세스 허용 단원을 참조하세요.

  • AWS IoT 역할 별칭: GreengrassV2TokenExchangeRoleAlias

    이 역할 별칭에서는 IAM 역할이 참조됩니다.

자세한 내용은 3단계: AWS IoT Greengrass 코어 소프트웨어 설치 섹션을 참조하세요.

기존 코어 디바이스에 대한 역할 별칭도 설정할 수 있습니다. 그렇게 하려면 Greengrass nucleus 구성 요소iotRoleAlias 구성 파라미터를 구성합니다.

이 IAM 역할에 대한 임시 AWS 자격 증명을 획득하여 사용자 지정 구성 요소에서 AWS 작업을 수행할 수 있습니다. 자세한 내용은 AWS 서비스와 상호 작용 섹션을 참조하세요.

코어 디바이스에 대한 서비스 역할 권한

역할에서는 다음 서비스의 역할 수임이 허용됩니다.

  • credentials.iot.amazonaws.com

AWS IoT Greengrass 코어 소프트웨어를 사용하여 이 역할을 생성하면 해당 역할에서는 다음 권한 정책을 사용하여 코어 디바이스에서 연결하고 AWS로 로그를 보내는 것을 허용합니다. 정책의 이름 기본값은 Access로 끝나는 IAM 역할의 이름입니다. 예를 들어, 기본 IAM 역할 이름을 사용하는 경우에는 이 정책의 이름이 GreengrassV2TokenExchangeRoleAccess입니다.

Greengrass nucleus v2.5.0 and later
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
v2.4.x
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
Earlier than v2.4.0
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "s3:GetBucketLocation" ], "Resource": "*" } ] }

구성 요소 아티팩트에 대한 S3 버킷 액세스 허용

기본 코어 디바이스 역할에서는 코어 디바이스에 S3 버킷 액세스를 허용하지 않습니다. S3 버킷에 아티팩트가 있는 구성 요소를 배포하려면 코어 디바이스에 구성 요소 아티팩트 다운로드를 허용하는 s3:GetObject 권한을 추가해야 합니다. 새 정책을 코어 디바이스에 추가하여 이 권한을 부여할 수 없습니다.

Amazon S3의 구성 요소 아티팩트에 대한 액세스를 허용하는 정책을 추가하는 방법
  1. component-artifact-policy.json이라는 파일을 생성하고 다음 JSON을 파일로 복사합니다. 이 정책에서는 S3 버킷의 모든 파일에 대한 액세스를 허용합니다. amzn-s3-demo-bucket을 S3 버킷의 이름으로 바꾸고 액세스를 코어 디바이스에 허용합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
  2. 다음 명령을 사용하여 component-artifact-policy.json의 정책 문서에서 정책을 생성합니다.

    Linux or Unix
    aws iam create-policy \ --policy-name MyGreengrassV2ComponentArtifactPolicy \ --policy-document file://component-artifact-policy.json
    Windows Command Prompt (CMD)
    aws iam create-policy ^ --policy-name MyGreengrassV2ComponentArtifactPolicy ^ --policy-document file://component-artifact-policy.json
    PowerShell
    aws iam create-policy ` --policy-name MyGreengrassV2ComponentArtifactPolicy ` --policy-document file://component-artifact-policy.json

    출력의 정책 메타데이터에서 Amazon 리소스 이름(ARN) 정책을 복사합니다. 다음 단계에서 이 ARN을 사용하여 이 정책을 코어 디바이스에 연결합니다.

  3. 다음 명령을 실행하여 정책을 코어 디바이스 역할에 연결합니다. AWS IoT Greengrass 코어 소프트웨어를 실행했을 때 지정한 역할의 이름으로 GreengrassV2TokenExchangeRole을 바꿉니다. 그런 다음에 ARN을 이전 단계의 ARN으로 바꿉니다.

    Linux or Unix
    aws iam attach-role-policy \ --role-name GreengrassV2TokenExchangeRole \ --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
    Windows Command Prompt (CMD)
    aws iam attach-role-policy ^ --role-name GreengrassV2TokenExchangeRole ^ --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
    PowerShell
    aws iam attach-role-policy ` --role-name GreengrassV2TokenExchangeRole ` --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy

    명령에 출력이 없으면 성공한 것이며, 이 S3 버킷에 업로드하는 아티팩트에 코어 디바이스에서 액세스할 수 있습니다.