Greengrass 서비스 역할 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트가 AWS IoT Greengrass V1 릴리스되지 않습니다. 에서 실행되는 기기는 AWS IoT Greengrass V1 중단되지 않으며 계속 작동하고 클라우드에 연결됩니다. 새로운 기능이 크게 추가되고 추가 플랫폼에 대한 지원이 추가되는 으로 마이그레이션하는 AWS IoT Greengrass Version 2 것이 좋습니다.

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

Greengrass 서비스 역할

Greengrass 서비스 역할은 사용자를 대신하여 AWS 서비스의 리소스에 액세스할 수 있도록 AWS IoT Greengrass에 권한을 부여하는 AWS Identity and Access Management (IAM) 서비스 역할입니다. AWS IoT Greengrass는 이 역할을 사용하여 AWS Lambda 함수 검색 및 AWS IoT 섀도우 관리 등의 필수 작업을 수행할 수 있습니다.

AWS IoT Greengrass가 리소스에 액세스하도록 허용하려면 Greengrass 서비스 역할을 AWS 계정 계정과 연결하고 AWS IoT Greengrass를 신뢰할 수 있는 엔터티로 지정해야 합니다. 역할에는 AWSGreengrassResourceAccessRolePolicy 관리형 정책 또는 사용 중인 AWS IoT Greengrass 기능에 대해 동등한 권한을 정의하는 사용자 지정 정책이 포함되어야 합니다. 이 정책은 AWS에서 관리하며, AWS IoT Greengrass이 AWS 리소스에 액세스하는 데 사용하는 권한 집합을 정의합니다.

여러 AWS 리전에서 동일한 Greengrass 서비스 역할을 재사용할 수 있지만, AWS IoT Greengrass를 사용하는 모든 AWS 리전에서 해당 역할을 AWS 계정과 연결해야 합니다. 현재 AWS 계정 및 리전에 서비스 역할이 없는 경우 그룹 배치가 실패합니다.

다음 단원에서는 AWS Management Console 또는 AWS CLI에서 Greengrass 서비스를 생성 및 관리하는 방법에 대해 설명합니다.

참고

서비스 레벨 액세스에 권한을 부여하는 서비스 역할 외에도, 그룹 역할을 AWS IoT Greengrass 그룹에 할당할 수 있습니다. 이 그룹 역할은 그룹의 Lambda 함수 및 커넥터가 AWS 서비스에 액세스하는 방식을 제어하는 별도의 IAM 역할입니다.

Greengrass 서비스 역할 관리(콘솔)

AWS IoT 콘솔에서는 Greengrass 서비스 역할을 손쉽게 관리할 수 있습니다. 예를 들어 Greengrass 그룹을 생성 또는 배포할 때 이 콘솔은 현재 콘솔에서 선택된 AWS 계정의 AWS 리전이 Greengrass 서비스 역할에 연결되어 있는지 여부를 확인합니다. 연결이 되어 있지 않으면 콘솔이 사용자를 대신하여 서비스 역할을 생성 및 구성할 수 있습니다. 자세한 내용은 Greengrass 서비스 역할 생성(콘솔) 섹션을 참조하세요.

다음과 같은 역할 관리 작업에서 AWS IoT 콘솔을 사용할 수 있습니다.

참고

콘솔에 로그인한 사용자는 해당 서비스 역할을 보고, 생성하고, 변경할 수 있는 권한을 가져야 합니다.

 

Greengrass 서비스 역할 검색(콘솔)

다음 절차를 사용해 현재 AWS 리전에서 AWS IoT Greengrass이 사용 중인 서비스 역할을 검색합니다.

  1. AWS IoT 콘솔의 탐색 창에서 설정을 선택합니다.

  2. Greengrass service role(Greengrass 서비스 역할) 섹션으로 스크롤하여 서비스 역할과 그 정책을 확인합니다.

    서비스 역할이 표시되지 않으면 콘솔에게 사용자를 대신해 역할을 생성 또는 구성하도록 할 수 있습니다. 자세한 내용은 Greengrass 서비스 역할 생성 섹션을 참조하세요.

 

Greengrass 서비스 역할 생성(콘솔)

콘솔이 사용자를 대신하여 기본 Greengrass 서비스 역할을 생성 및 구성할 수 있습니다. 이 역할에는 다음 속성이 있습니다.

속성
이름 Greengrass_ServiceRole
신뢰할 수 있는 엔터티. AWS service: greengrass
Policy AWSGreengrassResourceAccessRolePolicy
참고

Greengrass 디바이스 설정에서 서비스 역할을 생성하는 경우 역할 이름은 GreengrassServiceRole_random-string입니다.

AWS IoT에서 Greengrass 그룹을 생성 또는 배포할 때 이 콘솔은 현재 콘솔에서 선택된 AWS 계정 리전의 AWS 리전 계정이 Greengrass 서비스 역할에 연결되어 있는지 여부를 확인합니다. 연결되지 않은 경우 AWS IoT Greengrass가 사용자를 대신해 AWS 서비스를 읽고 쓸 수 있도록 허용하라는 메시지가 콘솔에 표시됩니다.

권한을 부여하는 경우, 콘솔은 Greengrass_ServiceRole 이라는 이름의 역할이 AWS 계정 계정에 존재하는지 여부를 확인합니다.

  • 역할이 존재하면 콘솔은 해당 서비스 역할을 현재 AWS 리전 리전의 AWS 계정 계정에 연결합니다.

  • 역할이 존재하지 않으면 콘솔은 기본 Greengrass 서비스 역할을 생성하여 이를 현재 AWS 리전 리전의 AWS 계정 계정에 연결합니다.

참고

사용자 지정 역할 정책을 사용하여 서비스를 생성하려는 경우에는 IAM 콘솔을 사용하여 역할을 생성하거나 수정하세요. 자세한 정보는 IAM 사용 설명서의AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하세요. 역할이 사용하는 기능 및 리소스에 대한 AWSGreengrassResourceAccessRolePolicy 관리형 정책과 동일한 권한을 부여하는지 확인합니다. 혼동된 대리자 보안 문제를 방지하려면 신뢰 정책에 aws:SourceArnaws:SourceAccount 글로벌 조건 컨텍스트 키도 포함하는 것이 좋습니다. 조건 컨텍스트 키는 지정된 계정 및 Greengrass 작업 영역에서 들어오는 요청만 허용하도록 액세스를 제한합니다. 혼동된 대리자 문제에 대한 자세한 내용은, 교차 서비스 혼동된 대리자 예방를 참조하세요.

서비스 역할을 생성하는 경우 AWS IoT 콘솔로 돌아가서 해당 역할을 그룹에 연결합니다. 그룹 설정 페이지의 Greengrass 서비스 역할에서 이 작업을 수행할 수 있습니다.

 

Greengrass 서비스 역할 변경(콘솔)

다음 절차를 사용하여 현재 콘솔에서 선택된 AWS 리전의 AWS 계정에 연결할 다른 Greengrass 서비스 경로를 선택합니다.

  1. AWS IoT 콘솔의 탐색 창에서 설정을 선택합니다.

  2. Greengrass 서비스 역할에서 역할 선택을 선택합니다.

    Greengrass 서비스 역할 업데이트 대화 상자가 열리고 AWS IoT Greengrass을(를) 신뢰할 수 있는 엔터티로 정의하는 AWS 계정의 IAM 역할이 표시됩니다.

  3. 연결할 Greengrass 서비스 역할을 선택합니다.

  4. 역할 연결을 선택합니다.

참고

콘솔이 사용자를 대신해 기본 Greengrass 서비스 역할을 생성하도록 허용하려면 목록에서 역할을 선택하는 대신 Create role for me(사용자를 대신해 역할 생성)를 선택합니다. 사용자의 AWS 계정에 이름이 Greengrass_ServiceRole인 역할이 있는 경우 나를 위한 역할 생성 링크가 표시되지 않습니다.

 

Greengrass 서비스 역할 분리(콘솔)

다음 절차를 사용하여 현재 콘솔에서 선택된 AWS 리전의 AWS 계정에서 Greengrass 서비스 역할을 분리합니다. 이렇게 하면 AWS IoT Greengrass가 현재 AWS 리전 리전에서 AWS 서비스에 액세스할 수 있는 권한이 취소됩니다.

중요

서비스 역할을 분리하면 진행 중인 작업에 방해가 될 수 있습니다.

  1. AWS IoT 콘솔의 탐색 창에서 설정을 선택합니다.

  2. Greengrass 서비스 역할에서 분리를 선택합니다.

  3. 확인 대화 상자에서 분리(Detach)를 선택합니다.

참고

역할이 더 이상 필요하지 않으면 IAM 콘솔에서 이를 삭제할 수 있습니다. 자세한 내용은 IAM 사용 설명서에서 역할 또는 인스턴스 프로필 삭제를 참조하세요.

다른 역할들은 AWS IoT Greengrass가 리소스에 액세스하도록 허용할 수 있습니다. AWS IoT Greengrass이(가) 사용자를 대신하여 권한을 위임할 수 있는 모든 역할을 찾으려면 IAM 콘솔의 역할 페이지의 신뢰할 수 있는 엔터티 열에서 AWS 서비스: greengrass가 포함된 역할을 찾아보십시오.

Greengrass 서비스 역할 관리(CLI)

다음 절차에서는 AWS CLI가 설치되고 AWS 계정 ID를 사용하도록 구성되어 있다고 가정합니다. 자세한 내용은 AWS CLI 명령줄 인터페이스 AWS Command Line Interface 사용 설명서의 명령줄 인터페이스 AWS 설치를 참조하십시오.

다음과 같은 역할 관리 작업에서 AWS CLI을 사용할 수 있습니다.

 

Greengrass 서비스 역할 가져오기(CLI)

다음 절차를 사용하여 Greengrass 서비스 역할이 AWS 리전의 AWS 계정과 연결되어 있는지 알아냅니다.

  • 서비스 역할을 가져옵니다. 을 해당 AWS 리전 리전(예: us-west-2)으로 바꿉니다.

    aws Greengrass get-service-role-for-account --region region

    Greengrass 서비스 역할이 계정과 이미 연결되어 있는 경우 다음 역할 메타데이터가 반환됩니다.

    { "AssociatedAt": "timestamp", "RoleArn": "arn:aws:iam::account-id:role/path/role-name" }

    역할 메타데이터가 반환되지 않는 경우 서비스 역할을 생성하고(없는 경우) 해당 역할을 AWS 리전의 계정과 연결해야 합니다.

 

Greengrass 서비스 역할 생성(CLI)

다음 단계에 따라 역할을 생성하고 AWS 계정과 연결합니다.

IAM을 사용하여 서비스 역할을 생성하려면
  1. AWS IoT Greengrass이 역할을 수임하도록 허용하는 신뢰 정책이 있는 역할을 생성합니다. 이 예제에서는 Greengrass_ServiceRole라는 역할을 생성하지만, 다른 이름을 사용할 수 있습니다. 혼동된 대리자 보안 문제를 방지하려면 신뢰 정책에 aws:SourceArnaws:SourceAccount 글로벌 조건 컨텍스트 키도 포함하는 것이 좋습니다. 조건 컨텍스트 키는 지정된 계정 및 Greengrass 작업 영역에서 들어오는 요청만 허용하도록 액세스를 제한합니다. 혼동된 대리자 문제에 대한 자세한 내용은, 교차 서비스 혼동된 대리자 예방를 참조하세요.

    Linux, macOS, or Unix
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" } } } ] }'
    Windows command prompt
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
  2. 출력의 역할 메타데이터에서 역할 ARN을 복사합니다. ARN을 사용하여 역할을 계정과 연결합니다.

  3. AWSGreengrassResourceAccessRolePolicy 정책을 역할에 연결합니다.

    aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
계정에 AWS 계정 서비스 역할을 연결하려면 다음을 수행합니다.
  • 역할을 계정과 연결합니다. role-arn을 서비스 역할 ARN과 바꾸고 AWS 리전을 리전(예: us-west-2)과 바꿉니다.

    aws greengrass associate-service-role-to-account --role-arn role-arn --region region

    성공하면 다음 응답이 반환됩니다.

    { "AssociatedAt": "timestamp" }

 

Greengrass 서비스 역할 제거(CLI)

다음 단계를 사용하여 AWS 계정에서 Greengrass 서비스 역할의 연결을 해제합니다.

  • 계정에서 서비스 역할의 연결을 해제합니다. AWS 리전을 해당 리전(예: us-west-2)으로 바꿉니다.

    aws greengrass disassociate-service-role-from-account --region region

    성공하면 다음 응답이 반환됩니다.

    { "DisassociatedAt": "timestamp" }
    참고

    AWS 리전에서 사용하지 않을 경우 서비스를 삭제해야 합니다. 먼저 delete-role-policy를 사용하여 역할에서 AWSGreengrassResourceAccessRolePolicy 관리형 정책을 연결 해제하고, delete-role을 사용하여 역할을 삭제합니다. 자세한 내용은 IAM 사용 설명서에서 역할 또는 인스턴스 프로필 삭제를 참조하세요.

다음 사항도 참조하세요.