View a markdown version of this page

IAM 許可を設定する - Amazon Location Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IAM 許可を設定する

Amazon Location Jobs には、Amazon S3 バケットへのアクセス許可をサービスに付与する IAM 実行ロールが必要です。ジョブを実行すると、Amazon Location はこのロールを引き受けて入力バケットから入力ファイルを読み取り、出力結果を出力バケットに書き込みます。これらのアクセス許可を付与するには、必要な Amazon S3 アクセス許可を持つ IAM ポリシーを作成し、Amazon Location サービスがロールを引き受けることを許可する信頼ポリシーを持つ IAM ロールにアタッチします。

注記

作成する Amazon S3 入出力バケットは、ジョブを実行する予定の AWS リージョン と同じ に存在する必要があります。作成する IAM リソースは、同じアカウントで作成する必要があります。

ステップ 1: IAM ポリシーを作成する

Amazon Location ジョブに必要なアクセス許可を付与する IAM ポリシーを作成します。

Amazon Location ジョブの IAM ポリシーを作成するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインで、ポリシー を選択してください。

  3. [Create policy] (ポリシーの作成) を選択します。

  4. JSON タブを選択し、INPUT_BUCKET_NAME OUTPUT_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. [Create policy] (ポリシーの作成) を選択します。

次の表に、このポリシーによって付与されるアクセス許可を示します。

アクセス許可 説明
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. INPUT_BUCKET_NAME OUTPUT_BUCKET_NAME をバケット名に置き換えて、 という名前location-jobs-policy.jsonのファイルを次の内容で作成します。

    { "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 が Amazon S3 バケットにアクセスするために引き受ける IAM ロールを作成します。

信頼ポリシーは、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. ACCOUNT_ID を AWS アカウント ID に置き換えて、次の内容trust-policy.jsonで という名前のファイルを作成します。

    { "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 を書き留めます。この ARN は、 ExecutionRoleArnパラメータを使用してジョブを開始するときに必要です。

ロールを作成したら、ロール ARN を書き留めます。この ARN は、 ExecutionRoleArnパラメータを使用してジョブを開始するときに必要です。詳細については、「入力データを準備する」を参照してください。

セキュリティのベストプラクティス

Amazon Location Jobs の IAM アクセス許可を設定するときは、次のセキュリティのベストプラクティスに従ってください。

  • 特定のバケット ARNs を使用する: ポリシーのプレースホルダーバケット名を実際のバケット名に置き換えて、使用するバケットのみへのアクセスを制限します。

  • 入出力バケットを分離する: 入出力に異なるバケットを使用して、読み取りと書き込みのアクセス許可を明確に分離します。

  • Amazon S3 バケットバージョニングを有効にする: バケットでバージョニングを有効にする必要があります。これは、Amazon Location Jobs が正しく機能するために必要です。

  • Amazon S3 バケットポリシーを使用する: Amazon S3 バケットにバケットポリシーを追加して、IAM ポリシー以外のアクセスコントロールを追加します。

  • ロールの使用状況をモニタリングする: を使用して、Amazon Location Jobs で実行ロールがいつどのように使用されるかをモニタリングします。