AWS IoT Greengrass Version 1더 이상 기능 업데이트를 받지 않으며 2023년 6월 30일까지 보안 패치와 버그 수정만 받게 됩니다. 자세한 내용은 AWS IoT Greengrass V1유지 관리 정책을 참조하세요. 중요한 새 기능을 추가하고 추가 플랫폼을 지원하는 로AWS IoT Greengrass Version 2 마이그레이션하는 것이 좋습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
암호 리소스 생성 방법(콘솔)
이 기능은 다음에 사용할 수 있습니다.AWS IoT Greengrass코어 v1.7 이상
이 자습서에서는 AWS Management Console을 사용하여 암호 리소스를 Greengrass 그룹에 추가하는 방법을 보여줍니다. 암호 리소스는 AWS Secrets Manager의 암호에 대한 참조입니다. 자세한 정보는 AWS IoT Greengrass 코어에 암호 배포을 참조하세요.
온 더AWS IoT Greengrass코어 디바이스, 커넥터 및 Lambda 함수는 암호, 토큰 또는 다른 자격 증명을 하드 코딩하지 않고 보안 암호 리소스를 사용하여 서비스와 애플리케이션을 인증할 수 있습니다.
이 자습서에서는 암호를 AWS Secrets Manager 콘솔에서 생성하면서 시작합니다. 그런 다음AWS IoT Greengrass콘솔에서 그룹 의 Greengrass 그룹에 보안 암호 리소스를 추가합니다.리소스페이지. 이 암호 리소스는 Secrets Manager 암호를 참조합니다. 이후에는 암호 리소스를 Lambda 함수에 연결하는데, 이를 통해 함수가 로컬 암호 값을 가져올 수 있습니다.
참고
대안으로, 커넥터 또는 Lambda 함수를 구성할 때 콘솔에서 보안 암호와 보안 암호 리소스를 생성할 수도 있습니다. 커넥터의 에서 이 작업을 수행할 수 있습니다.파라미터 구성페이지 또는 Lambda 함수의리소스페이지.
암호에 대한 파라미터를 포함하는 커넥터에서만 암호에 액세스할 수 있습니다. Twilio 알림 커넥터에서 로컬로 저장된 인증 토큰을 사용하는 방법을 보여주는 자습서는 단원을 참조하십시오.Greengrass 커넥터 시작하기(콘솔).
자습서에는 다음과 같은 상위 수준 단계가 포함됩니다.
이 자습서를 완료하는 데 약 20분 정도 걸립니다.
사전 조건
이 자습서를 완료하려면 다음이 필요합니다.
-
Greengrass 그룹 및 Greengrass 코어 (v1.7 이상). Greengrass 그룹 및 코어를 생성하는 방법에 대해 알아보려면 AWS IoT Greengrass 시작하기단원을 참조하십시오. 시작하기 자습서에는 AWS IoT Greengrass 코어 소프트웨어를 설치하는 단계도 포함되어 있습니다.
-
로컬 암호를 지원하도록 AWS IoT Greengrass를 구성해야 합니다. 자세한 내용은 암호 요구 사항을 참조하십시오.
참고
이 요구 사항에는 Secrets Manager 암호에 대한 액세스 허용이 포함됩니다. 기본 Greengrass 서비스 역할을 사용 중인 경우 Greengrass는 로 시작하는 이름을 가진 암호 값을 가져올 권한이 있습니다.greengrass-.
-
로컬 보안 값을 가져오려면 사용자 정의 Lambda 함수가 다음을 사용해야 합니다.AWS IoT Greengrass코어 SDK v1.3.0
1단계: Secrets Manager 보안 암호 생성
이 단계에서는 AWS Secrets Manager 콘솔을 사용하여 암호를 생성합니다.
-
AWS Secrets Manager 콘솔
에 로그인합니다. 참고
이 프로세스에 대한 자세한 내용은 단원을 참조하십시오.단계 1: 에서 보안 암호를 생성 및 저장AWS Secrets Manager의AWS Secrets Manager사용 설명서.
-
새 보안 암호 저장(Store a new secret)을 선택합니다.
-
아래에서시크릿 유형 선택, 선택다른 유형의 보안 암호.
-
이 보안 암호에 저장할 키-값 쌍 지정에서 다음을 수행합니다.
-
키(Key)에
test
를 입력합니다. -
값에
abcdefghi
을(를) 입력합니다.
-
-
유지aws/비밀 관리자암호화 키에 대해 선택한 후다음.
참고
에서 요금이 부과되지 않습니다.AWS KMS기본값을 사용하는 경우AWSSecrets Manager 계정에서 생성하는 관리형 키입니다.
-
Secret name(보안 암호 이름)에
greengrass-TestSecret
을 입력한 후 다음을 선택합니다.참고
Greengrass 서비스 역할은 기본적으로 다음을 허용합니다.AWS IoT Greengrass로 시작하는 이름으로 시크릿의 가치를 얻을 수 있습니다.greengrass-. 자세한 내용은 단원을 참조하십시오.보안 암호 요구.
-
이 자습서에서는 교체할 필요가 없으므로 자동 교체 비활성화를 선택하고다음.
-
Review(검토) 페이지에서 설정을 검토한 다음 Store(저장)를 선택합니다.
이제 해당 암호를 참조하는 암호 리소스를 Greengrass 그룹에 생성합니다.
2단계: Greengrass 그룹에 보안 암호 리소스 추가
이 단계에서는 Secrets Manager 암호를 참조하는 그룹 리소스를 구성합니다.
에서AWS IoT콘솔 탐색 창,관리를 확장합니다.Greengrass 디바이스를 선택합니다.그룹 (V1).
-
암호 리소스를 추가할 그룹을 선택합니다.
-
그룹 구성 페이지에서리소스탭을 선택한 다음 아래로 스크롤하여보안 암호섹션. 이보안 암호섹션에는 해당 그룹에 속하는 암호 리소스가 표시됩니다. 이 섹션에서 암호 리소스를 추가, 편집, 제거할 수 있습니다.
참고
대안으로, 커넥터 또는 Lambda 함수를 구성할 때 콘솔에서 보안 암호와 보안 암호 리소스를 생성할 수도 있습니다. 커넥터의 에서 이 작업을 수행할 수 있습니다.파라미터 구성페이지 또는 Lambda 함수의리소스페이지.
-
선택Add아래에서보안 암호섹션.
-
온 더보안 암호 리소스 추가페이지, 입력
MyTestSecret
의리소스 이름. -
아래에서Secret, 선택greengrass-TestSecret.
-
에서레이블 선택 (선택 사항)섹션, AWSCURRENT 스테이징 레이블은 최신 버전의 암호임을 나타냅니다. 이 레이블은 암호 리소스에 항상 포함되어 있습니다.
참고
이 자습서를 시작하려면 AWSCURRENT 레이블 전용. Lambda 함수 또는 커넥터에 필요한 레이블을 선택적으로 포함시킬 수 있습니다.
-
리소스 추가를 선택합니다.
3단계: Lambda 함수 배포 패키지 생성
Lambda 함수를 생성하려면 먼저 Lambda 함수를 생성해야 합니다.배포 패키지함수 코드와 종속성이 포함되어 있습니다. Greengrass Lambda 함수에는AWS IoT Greengrass코어 SDK핵심 환경에서 MQTT 메시지와 통신하고 로컬 비밀에 액세스하는 것과 같은 작업에 사용됩니다. 이 자습서는 Python 함수를 생성하므로 배포 패키지의 Python 버전 SDK를 사용할 수 있습니다.
참고
로컬 보안 값을 가져오려면 사용자 정의 Lambda 함수가 다음을 사용해야 합니다.AWS IoT Greengrass코어 SDK v1.3.0
-
에서AWS IoT Greengrass코어 SDK다운로드 페이지, 다운로드AWS IoT Greengrass파이썬용 코어 SDK를 컴퓨터에 연결할 수 있습니다.
-
다운로드한 패키지의 압축을 풀어 SDK를 가져옵니다. SDK는
greengrasssdk
폴더입니다. -
secret_test.py
이라는 로컬 파일에 다음과 같은 Python 코드 함수를 저장합니다.import greengrasssdk secrets_client = greengrasssdk.client('secretsmanager') iot_client = greengrasssdk.client('iot-data') secret_name = 'greengrass-TestSecret' send_topic = 'secrets/output' def function_handler(event, context): """ Gets a secret and publishes a message to indicate whether the secret was successfully retrieved. """ response = secrets_client.get_secret_value(SecretId=secret_name) secret_value = response.get('SecretString') message = (f'Failed to retrieve secret {secret_name}.' if secret_value is None else f'Successfully retrieved secret {secret_name}.') iot_client.publish(topic=send_topic, payload=message) print('Published: ' + message)
이
get_secret_value
함수는 다음에 대한 Secrets Manager 암호의 이름 또는 ARN 지원합니다.SecretId
USD 상당. 이 예에서는 암호 이름을 사용합니다. 이 예제 암호에서 AWS IoT Greengrass는{"test":"abcdefghi"}
키-값 쌍을 반환합니다.중요
사용자 정의한 Lambda 함수에서 보안 암호를 안전하게 취급해야 하고, 보안 암호에 저장된 기밀 데이터를 로그에 기록하지 말아야 합니다. 자세한 내용은 단원을 참조하십시오.Lambda 함수 로깅 및 디버깅 위험 줄이기의AWS Secrets Manager사용 설명서. 이 설명서에서는 특별히 교체 함수를 언급하지만 권장 사항은 Greengrass Lambda 함수에도 적용됩니다.
-
다음 항목을
secret_test_python.zip
라는 파일로 압축합니다. ZIP 파일을 만들 때 상위 폴더가 아닌 코드 및 종속성만 포함합니다.-
secret_test.py. 앱 로직.
-
greengrasssdk. 모든 Python Greengrass Lambda 함수에 대한 필수 라이브러리입니다.
이것이 Lambda 함수 배포 패키지입니다.
-
4단계: Lambda 함수 생성
이 단계에서는AWS Lambda콘솔에서 Lambda 함수를 생성한 후 배포 패키지를 사용하도록 구성합니다. 그런 다음 함수 버전을 게시하고 별칭을 생성합니다.
-
먼저 Lambda 함수를 생성합니다.
-
AWS Management Console에서 [Services]를 선택한 다음 AWS Lambda 콘솔을 엽니다.
-
선택함수 생성를 선택합니다.새로 작성.
-
기본 정보 섹션에서 다음 값을 사용합니다.
-
[함수 이름(Function name)]에
SecretTest
을 입력합니다. -
실행 시간에서 Python 3.7을 선택합니다.
-
권한의 경우, 기본 설정을 유지합니다. 이를 통해 기본 Lambda 권한을 부여하는 실행 역할을 생성합니다. 이 역할은 AWS IoT Greengrass에서 사용되지 않습니다.
-
-
페이지 하단에서 탭을 선택합니다.함수 생성.
-
-
이제 핸들러를 등록하고 Lambda 함수 배포 패키지를 업로드합니다.
-
온 더Code탭, 아래코드 소스, 선택다음에서 업로드. 드롭다운에서 다음을 선택합니다..zip 파일.
-
선택업로드를 선택한 다음
secret_test_python.zip
배포 패키지. 그런 다음 저장(Save)을 선택합니다. -
온 더Code함수에 대한 탭,런타임 설정, 선택Edit를 선택한 후 다음 값을 입력합니다.
-
실행 시간에서 Python 3.7을 선택합니다.
-
핸들러에
secret_test.function_handler
를 입력합니다.
-
-
저장(Save)을 선택합니다.
참고
이테스트버튼을 클릭합니다.AWS Lambda콘솔은 이 함수를 사용할 수 없습니다. 이AWS IoT Greengrass코어 SDK에는 Greengrass Lambda 함수를 독립적으로 실행하는 데 필요한 모듈이 포함되어 있지 않습니다.AWS Lambda콘솔. 이러한 모듈(예:
greengrass_common
)은 Greengrass 코어에 배포된 후 함수에 제공됩니다.
-
-
이제 Lambda 함수의 첫 번째 버전을 게시하고버전의 별칭.
참고
Greengrass 그룹은 별칭 (권장) 또는 버전을 기준으로 Lambda 함수를 참조할 수 있습니다. 별칭을 사용하면 함수 코드를 업데이트할 때 구독 테이블이나 그룹 정의를 변경할 필요가 없으므로 코드 업데이트를 더 쉽게 관리할 수 있습니다. 그 대신 새 함수 버전에 대한 별칭을 가리킵니다.
이제 Greengrass 그룹에 Lambda 함수를 추가하고 암호 리소스를 연결할 준비가 되었습니다.
5단계: Greengrass 그룹에 Lambda 함수 추가
이 단계에서는 의 Greengrass 그룹에 Lambda 함수를 추가합니다.AWS IoT콘솔.
그 다음에는 Lambda 함수의 수명 주기를 구성합니다.
-
에서Lambda 함수섹션에서 다음과 같이 업데이트합니다.
참고
비즈니스 사례에 필요하지 않으면 컨테이너화 없이 Lambda 함수를 실행하는 것이 좋습니다. 이렇게 하면 디바이스 리소스를 구성하지 않고도 디바이스 GPU 및 카메라에 액세스할 수 있습니다. 컨테이너화 없이 실행하는 경우, 에 대한 루트 액세스 권한도 부여해야 합니다.AWS IoT GreengrassLambda 함수
-
컨테이너화 없이 실행하려면
-
용시스템 사용자 및 그룹, 선택
Another user ID/group ID
. 용시스템 사용자 ID를 입력합니다.0
. 용시스템 그룹 ID를 입력합니다.0
.이렇게 하면 Lambda 함수를 루트로 실행할 수 있습니다. 루트 실행에 대한 자세한 내용은 단원을 참조하십시오.그룹에 있는 Lambda 함수의 기본 액세스 자격 증명 설정.
작은 정보
또한 다음을 업데이트해야 합니다.
config.json
파일을 사용하여 Lambda 함수에 대한 루트 액세스 권한을 부여합니다. 절차는 다음 () 을 참조하십시오.Lambda 함수를 루트로 실행. -
용Lambda 함수 컨테이너화, 선택컨테이너 없음.
컨테이너화 없이 실행하는 방법에 대한 자세한 내용은 단원을 참조하십시오.Lambda 함수 컨테이너화 선택 시 고려 사항.
-
시간 제한에
10 seconds
를 입력합니다. -
용Pinned, 선택True.
자세한 정보는 Greengrass Lambda 함수의 라이프사이클 구성을 참조하세요.
-
아래에서추가 파라미터, 에 대한/sys 디렉터리에 대한 읽기 액세스 권한, 선택활성화됨.
-
-
대신 컨테이너화된 모드에서 실행하려면
참고
비즈니스 사례에 필요하지 않으면 컨테이너화 모드에서 실행하지 않는 것이 좋습니다.
-
용시스템 사용자 및 그룹, 선택그룹 기본값 사용.
-
용Lambda 함수 컨테이너화, 선택그룹 기본값 사용.
-
메모리 제한에
1024 MB
를 입력합니다. -
시간 제한에
10 seconds
를 입력합니다. -
용Pinned, 선택True.
자세한 정보는 Greengrass Lambda 함수의 라이프사이클 구성을 참조하세요.
-
아래에서추가 파라미터, 에 대한/sys 디렉터리에 대한 읽기 액세스 권한, 선택활성화됨.
-
-
-
선택Lambda 함수.
그 다음에는 암호 리소스를 함수에 연결합니다.
6단계: 암호 리소스를 Lambda 함수에 연결합니다.
이 단계에서는 암호 리소스를 Greengrass 그룹의 Lambda 함수에 연결합니다. 그러면 리소스가 함수에 연결되는데, 이를 통해 함수가 로컬 암호 값을 가져올 수 있습니다.
-
그룹 구성 페이지에서Lambda 함수탭.
-
를 선택합니다.SecretTest함수.
-
함수의 세부 정보 페이지에서 탭을 선택합니다.리소스.
-
[] 으로 스크롤보안 암호섹션을 선택하고어소.
-
선택MyTestSecret를 선택한 다음어소.
단계 7: Greengrass 그룹에 구독 추가
이 단계에서는 다음을 허용하는 구독을 추가합니다.AWS IoT및 Lambda 함수를 사용하여 메시지를 교환할 수 있습니다. 구독에서 AWS IoT를 사용하여 함수를 호출하고, 함수를 사용하여 출력 데이터를 AWS IoT에 보낼 수 있습니다.
-
그룹 구성 페이지에서구독탭을 선택한 다음구독 추가.
-
AWS IoT를 사용해 함수에 메시지를 게시할 수 있는 구독을 생성합니다.
그룹 구성 페이지에서구독탭을 선택한 다음구독 추가.
-
온 더구독 생성페이지에서 다음과 같이 소스와 대상을 구성합니다.
-
In소스 유형, 선택Lambda 함수를 선택합니다.IoT Cloud.
-
InTarget type(대상 유형), 선택서비스를 선택합니다.SecretTest.
-
에서주제 필터를 입력합니다.
secrets/input
를 선택합니다.구독 생성.
-
-
두 번째 구독을 추가합니다. 를 선택합니다.구독탭에서 을 선택합니다.구독 추가을 누르고 소스와 대상을 다음과 같이 구성합니다.
-
In소스 유형, 선택서비스를 선택합니다.SecretTest.
-
InTarget type(대상 유형), 선택Lambda 함수를 선택합니다.IoT Cloud.
-
에서주제 필터를 입력합니다.
secrets/output
를 선택합니다.구독 생성.
-
8단계: Greengrass 그룹 배포
코어 디바이스에 그룹을 배포합니다. 배포 중에AWS IoT Greengrass는 암호 Secrets Manager 암호 값을 가져오고 코어에서 암호화된 로컬 복사본을 생성합니다.
-
다음을 확인하십시오.AWS IoT Greengrass코어가 실행 중입니다. 필요한 경우 Raspberry Pi 터미널에서 다음 명령을 실행합니다.
데몬이 실행 중인지 확인하려면:
ps aux | grep -E 'greengrass.*daemon'
출력에
root
에 대한/greengrass/ggc/packages/
입력이 포함되어 있는 경우에는 데몬이 실행 중인 것입니다.ggc-version
/bin/daemon참고
경로의 버전은 코어 디바이스에 설치된 AWS IoT Greengrass 코어 소프트웨어 버전에 따라 다릅니다.
데몬을 시작하려면:
cd /greengrass/ggc/core/ sudo ./greengrassd start
-
그룹 구성 페이지에서 탭을 선택합니다.배포.
-
-
에서Lambda 함수탭의시스템 Lambda섹션, 선택IP 감지기를 선택하고Edit.
-
에서IP 감지기 설정 편집대화 상자에서MQTT 브로커 엔드포인트 자동 감지 및 재정의.
-
저장(Save)을 선택합니다.
이렇게 하면 디바이스가 IP 주소, DNS, 포트 번호 등 코어의 연결 정보를 자동으로 획득할 수 있습니다. 자동 탐지가 바람직하지만 AWS IoT Greengrass은(는) 수동으로 지정된 엔드포인트도 지원합니다. 그룹이 처음 배포될 때만 검색 방법 메시지가 표시됩니다.
참고
메시지가 표시되면 을 생성할 수 있는 권한을 부여합니다.Greengrass 서비스 역할를 사용하여AWS 계정현재AWS 리전. 이 역할을 통해AWS IoT Greengrass을 사용하여 에서 리소스에 액세스하십시오.AWS서비스.
배포 페이지에 배포 타임스탬프, 버전 ID, 상태가 표시됩니다. 완료되면 배포에 대해 다음과 같이 표시해야 합니다.Completed.
문제 해결에 대한 도움말은 AWS IoT Greengrass 문제 해결 단원을 참조하십시오.
-