翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions コンソールでワークフローを作成すると、Step Functions はワークフロー定義内のリソースに基づいて IAM ポリシーを自動的に生成できます。これらのポリシーには、ステートマシンロールが分散マップ状態の StartExecution
API アクションを呼び出すために必要な最小特権が含まれています。これらのポリシーには、Amazon S3 バケットやオブジェクト、Lambda 関数などの AWS リソースにアクセスするために必要な最小限の権限も含まれています。IAM ポリシーには必要なアクセス許可のみを含めることを強くお勧めします。例えばワークフローに分散モードの Map
状態が含まれている場合は、ポリシーの範囲をデータセットを含む特定の Amazon S3 バケットとフォルダに限定します。
重要
分散マップ状態の入力で、既存のキーと値のペアへの参照パスとともに、Amazon S3 バケットやオブジェクト、またはプレフィックスを指定する場合は、ワークフローの IAM ポリシーを必ず更新してください。ポリシーの範囲は、ランタイムでパスから解釈されるバケット名とオブジェクト名に限定します。
分散マップ状態を実行するための IAM ポリシーの例
ワークフローに分散マップ状態を含める場合、Step Functions には、ステートマシンのロールで分散マップ状態の StartExecution
API アクションを呼び出すための適切な許可が必要です。
次の 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 できます。redriven された親ワークフローは、分散マップを含むすべての失敗状態を redrives します。実行ロールには、親ワークフローで RedriveExecution
API アクションを呼び出すために必要な最小特権があることを確認してください。
次の 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 および GetObject API アクションを使用して Amazon S3 データセットにアクセスするのに必要な最小特権を付与しています。
例 データセットとしての Amazon S3 オブジェクトの IAM ポリシー
以下は、Amazon S3 バケットの
に配置した processImages
という名前のオブジェクトにアクセスするための最小特権を付与する IAM ポリシーの例です。amzn-s3-demo-bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket
"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"processImages
"
]
}
}
}
]
}
例 データセットとしての CSV ファイルの IAM ポリシー
以下は、
という名前の 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
"
]
}
]
}
例 データセットとしての Amazon S3 インベントリの IAM ポリシー
以下は、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 ポリシーの例では PutObject
API アクションを使用して、Amazon S3 バケット内にある csvJobs
という名前のフォルダに、子ワークフローの実行結果を書き込むために必要な最小特権を付与しています。
{
"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
/*"
]
}
]
}
AWS KMS key 暗号化された Amazon S3 バケットの IAM アクセス許可
分散マップ状態では、マルチパートアップロードを使用して Amazon S3 バケットに子ワークフローの実行結果を書き込みます。バケットが AWS Key Management Service (AWS KMS) キーを使用して暗号化されている場合は、キーに対して kms:Decrypt
、kms:Encrypt
、kms:GenerateDataKey
アクションを実行する許可も、IAM ポリシーに含める必要があります。マルチパートアップロードを完了する前に、暗号化されたファイル部分からデータを復号して読み取る必要があるため、Amazon S3 にはこれらの許可が必要です。
次の IAM ポリシーの例では、Amazon S3 バケットの暗号化に使用されるキーに対する kms:Decrypt
、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 ユーザーまたはロールへのアクセス許可が両方とも必要です。