View a markdown version of this page

設定 IAM 許可 - Amazon Location Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 IAM 許可

Amazon Location Jobs 需要 IAM 執行角色,授予服務存取 Amazon S3 儲存貯體的許可。當您執行任務時,Amazon Location 會擔任此角色,從輸入儲存貯體讀取輸入檔案,並代表您將輸出結果寫入輸出儲存貯體。您可以透過建立具有所需 Amazon S3 許可的 IAM 政策,並將其連接至具有允許 Amazon Location 服務擔任該角色之信任政策的 IAM 角色,來提供這些許可。

注意

您建立的 Amazon S3 輸入和輸出儲存貯體必須存在於您計劃執行任務 AWS 區域 的相同 中。您建立的 IAM 資源必須在相同的帳戶中建立。

步驟 1:建立 IAM 政策

建立授予 Amazon Location 任務所需許可的 IAM 政策。

為 Amazon Location 任務建立 IAM 政策
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在導覽窗格中,選擇政策

  3. 選擇 Create policy (建立政策)。

  4. 選擇 JSON 索引標籤並輸入下列政策文件,將 INPUT_BUCKET_NAMEOUTPUT_BUCKET_NAME 取代為您的儲存貯體名稱:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetObjectVersion", "s3:GetBucketVersioning" ], "Resource": [ "arn:aws:s3:::INPUT_BUCKET_NAME", "arn:aws:s3:::INPUT_BUCKET_NAME/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::OUTPUT_BUCKET_NAME/*" ] } ] }
  5. 選擇下一步

  6. 針對政策名稱,請輸入描述性名稱,例如 LocationJobsS3AccessPolicy

  7. 選擇建立政策

下表說明此政策授予的許可:

權限 Description
s3:GetObject 允許 Amazon Location 從輸入儲存貯體讀取輸入檔案。
s3:ListBucket 允許 Amazon Location 列出輸入儲存貯體中的檔案,以識別要處理的所有輸入檔案。
s3:GetObjectVersion 允許 Amazon Location 存取特定版本的輸入檔案。必要,因為必須在儲存貯體上啟用版本控制。
s3:GetBucketVersioning 允許 Amazon Location 確認您的輸入儲存貯體上已啟用版本控制。
s3:PutObject 允許 Amazon Location 將輸出結果寫入您的輸出儲存貯體。
s3:AbortMultipartUpload 允許 Amazon Location 在寫入大型輸出檔案時清除失敗的分段上傳。
注意

此政策僅授予 Amazon Location Jobs 運作所需的許可,以遵循最低權限原則。此政策會將讀取許可限制在您的輸入儲存貯體,並將許可寫入您的輸出儲存貯體。

使用 建立 IAM 政策 AWS CLI
  1. 使用location-jobs-policy.json下列內容建立名為 的檔案,將 INPUT_BUCKET_NAMEOUTPUT_BUCKET_NAME 取代為您的儲存貯體名稱:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetObjectVersion", "s3:GetBucketVersioning" ], "Resource": [ "arn:aws:s3:::INPUT_BUCKET_NAME", "arn:aws:s3:::INPUT_BUCKET_NAME/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::OUTPUT_BUCKET_NAME/*" ] } ] }
  2. 建立政策:

    aws iam create-policy \ --policy-name LocationJobsS3AccessPolicy \ --policy-document file://location-jobs-policy.json
  3. 請注意來自輸出的政策 ARN。下一個步驟需要用到此 ARN。

步驟 2:建立執行角色

建立 Amazon Location 擔任的 IAM 角色,以在任務執行期間存取您的 Amazon S3 儲存貯體。

信任政策允許 Amazon Location 服務 (geo.amazonaws.com) 擔任此角色。Amazon Location 在任務執行期間存取 Amazon S3 儲存貯體需要此信任關係。

為 Amazon Location 任務建立執行角色
  1. 在 IAM 主控台導覽窗格中,選擇 Roles (角色)。

  2. 選擇建立角色

  3. 對於 Trusted entity type (信任的實體類型),選擇 Custom trust policy (自訂信任政策)。

  4. 輸入下列信任政策,將 ACCOUNT_ID 取代為 AWS 您的帳戶 ID:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "geo.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" } } } ] }
  5. 選擇下一步

  6. 搜尋並選取您在步驟 1 中建立的政策 (例如 LocationJobsS3AccessPolicy)。

  7. 選擇下一步

  8. 針對角色名稱,輸入描述性名稱,例如 LocationServiceJobExecutionRole

  9. 選擇建立角色

使用 建立執行角色 AWS CLI
  1. 使用trust-policy.json下列內容建立名為 的檔案,並以 AWS 您的帳戶 ID 取代 ACCOUNT_ID

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "geo.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" } } } ] }
  2. 建立角色:

    aws iam create-role \ --role-name LocationServiceJobExecutionRole \ --assume-role-policy-document file://trust-policy.json
  3. 連接您在步驟 1 中建立的政策 (如果不同,請將 ACCOUNT_ID 取代為 AWS 您的帳戶 ID,並將 LocationJobsS3AccessPolicy 取代為政策名稱):

    aws iam attach-role-policy \ --role-name LocationServiceJobExecutionRole \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/LocationJobsS3AccessPolicy
  4. 取得角色 ARN:

    aws iam get-role \ --role-name LocationServiceJobExecutionRole \ --query 'Role.Arn' \ --output text
  5. 請注意輸出中的角色 ARN。使用 ExecutionRoleArn 參數啟動任務時,您需要此 ARN。

建立角色之後,請記下角色 ARN。使用 ExecutionRoleArn 參數啟動任務時,您需要此 ARN。如需詳細資訊,請參閱準備輸入資料

安全最佳實務

設定 Amazon Location Jobs 的 IAM 許可時,請遵循下列安全最佳實務:

  • 使用特定儲存貯體 ARNs:將政策中的預留位置儲存貯體名稱取代為您實際的儲存貯體名稱,以限制存取您打算使用的儲存貯體。

  • 單獨的輸入和輸出儲存貯體:使用不同的輸入和輸出儲存貯體,以保持讀取和寫入許可的明確分離。

  • 啟用 Amazon S3 儲存貯體版本控制:必須在儲存貯體上啟用版本控制。這是 Amazon Location Jobs 正常運作的必要項目。

  • 使用 Amazon S3 儲存貯體政策:將儲存貯體政策新增至 Amazon S3 儲存貯體,以取得 IAM 政策以外的其他存取控制。

  • 監控角色用量:使用 監控 Amazon Location Jobs 使用執行角色的時間和方式。