S3 버킷에 펌웨어 파일 업로드 및 IAM 역할 추가 - AWS IoT Wireless

S3 버킷에 펌웨어 파일 업로드 및 IAM 역할 추가

Amazon S3를 사용하여 버킷을 생성합니다. 버킷은 펌웨어 업데이트 파일을 저장할 수 있는 컨테이너입니다. 파일을 S3 버킷에 업로드하고 CUPS 서버가 버킷에서 업데이트 파일을 읽을 수 있도록 하는 IAM 역할을 추가할 수 있습니다. Amazon S3에 대한 자세한 내용은 S3 시작하기를 참조하세요.

업로드하려는 펌웨어 업데이트 파일은 사용 중인 게이트웨이에 따라 다릅니다. 펌웨어 업데이트 파일 및 서명 생성에 설명된 것과 유사한 절차를 수행한 경우 스크립트를 실행하여 생성된 fwstation 파일을 업로드합니다.

이 절차를 완료하는 데 약 20분이 소요됩니다.

Amazon S3 버킷 생성 및 업데이트 파일 업로드

AWS Management Console을 사용하여 Amazon S3 버킷을 생성한 다음 펌웨어 업데이트 파일을 버킷에 업로드합니다.

S3 버킷 생성

Amazon S3 버킷을 생성하려면 Amazon S3 콘솔을 엽니다. 아직 로그인하지 않았다면 로그인하고 다음 단계를 수행하세요.

  1. 버킷 생성을 선택합니다.

  2. 버킷 이름에 대해 고유하고 의미 있는 이름(예: iotwirelessfwupdate)을 입력합니다. 버킷에 대한 권장 명명 규칙은 https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html 단원을 참조하세요.

  3. AWS 리전을 LoRaWAN 게이트웨이 및 디바이스를 만드는 데 사용한 것으로 선택했는지, 버킷이 기본 권한을 사용하도록 모든 퍼블릭 액세스 차단 설정이 선택되어 있는지 확인합니다.

  4. 버킷 버전 관리(Bucket versioning)에서 활성화(Enable)를 선택합니다. 그러면 여러 가지 버전의 펌웨어 업데이트 파일을 동일한 버킷에 보관하는 데 도움이 됩니다.

  5. 서버 측 암호화(Server-side encryption)비활성화(Disable)로 설정되어 있는지 확인하고 버킷 생성(Create bucket)을 선택합니다.

펌웨어 업데이트 파일 업로드

이제 AWS Management Console에 표시된 버킷 목록에서 버킷을 볼 수 있습니다. 버킷을 선택하고 다음 단계를 완료하여 파일을 업로드합니다.

  1. 버킷을 선택한 다음 업로드를 선택합니다.

  2. 파일 추가를 클릭한 다음 펌웨어 업데이트 파일을 업로드합니다. 펌웨어 업데이트 파일 및 서명 생성에서 설명한 절차를 수행한 경우, fwstation 파일을 업로드합니다. 그렇지 않으면 게이트웨이 제조업체에서 제공한 파일을 업로드합니다.

  3. 모든 설정이 기본값으로 설정되어 있는지 확인합니다. 미리 정의된 ACL(Predefined ACLs)프라이빗(private)으로 설정되어 있는지 확인하고 업로드를 선택하여 파일을 업로드합니다.

  4. 업로드한 파일의 S3 URI를 복사합니다. 버킷을 선택하면 업로드한 파일이 객체 목록에 표시됩니다. 파일을 선택한 후 S3 URI 복사를 선택합니다. URI는 이전에 설명한 예제(fwstation)와 비슷한 버킷 이름을 지정한 경우 s3://iotwirelessfwupdate/fwstation 형태입니다. IAM 역할을 만들 때 S3 URI를 사용합니다.

S3 버킷을 읽을 수 있는 권한이 있는 IAM 역할 생성

이제 CUPS에 S3 버킷에서 펌웨어 업데이트 파일을 읽을 수 있는 권한을 부여하는 IAM 역할과 정책을 생성합니다.

역할에 대한 IAM 정책 생성

AWS IoT Core for LoRaWAN 대상 역할에 대한 IAM 정책을 생성하려면 IAM 콘솔의 정책 허브를 열고 다음 단계를 완료합니다.

  1. 정책 생성을 선택한 후 JSON 탭을 선택합니다.

  2. 편집기의 모든 내용을 삭제하고 이 정책 문서를 붙여 넣습니다. 정책은 iotwireless 버킷과 객체 내부에 저장된 펌웨어 업데이트 파일인 fwstation에 액세스할 수 있는 권한을 제공합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListBucketVersions", "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::iotwirelessfwupdate/fwstation", "arn:aws:s3:::iotwirelessfwupdate" ] } ] }
  3. 정책 검토를 선택하고 이름에 이 정책의 이름(예: IoTWirelessFwUpdatePolicy)을 입력합니다. 다음 절차에서 이 이름을 사용해야 합니다.

  4. 정책 생성을 선택합니다.

연결된 정책으로 IAM 역할 생성

이제 IAM 역할을 생성하여 이전에 S3 버킷을 액세스하기 위해 생성한 정책을 연결합니다. IAM 콘솔의 역할 허브를 열고 다음 단계를 완료합니다.

  1. 역할 생성을 선택합니다.

  2. 신뢰할 수 있는 엔터티 유형 선택(Select type of trusted entity)에서 다른 AWS 계정을 선택합니다.

  3. 계정 ID에 AWS 계정 ID를 입력한 후 다음: 권한을 선택합니다.

  4. 검색 상자에 이전 절차에서 생성한 IAM 정책의 이름을 입력합니다. 검색 결과에서 이전에 만든 IAM 정책(예: IoTWirelessFwUpdatePolicy)을 확인하고 선택합니다.

  5. Next: Tags(다음: 태그)를 선택한 후 Next: Review(다음: 검토)를 선택합니다.

  6. 역할 이름에 이 역할의 이름(예: IoTWirelessFwUpdateRole)을 입력한 후 역할 생성을 선택합니다.

IAM 역할의 신뢰 관계 편집

이전 단계를 실행한 후 표시되는 확인 메시지에서 생성한 역할 이름을 선택하고 편집합니다. 다음 신뢰 관계를 추가하기 위해 역할을 편집합니다.

  1. 생성한 역할에 대한 요약 페이지에서 신뢰 관계 탭을 선택한 후 신뢰 관계 편집을 선택합니다.

  2. 정책 문서에서 Principal 속성을 다음 예시처럼 변경합니다.

    "Principal": { "Service": "iotwireless.amazonaws.com" },

    Principal 속성을 변경한 후 전체 정책 문서가 다음 예시와 같은 형식이어야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotwireless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
  3. 변경 사항을 저장하고 종료하려면 신뢰 정책 업데이트(Update Trust Policy)를 선택합니다.

  4. 사용자 역할에 대한 ARN을 획득합니다. IAM 역할을 선택하면 요약 섹션에 역할 ARN(예: arn:aws:iam::123456789012:role/IoTWirelessFwUpdateRole)이 표시됩니다. 역할 ARN을 복사합니다.

다음 단계 검토

이제 S3 버킷과 CUPS 서버가 S3 버킷을 읽을 수 있도록 하는 IAM 역할을 만들었으므로 다음 항목으로 이동하여 펌웨어 업데이트를 예약하고 실행합니다. 펌웨어 업데이트 수행을 위해 실행될 작업 정의를 생성할 때 입력할 수 있도록, 이전에 복사한 S3 URI역할 ARN을 기록해 둡니다.