AWS IoT Greengrass 검증 도구 모음을 실행하기 위한 IDT 설정 구성. - AWS IoT Greengrass

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

AWS IoT Greengrass 검증 도구 모음을 실행하기 위한 IDT 설정 구성.

테스트를 실행하기 전에 호스트 컴퓨터에서 AWS 보안 인증 및 장치에 대한 설정을 구성해야 합니다.

config.json에서 AWS 자격 증명 구성

<device_tester_extract_location>/configs/config.json 파일에서 IAM 사용자 보안 인증을 구성해야 합니다. 생성 및 구성 AWS 계정에서 생성된 AWS IoT Greengrass V2용 IDT 사용자에 대한 자격 증명을 사용합니다. 두 가지 방법 중 하나로 자격 증명을 지정할 수 있습니다.

  • 보안 인증 파일에서

  • 환경 변수로

IDT는 AWS CLI와 동일한 자격 증명 파일을 사용합니다. 자세한 내용은 구성 및 자격 증명 파일을 참조하십시오.

자격 증명 파일의 위치는 사용하는 운영 체제에 따라 달라집니다.

  • macOS, Linux의 경우: ~/.aws/credentials

  • Windows: C:\Users\UserName\.aws\credentials

credentials 파일에 AWS 보안 인증을 다음 형식으로 추가합니다.

[default] aws_access_key_id = <your_access_key_id> aws_secret_access_key = <your_secret_access_key>

AWS IoT Greengrass V2용 IDT에서 credentials 파일의 AWS 자격 증명을 사용하도록 구성하려면 config.json 파일을 다음과 같이 편집합니다.

{ "awsRegion": "region", "auth": { "method": "file", "credentials": { "profile": "default" } } }
참고

default AWS 프로필을 사용하지 않는 경우 config.json 파일에서 프로필 이름을 변경해야 합니다. 자세한 내용은 명명된 프로필을 참조하십시오.

환경 변수는 운영 체제에서 유지 관리하고 시스템 명령에서 사용하는 변수입니다. 이들은 SSH 세션을 닫으면 저장되지 않습니다. AWS IoT Greengrass V2용 IDT는 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 환경 변수를 사용하여 AWS 자격 증명을 저장할 수 있습니다.

Linux, macOS 또는 Unix에서 이러한 변수를 설정하려면 export를 사용합니다.

export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Windows에서 이러한 변수를 설정하려면 set을 사용합니다.

set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

환경 변수를 사용하도록 IDT를 구성하려면 config.json 파일에서 auth 섹션을 편집합니다. 예:

{ "awsRegion": "region", "auth": { "method": "environment" } }

device.json 구성

참고

IDT v4.9.3은 ml, docker, streamManagement 기능 테스트를 지원합니다. IDT v4.9.4 이상 버전은 docker 테스트를 지원합니다. 이러한 기능을 테스트하지 않으려면 해당 값을 no로 설정합니다.

AWS 자격 증명 외에도 AWS IoT Greengrass V2용 IDT에는 테스트를 실행하는 디바이스에 대한 정보가 필요합니다. IP 주소, 로그인 정보, 운영 체제, CPU 아키텍처가 예제 정보가 될 수 있습니다.

<device_tester_extract_location>/configs/device.json에 있는 device.json 템플릿을 사용하여 이 정보를 제공해야 합니다.

IDT v4.9.3
[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "arch", "value": "x86_64 | armv6l | armv7l | aarch64" }, { "name": "ml", "value": "dlr | tensorflowlite | dlr,tensorflowlite | no" }, { "name": "docker", "value": "yes | no" }, { "name": "streamManagement", "value": "yes | no" }, { "name": "hsi", "value": "hsm | no" } ], "devices": [ { "id": "<device-id>", "operatingSystem": "Linux | Windows", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": 22, "publicKeyPath": "<public-key-path>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]
참고

methodpki로 설정된 경우에만 privKeyPath를 지정합니다.

methodpassword로 설정된 경우에만 password를 지정합니다.

여기에 설명된 대로 값을 포함하는 모든 속성은 필수입니다.

id

장치 풀이라고 하는 장치 모음을 고유하게 식별하는 사용자 정의 영숫자 ID입니다. 풀에 속한 장치의 하드웨어는 서로 동일해야 합니다. 테스트 제품군을 실행할 때 풀에 있는 장치는 워크로드를 병렬화하는 데 사용됩니다. 다양한 테스트를 실행하기 위해 여러 장치가 사용됩니다.

sku

테스트 대상 장치를 고유하게 식별하는 영숫자 값입니다. SKU는 적격 보드를 추적하는 데 사용됩니다.

참고

AWS Partner 디바이스 카탈로그에 디바이스를 등록하려면 여기서 지정하는 SKU가 리스팅 프로세스에 사용하는 SKU와 일치해야 합니다.

features

장치의 지원되는 기능이 포함된 배열입니다. 모든 기능이 필요합니다.

arch

테스트 실행이 검증하는 지원되는 운영 체제 아키텍처. 유효한 값은 다음과 같습니다.

  • x86_64

  • armv6l

  • armv7l

  • aarch64

ml

디바이스가 AWS 제공 기계 학습(ML) 구성 요소를 사용하는 데 필요한 모든 기술적 종속성을 충족하는지 확인합니다.

또한 이 기능을 활성화하면 디바이스가 딥 러닝 런타임TensorFlow Lite ML 프레임워크를 사용하여 ML 추론을 수행할 수 있는지 검증합니다.

유효한 값은 dlrtensorflowlite 또는 no의 모든 조합입니다.

docker

디바이스가 AWS 제공 Docker 애플리케이션 관리자(aws.greengrass.DockerApplicationManager) 구성 요소를 사용하는 데 필요한 모든 기술적 종속성을 충족하는지 검증합니다.

또한 이 기능을 활성화하면 디바이스가 Amazon ECR에서 Docker 컨테이너 이미지를 다운로드할 수 있는지 검증합니다.

유효한 값은 yes 또는 no의 모든 조합입니다.

streamManagement

디바이스가 AWS IoT Greengrass 스트림 관리자를 다운로드, 설치 및 실행할 수 있는지 확인합니다.

유효한 값은 yes 또는 no의 모든 조합입니다.

hsi

디바이스가 하드웨어 보안 모듈(HSM)에 저장된 프라이빗 키 및 인증서를 사용하여 AWS IoT 및 AWS IoT Greengrass 서비스에 대한 연결을 인증할 수 있는지 검증합니다. 또한 이 테스트는 공급업체 제공 PKCS#11 라이브러리를 사용하여 AWS 제공 PKCS#11 공급자 구성 요소가 HSM과 상호 작용할 수 있는지 확인합니다. 자세한 내용은 하드웨어 보안 통합 단원을 참조하십시오.

유효한 값은 hsm 또는 no입니다.

참고

hsi 테스트는 IDT v4.9.3 이상 버전에서만 사용할 수 있습니다.

devices.id

테스트 대상 장치의 고유한 사용자 정의 식별자입니다.

devices.operatingSystem

디바이스 운영 체제. 지원되는 값은 LinuxWindows입니다.

connectivity.protocol

이러한 장치와 통신하는 데 사용되는 통신 프로토콜입니다. 현재 지원되는 유일한 값은 물리적 디바이스에 대한 ssh 값입니다.

connectivity.ip

테스트 대상 장치의 IP 입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.port

선택 사항입니다. SSH 연결하는 데 사용하는 포트 번호입니다.

기본값은 4입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.publicKeyPath

선택 사항입니다. 테스트 대상 디바이스에 대한 연결을 인증하는 데 사용되는 퍼블릭 키의 전체 경로입니다.

publicKeyPath를 지정하면 IDT가 테스트 대상 디바이스에 SSH 연결을 설정할 때 디바이스의 퍼블릭 키를 검증합니다. 이 값을 지정하지 않으면 IDT는 SSH 연결을 생성하지만 디바이스의 퍼블릭 키를 확인하지는 않습니다.

퍼블릭 키의 경로를 지정하고 안전한 방법을 사용하여 이 퍼블릭 키를 가져오는 것이 좋습니다. 표준 명령줄 기반 SSH 클라이언트의 경우 퍼블릭 키는 known_hosts 파일에 제공됩니다. 별도의 퍼블릭 키 파일을 지정하는 경우 이 파일은 known_hosts 파일과 동일한 형식, 즉, ip-address key-type public-key을 사용해야 합니다. 동일한 IP 주소가 있는 항목이 여러 개 있는 경우 IDT에서 사용하는 키 유형에 대한 항목이 파일의 다른 항목보다 앞에 있어야 합니다.

connectivity.auth

연결에 대한 인증 정보입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.auth.method

지정된 연결 프로토콜을 통해 장치에 액세스하는 데 사용되는 인증 방법입니다.

지원되는 값은 다음과 같습니다.

  • pki

  • password

connectivity.auth.credentials

인증에 사용되는 자격 증명입니다.

connectivity.auth.credentials.password

테스트 대상 장치에 로그인하기 위해 사용하는 암호입니다.

이 값은 connectivity.auth.methodpassword로 설정된 경우에만 적용됩니다.

connectivity.auth.credentials.privKeyPath

테스트 대상 장치에 로그인하는 데 사용하는 프라이빗 키의 전체 경로입니다.

이 값은 connectivity.auth.methodpki로 설정된 경우에만 적용됩니다.

connectivity.auth.credentials.user

테스트 대상 장치에 로그인하기 위한 사용자 이름입니다.

IDT v4.9.4
[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "arch", "value": "x86_64 | armv6l | armv7l | aarch64" }, { "name": "docker", "value": "yes | no" }, { "name": "hsi", "value": "hsm | no" } ], "devices": [ { "id": "<device-id>", "operatingSystem": "Linux | Windows", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": 22, "publicKeyPath": "<public-key-path>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]
참고

methodpki로 설정된 경우에만 privKeyPath를 지정합니다.

methodpassword로 설정된 경우에만 password를 지정합니다.

여기에 설명된 대로 값을 포함하는 모든 속성은 필수입니다.

id

장치 풀이라고 하는 장치 모음을 고유하게 식별하는 사용자 정의 영숫자 ID입니다. 풀에 속한 장치의 하드웨어는 서로 동일해야 합니다. 테스트 제품군을 실행할 때 풀에 있는 장치는 워크로드를 병렬화하는 데 사용됩니다. 다양한 테스트를 실행하기 위해 여러 장치가 사용됩니다.

sku

테스트 대상 장치를 고유하게 식별하는 영숫자 값입니다. SKU는 적격 보드를 추적하는 데 사용됩니다.

참고

AWS Partner 디바이스 카탈로그에 디바이스를 등록하려면 여기서 지정하는 SKU가 리스팅 프로세스에 사용하는 SKU와 일치해야 합니다.

features

장치의 지원되는 기능이 포함된 배열입니다. 모든 기능이 필요합니다.

arch

테스트 실행이 검증하는 지원되는 운영 체제 아키텍처. 유효한 값은 다음과 같습니다.

  • x86_64

  • armv6l

  • armv7l

  • aarch64

docker

디바이스가 AWS 제공 Docker 애플리케이션 관리자(aws.greengrass.DockerApplicationManager) 구성 요소를 사용하는 데 필요한 모든 기술적 종속성을 충족하는지 검증합니다.

또한 이 기능을 활성화하면 디바이스가 Amazon ECR에서 Docker 컨테이너 이미지를 다운로드할 수 있는지 검증합니다.

유효한 값은 yes 또는 no의 모든 조합입니다.

hsi

디바이스가 하드웨어 보안 모듈(HSM)에 저장된 프라이빗 키 및 인증서를 사용하여 AWS IoT 및 AWS IoT Greengrass 서비스에 대한 연결을 인증할 수 있는지 확인합니다. 또한 이 테스트는 공급업체 제공 PKCS#11 라이브러리를 사용하여 AWS 제공 PKCS#11 공급자 구성 요소가 HSM과 상호 작용할 수 있는지 확인합니다. 자세한 내용은 하드웨어 보안 통합 단원을 참조하십시오.

유효한 값은 hsm 또는 no입니다.

참고

hsi 테스트는 IDT v4.9.3 이상 버전에서만 사용할 수 있습니다.

devices.id

테스트 대상 장치의 고유한 사용자 정의 식별자입니다.

devices.operatingSystem

디바이스 운영 체제. 지원되는 값은 LinuxWindows입니다.

connectivity.protocol

이러한 장치와 통신하는 데 사용되는 통신 프로토콜입니다. 현재 지원되는 유일한 값은 물리적 디바이스에 대한 ssh 값입니다.

connectivity.ip

테스트 대상 장치의 IP 입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.port

선택 사항입니다. SSH 연결하는 데 사용하는 포트 번호입니다.

기본값은 4입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.publicKeyPath

선택 사항입니다. 테스트 대상 디바이스에 대한 연결을 인증하는 데 사용되는 퍼블릭 키의 전체 경로입니다.

publicKeyPath를 지정하면 IDT가 테스트 대상 디바이스에 SSH 연결을 설정할 때 디바이스의 퍼블릭 키를 검증합니다. 이 값을 지정하지 않으면 IDT는 SSH 연결을 생성하지만 디바이스의 퍼블릭 키를 확인하지는 않습니다.

퍼블릭 키의 경로를 지정하고 안전한 방법을 사용하여 이 퍼블릭 키를 가져오는 것이 좋습니다. 표준 명령줄 기반 SSH 클라이언트의 경우 퍼블릭 키는 known_hosts 파일에 제공됩니다. 별도의 퍼블릭 키 파일을 지정하는 경우 이 파일은 known_hosts 파일과 동일한 형식, 즉, ip-address key-type public-key을 사용해야 합니다. 동일한 IP 주소가 있는 항목이 여러 개 있는 경우 IDT에서 사용하는 키 유형에 대한 항목이 파일의 다른 항목보다 앞에 있어야 합니다.

connectivity.auth

연결에 대한 인증 정보입니다.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

connectivity.auth.method

지정된 연결 프로토콜을 통해 장치에 액세스하는 데 사용되는 인증 방법입니다.

지원되는 값은 다음과 같습니다.

  • pki

  • password

connectivity.auth.credentials

인증에 사용되는 자격 증명입니다.

connectivity.auth.credentials.password

테스트 대상 장치에 로그인하기 위해 사용하는 암호입니다.

이 값은 connectivity.auth.methodpassword로 설정된 경우에만 적용됩니다.

connectivity.auth.credentials.privKeyPath

테스트 대상 장치에 로그인하는 데 사용하는 프라이빗 키의 전체 경로입니다.

이 값은 connectivity.auth.methodpki로 설정된 경우에만 적용됩니다.

connectivity.auth.credentials.user

테스트 대상 장치에 로그인하기 위한 사용자 이름입니다.

userdata.json 구성

AWS IoT Greengrass V2용 IDT에는 테스트 아티팩트 및 AWS IoT Greengrass 소프트웨어의 위치에 대한 추가 정보도 필요합니다.

<device_tester_extract_location>/configs/userdata.json에 있는 userdata.json 템플릿을 사용하여 이 정보를 제공해야 합니다.

{ "TempResourcesDirOnDevice": "/path/to/temp/folder", "InstallationDirRootOnDevice": "/path/to/installation/folder", "GreengrassNucleusZip": "/path/to/aws.greengrass.nucleus.zip", "PreInstalled": "yes/no", "GreengrassV2TokenExchangeRole": "custom-iam-role-name", "hsm": { "greengrassPkcsPluginJar": "/path/to/aws.greengrass.crypto.Pkcs11Provider-latest.jar", "pkcs11ProviderLibrary": "/path/to/pkcs11-vendor-library", "slotId": "slot-id", "slotLabel": "slot-label", "slotUserPin": "slot-pin", "keyLabel": "key-label", "preloadedCertificateArn": "certificate-arn" "rootCA": "path/to/root-ca" } }

여기에 설명된 대로 값을 포함하는 모든 속성은 필수입니다.

TempResourcesDirOnDevice

테스트 아티팩트를 저장할 테스트 대상 디바이스의 임시 폴더 전체 경로. 이 디렉터리에 쓰는 데 sudo 권한이 필요하지 않은지 확인합니다.

참고

IDT는 테스트 실행이 완료되면 이 폴더의 콘텐츠를 삭제합니다.

InstallationDirRootOnDevice

AWS IoT Greengrass를 설치할 디바이스의 폴더의 전체 경로. 사전 설치된 Greengrass의 경우 이는 Greengrass 설치 디렉터리의 경로입니다.

이 폴더에 필요한 파일 권한을 설정해야 합니다. 설치 경로의 각 폴더에 대해 다음 명령을 실행합니다.

sudo chmod 755 folder-name
GreengrassNucleusZip

호스트 컴퓨터의 Greengrass nucleus ZIP(greengrass-nucleus-latest.zip) 파일의 전체 경로. 이 필드는 사전 설치된 Greengrass를 사용한 테스트에는 필요하지 않습니다.

참고

AWS IoT Greengrass용 IDT에 대한 Greengrass nucleus의 지원되는 버전에 대한 자세한 내용은 AWS IoT Greengrass V2용 최신 IDT 버전 섹션을 참조하세요. 최신 Greengrass 소프트웨어를 다운로드하려면 AWS IoT Greengrass 소프트웨어 다운로드를 참조하세요.

PreInstalled

이 기능은 Linux 디바이스의 IDT v4.5.8 이상 버전에서만 사용할 수 있습니다.

(선택 사항) 값이 Yes인 경우 IDT는 InstallationDirRootOnDevice에 언급된 경로를 Greengrass가 설치된 디렉터리라고 가정합니다.

디바이스에 Greengrass를 설치하는 방법에 대한 자세한 내용은 자동 리소스 프로비저닝을 사용하여 AWS IoT Greengrass Core 소프트웨어 설치 섹션을 참조하세요. 수동 프로비저닝을 사용하여 설치하는 경우 수동으로 AWS IoT 사물을 생성할 때 “새 사물 또는 기존 사물 그룹에 AWS IoT 사물 추가” 단계를 포함합니다. IDT는 설치 설정 중에 사물 그룹이 생성된다고 가정합니다. 이러한 값이 effectiveConfig.yaml 파일에 반영되어 있는지 확인합니다. IDT는 <InstallationDirRootOnDevice>/config/effectiveConfig.yaml에서 effectiveConfig.yaml 파일을 확인합니다.

HSM을 사용하여 테스트를 실행하려면 aws.greengrass.crypto.Pkcs11Provider 필드가 effectiveConfig.yaml에서 업데이트되었는지 확인합니다.

GreengrassV2TokenExchangeRole

(선택 사항) 테스트 중인 디바이스가 AWS 리소스와 상호 작용하기 위해 수임하는 토큰 교환 역할로 사용할 사용자 지정 IAM 역할.

참고

IDT는 테스트 실행 중에 기본 토큰 교환 역할을 생성하는 대신 이 사용자 지정 IAM 역할을 사용합니다. 사용자 지정 역할을 사용하는 경우 테스트 사용자에 대한 IAM 권한을 업데이트하여 사용자가 IAM 역할 및 정책을 생성하고 삭제할 수 있도록 허용하는 iamResourcesUpdate 문을 제외할 수 있습니다.

사용자 지정 IAM 역할을 토큰 교환 역할로 생성하는 방법에 대한 자세한 내용은 사용자 지정 토큰 교환 역할 구성 섹션을 참조하세요.

hsm

이 기능은 IDT v4.5.1 이상에서 사용할 수 있습니다.

(선택 사항) AWS IoT Greengrass 하드웨어 보안 모듈(HSM)을 사용하여 테스트하기 위한 구성 정보. 그렇지 않으면 hsm 속성을 생략해야 합니다. 자세한 내용은 하드웨어 보안 통합 단원을 참조하십시오.

이 속성은 connectivity.protocolssh로 설정된 경우에만 적용됩니다.

주의

하드웨어 보안 모듈이 IDT와 다른 시스템 간에 공유되는 경우 HSM 구성은 민감한 데이터로 간주될 수 있습니다. 이러한 경우 구성 값을 AWS 파라미터 스토어 SecureString 파라미터에 저장하고 테스트 실행 중에 가져오도록 IDT를 구성하여 일반 텍스트로 보호하지 않을 수 있습니다. 자세한 내용은 AWS 파라미터 스토어에서 구성 가져오기 단원을 참조하세요.

hsm.greengrassPkcsPluginJar

IDT 호스트 시스템에 다운로드하는 PKCS#11 공급자 구성 요소의 전체 경로. AWS IoT Greengrass는 이 구성 요소를 설치하는 중 프로비저닝 플러그인으로 지정하기 위해 다운로드할 수 있는 JAR 파일로 제공합니다. 다음 URL(https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)에서 최신 버전의 구성 요소 JAR 파일을 다운로드할 수 있습니다.

hsm.pkcs11ProviderLibrary

하드웨어 보안 모듈(HSM) 공급업체가 HSM과 상호 작용하기 위해 제공하는 PKCS#11 라이브러리의 전체 경로.

hsm.slotId

키와 인증서를 로드하는 HSM 슬롯을 식별하는 데 사용되는 슬롯 ID.

hsm.slotLabel

키와 인증서를 로드하는 HSM 슬롯을 식별하는 데 사용되는 슬롯 레이블.

hsm.slotUserPin

IDT가 AWS IoT Greengrass 코어 소프트웨어를 HSM에 인증하는 데 사용하는 사용자 PIN.

참고

보안 모범 사례로 프로덕션 디바이스에서 동일한 사용자 PIN을 사용하지 마세요.

hsm.keyLabel

하드웨어 모듈에서 키를 식별하는 데 사용되는 레이블입니다. 키와 인증서 모두 동일한 키 레이블을 사용해야 합니다.

hsm.preloadedCertificateArn

AWS IoT 클라우드에 업로드한 디바이스 인증서의 Amazon 리소스 이름(ARN).

이전에 HSM에서 키를 사용하여 이 인증서를 생성하고 HSM으로 가져와서 AWS IoT 클라우드에 업로드한 적이 있어야 합니다. 인증서 생성 및 가져오기에 대한 자세한 내용은 HSM에 대한 설명서를 참조하세요.

인증서를 config.json에 제공한 것과 동일한 계정 및 리전에 인증서를 업로드해야 합니다. 인증서를 AWS IoT로 업로드하는 방법에 대한 자세한 내용은 AWS IoT 개발자 안내서Register a client certificate manually를 참조하세요.

hsm.rootCAPath

(선택 사항) 인증서를 서명한 루트 인증 기관(CA)에 대한 IDT 호스트 컴퓨터의 전체 경로. 이는 생성한 HSM의 인증서가 Amazon 루트 CA에 의해 서명하지 않은 경우에 필요합니다.

AWS 파라미터 스토어에서 구성 가져오기

AWS IoT 디바이스 테스터(IDT)에는 AWS Systems Manager 파라미터 스토어에서 구성 값을 가져오는 기능(선택 사항)이 포함되어 있습니다. AWS 파라미터 스토어는 안전하고 암호화된 구성 스토리지를 허용합니다. 구성이 완료되면 IDT는 파라미터를 userdata.json 파일 내부의 일반 텍스트에 저장하는 대신 AWS 파라미터 스토어에서 파라미터를 가져올 수 있습니다. 이는 암호, PIN, 기타 암호와 같이 암호화된 상태로 저장해야 하는 민감한 데이터에 유용합니다.

  1. 이 기능을 사용하려면 IDT 사용자를 생성하는 데 사용되는 권한을 업데이트하여 IDT가 사용하도록 구성된 파라미터에 대한 GetParameter 작업을 허용해야 합니다. 다음은 IDT 사용자에게 추가할 수 있는 권한 문의 예제입니다. 자세한 내용은 AWS Systems Manager 사용 설명서를 참조하세요.

    { "Sid":"parameterStoreResources", "Effect": "Allow", "Action": [ "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/IDT*" }

    위 권한은 와일드카드 문자(IDT)를 사용하여 이름이 *로 시작하는 모든 파라미터를 가져올 수 있도록 구성되었습니다. 사용 중인 파라미터의 이름에 따라 IDT가 구성되어 있는 파라미터를 가져올 수 있도록 필요에 따라 이를 사용자 지정해야 합니다.

  2. AWS 파라미터 스토어 내에 구성 값을 저장해야 합니다. AWS 콘솔 또는 AWS CLI에서 이 작업을 수행할 수 있습니다. AWS 파라미터 스토어를 사용하면 암호화되거나 암호화되지 않은 스토리지를 선택할 수 있습니다. 암호, PIN 등 민감한 값을 저장하려면 SecureString의 파라미터 유형인 암호화된 옵션을 사용해야 합니다. AWS CLI를 사용하여 파라미터를 업로드하려면 다음 명령을 사용할 수 있습니다.

    aws ssm put-parameter --name IDT-example-name --value IDT-example-value --type SecureString

    다음 명령을 사용하여 파라미터가 저장되었는지 확인할 수 있습니다. (선택 사항) --with-decryption 플래그를 사용하여 해독된 SecureString 파라미터를 가져옵니다.

    aws ssm get-parameter --name IDT-example-name

    AWS CLI를 사용하면 현재 CLI 사용자의 AWS 리전에 파라미터가 업로드되고 IDT는 config.json에 구성되어 있는 리전에서 파라미터를 가져옵니다. AWS CLI에서 리전을 확인하려면 다음을 사용합니다.

    aws configure get region
  3. AWS 클라우드에 구성 값이 있으면 IDT 구성 내의 모든 값을 업데이트하여 AWS 클라우드에서 가져올 수 있습니다. 이렇게 하려면 {{AWS.Parameter.parameter_name}} 양식의 IDT 구성에서 자리 표시자를 사용하여 AWS 파라미터 스토어에서 해당 이름으로 파라미터를 가져옵니다.

    예를 들어 2단계의 IDT-example-name 파라미터를 HSM 구성의 HSM keyLabel로 사용하려는 경우를 가정해 보겠습니다. 이렇게 하려면 다음과 같이 userdata.json을 업데이트하면 됩니다.

    "hsm": { "keyLabel": "{{AWS.Parameter.IDT-example-name}}", [...] }

    IDT는 2단계에서 IDT-example-value로 설정된 런타임에서 이 파라미터의 값을 가져옵니다. 이 구성은 "keyLabel": "IDT-example-value" 설정과 유사하지만 대신 해당 값은 AWS 클라우드에 암호화된 상태로 저장됩니다.