IAM 分散マップ状態を使用するための ポリシー - AWS Step Functions

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

IAM 分散マップ状態を使用するための ポリシー

Step Functions コンソールでワークフローを作成すると、Step Functions はワークフロー定義のリソースに基づいてIAMポリシーを自動的に生成できます。これらのポリシーには、ステートマシンロールが分散マップ状態 StartExecutionAPIアクションを呼び出すのに必要な最小限の権限が含まれています。これらのポリシーには、Amazon S3 バケット、オブジェクト、Lambda 関数などの AWS リソースにアクセスするために必要な最小限の権限も含まれています。IAM ポリシーに必要なアクセス許可のみを含めることを強くお勧めします。例えばワークフローに分散モードの Map 状態が含まれている場合は、ポリシーの範囲をデータセットを含む特定の Amazon S3 バケットとフォルダに限定します。

重要

Amazon S3 バケットとオブジェクト、またはプレフィックスを指定し、分散マップ状態入力の既存のキーと値のペアへの参照パスを指定する場合は、ワークフローのIAMポリシーを更新してください。ポリシーの範囲は、ランタイムでパスから解釈されるバケット名とオブジェクト名に限定します。

分散マップ状態を実行するIAMポリシーの例

ワークフローに分散マップ状態を含める場合、Step Functions には、ステートマシンロールが分散マップ状態 StartExecutionAPIアクションを呼び出せるようにするための適切なアクセス許可が必要です。

次のIAMポリシー例では、分散マップ状態 を実行するために必要な最小限の権限をステートマシンロールに付与します。

注記

必ず stateMachineName を、分散マップ状態を使用しているステートマシン名に置き換えてください。例えば、arn:aws:states:us-east-2:123456789012:stateMachine:mystateMachine と指定します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:region:accountID:stateMachine:stateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": "arn:aws:states:region:accountID:execution:stateMachineName:*" } ] }

分散マップredrivingのIAMポリシーの例

失敗した子ワークフローは、親ワークフローのマップ実行で redriving できます。redriven された親ワークフローは、分散マップを含むすべての失敗状態を redrives します。実行ロールに、親ワークフローで RedriveExecutionAPIアクションを呼び出すために必要な最小限の権限があることを確認してください。

次のIAMポリシー例では、redriving分散マップ状態 のステートマシンロールに必要な最小限の権限を付与します。

注記

必ず stateMachineName を、分散マップ状態を使用しているステートマシン名に置き換えてください。例えば、arn:aws:states:us-east-2:123456789012:stateMachine:mystateMachine と指定します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine/myMapRunLabel:*" } ] }

Amazon S3 データセットからデータを読み取るためのIAMポリシーの例

次のIAMポリシー例では、ListObjectsV2 および GetObjectAPIアクションを使用して Amazon S3 データセットにアクセスするために必要な最小限の権限を付与します。

例 IAM データセットとしての Amazon S3 オブジェクトの ポリシー

次の例は、 という名前の Amazon S3 バケット内の processImages内に編成されたオブジェクトにアクセスするための最小権限を付与する IAMポリシーを示していますmyBucket。 Amazon S3

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::myBucket" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages" ] } } } ] }
例 IAM データセットとしてのCSVファイルの ポリシー

次の例は、 という名前のCSVファイルにアクセスするための最小権限を付与する IAMポリシーを示していますratings.csv

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::myBucket/csvDataset/ratings.csv" ] } ] }
例 IAM データセットとしての Amazon S3 インベントリの ポリシー

次の例は、Amazon S3 インベントリレポートにアクセスするための最小権限を付与する IAMポリシーを示しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json", "arn:aws:s3:::destination-prefix/source-bucket/config-ID/data/*" ] } ] }

Amazon S3 バケットにデータを書き込むIAMポリシーの例

次のIAMポリシー例では、子ワークフロー実行結果を という名前のフォルダに書き込むために必要な最小権限を付与します。csvJobs PutObject API アクションを使用した Amazon S3 バケット内の 。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::resultBucket/csvJobs/*" ] } ] }

IAM AWS KMS key 暗号化された Amazon S3 バケットの アクセス許可

分散マップ状態では、マルチパートアップロードを使用して Amazon S3 バケットに子ワークフローの実行結果を書き込みます。バケットが AWS Key Management Service (AWS KMS) キーを使用して暗号化されている場合は、キーに対して kms:Decryptkms:Encryptkms:GenerateDataKey アクションを実行する許可も、IAM ポリシーに含める必要があります。マルチパートアップロードを完了する前に、暗号化されたファイル部分からデータを復号して読み取る必要があるため、Amazon S3 にはこれらの許可が必要です。

次のIAMポリシー例ではkms:Decrypt、Amazon S3 バケットの暗号化に使用されるキーに対する kms:Encrypt、、および kms:GenerateDataKeyアクションにアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" ] } }

詳細については、AWS ナレッジセンターの「AWS KMS keyで暗号化した大容量ファイルを Amazon S3 にアップロードする」を参照してください。

IAM ユーザーまたはロールが AWS アカウント と同じ にある場合はKMS key、キーポリシーに対するこれらのアクセス許可が必要です。IAM ユーザーまたはロールが とは異なるアカウントに属している場合KMS key、キーポリシーとIAMユーザーまたはロールの両方に対するアクセス許可が必要です。