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

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

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

Step Functions コンソールでワークフローを作成すると、Step Functions はワークフロー定義のリソースに基づいてIAMポリシーを自動的に生成できます。これらのポリシーには、ステートマシンロールが分散マップ状態 StartExecutionAPIアクションを呼び出すのに必要な最小限の権限が含まれています。これらのポリシーには、Step Functions がアクセスするために必要な最小限の権限も含まれています。 AWS Amazon S3 バケット、オブジェクト、Lambda 関数などの リソース。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:*" } ] }

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

失敗した子ワークフロー実行は、 によってマップ実行で再開できます。 redriving 親ワークフロー 。A 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ポリシーを示していますamzn-s3-demo-bucket。 Amazon S3

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "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:::amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json", "arn:aws:s3:::destination-prefix/amzn-s3-demo-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:::amzn-s3-demo-destination-bucket/csvJobs/*" ] } ] }

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

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

詳細については、「 を使用した暗号化による Amazon S3 への大きなファイルのアップロード」を参照してください。 AWS KMS key ()AWS ナレッジセンター

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