將韌體檔案上傳至 S3 儲存貯體並新增 IAM 角色 - AWS IoT Wireless

將韌體檔案上傳至 S3 儲存貯體並新增 IAM 角色

您可以使用 Amazon S3 來建立「儲存貯體」,這是一個容器,其中可以儲存您的韌體更新檔案。您可以將檔案上傳到 S3 儲存貯體,並新增 IAM 角色,允許 CUPS 伺服器從儲存貯體讀取您的更新檔案。如需 Amazon S3 的詳細資訊,請參閱 Amazon S3 入門

您要上傳的韌體更新檔案取決於您正在使用的閘道。如果您所遵循的程序類似於 產生韌體更新檔案和簽章 所述的程序,您將上傳藉由執行指令碼所產生的 fwstation 檔案。

此程序約需 20 分鐘才能完成。

建立 Amazon S3 儲存貯體並上傳更新檔案

您可以使用 AWS Management Console 來建立 Amazon S3 儲存貯體,然後將韌體更新檔案上傳至儲存貯體。

建立 S3 儲存貯體

若要建立 S3 儲存貯體,請開啟 Amazon S3 console (Amazon S3 主控台)。如果您尚未登入,請登入,然後執行下列步驟:

  1. 選擇建立儲存貯體

  2. Bucket name (儲存貯體名稱) 輸入唯一且有意義的名稱 (例如,iotwirelessfwupdate)。如需儲存貯體的建議命名慣例,請參閱 https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html

  3. 確定您已選取 AWS 區域,作為您用來建立 LoRaWAN 閘道和裝置的區域,並已選取 Block all public access (封鎖所有公有存取) 設定,以便您的儲存貯體可以使用預設許可。

  4. 針對 Bucket versioning (儲存貯體版本控制) 選擇 Enable (啟用),這將協助您將多個版本的韌體更新檔案保留在同一儲存貯體中。

  5. 確認 Server-side encryption (伺服器端加密) 已設定為 Disable (停用),然後選擇 Create bucket (建立儲存貯體)。

上傳您的韌體更新檔案

您現在可以在 AWS Management Console 顯示的儲存貯體清單中看到您的儲存貯體。選擇您的儲存貯體並完成下列步驟以上傳您的檔案。

  1. 選擇您的儲存貯體,然後選擇 Upload (上傳)。

  2. 選擇 Add file (新增檔案),然後上傳韌體更新檔案。如果已遵循 產生韌體更新檔案和簽章 所述的程序,您將上傳 fwstation 檔案,否則上傳閘道製造商所提供的檔案。

  3. 確定所有設定都設定為其預設值。確定 Predefined ACLs (預先定義的 ACL) 已設定為 private (私有),然後選擇 Upload (上傳) 以上傳您的檔案。

  4. 複製所上傳檔案的 S3 URI。選擇您的儲存貯體,您會看到您上傳的檔案顯示在 Objects (物件) 的清單中。選擇您的檔案,然後選擇 Copy S3 URI (複製 S3 URI)。URI 將如下所示:s3://iotwirelessfwupdate/fwstation,如果您已將儲存貯體命名為類似於上述範例 (fwstation)。您將會在建立 IAM 角色時使用 S3 URI。

建立許可讀取 S3 儲存貯體的 IAM 角色

您現在將建立 IAM 角色和政策,許可 CUPS 從 S3 儲存貯體讀取您的韌體更新檔案。

為您的角色建立 IAM 政策

若要為您的 AWS IoT Core for LoRaWAN 目的地角色建立 IAM 政策,請開啟 IAM 主控台的政策中樞,然後完成下列步驟:

  1. 選擇 Create policy (建立政策),然後選擇 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. 選擇 Review policy (檢閱政策),然後在 Name (名稱) 中,輸入此政策的名稱 (例如,IoTWirelessFwUpdatePolicy)。您將需要此名稱用於下一個程序中。

  4. 選擇建立政策

建立 IAM 角色與附加的政策

您現在將建立 IAM 角色,並連接先前建立的政策,以存取 S3 儲存貯體。開啟 IAM 主控台的角色中樞,然後完成下列步驟:

  1. 選擇 Create Role (建立角色)。

  2. Select type of trusted entity (選取信任的實體類型) 中,選擇 Another AWS 帳戶 (另一個 AWS 帳戶 帳戶)。

  3. Account ID (帳戶 ID) 中,請輸入您的 AWS 帳戶 ID,然後選擇 Next: Permissions (下一步:許可)。

  4. 在搜尋方塊中,輸入您在上一個程序中建立的 IAM 政策名稱。檢查您稍早在搜尋結果中建立的 IAM 政策 (例如,IoTWirelessFwUpdatePolicy),然後選擇它。

  5. 選擇 Next: Tags (下一步:標籤),然後選擇 Next: Review (下一步:檢閱)。

  6. Role name (角色名稱) 中,輸入此角色的名稱 (例如,IoTWirelessFwUpdateRole),然後選擇 Create role (建立角色)。

編輯 IAM 角色的信任關係

在執行前一個步驟之後顯示的確認訊息中,選擇您建立的角色名稱以編輯該角色。您將編輯角色以新增下列信任關係。

  1. 在所建立角色的 Summary (摘要) 區段中,選擇 Trust relationships (信任關係) 標籤,然後選擇 Edit trust relationship (編輯信任關係)。

  2. Policy Document (政策文件) 中,變更 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 角色,然後在 Summary (摘要) 區段中,您會看到 Role ARN (角色 ARN),例如 arn:aws:iam::123456789012:role/IoTWirelessFwUpdateRole。複製此 Role ARN (角色 ARN)。

檢閱後續步驟

既然您已建立 S3 儲存貯體,以及允許 CUPS 伺服器讀取 S3 儲存貯體的 IAM 角色,請移至下一個主題以排程並執行韌體更新。保留您先前複製的 S3 URIRole ARN (角色 ARN),以便您可以輸入它們,來建立為了執行韌體更新而執行的任務定義。