翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IAM ワークフローの ポリシー
ワークフローをサーバーに追加する際、実行ロールを選択する必要があります。サーバーは、ワークフローの実行時にこのロールを使用します。ロールに適切なアクセス許可がない場合は、ワークフローを実行 AWS Transfer Family できません。
このセクションでは、ワークフローの実行に使用できる AWS Identity and Access Management (IAM) アクセス許可の 1 つのセットについて説明します。このトピックの後半で、他の例を紹介しています。
注記
Amazon S3 ファイルにタグがある場合は、IAMポリシーに 1 つまたは 2 つのアクセス許可を追加する必要があります。
-
バージョン管理されていない Amazon S3 ファイルに
s3:GetObjectTagging
を追加します。 -
バージョン管理されている Amazon S3 ファイルに
s3:GetObjectVersionTagging
を追加します。
ワークフローの実行ロールを作成するには
-
新しいIAMロールを作成し、 AWS マネージドポリシー
AWSTransferFullAccess
をロールに追加します。新しいIAMロールの作成の詳細については、「」を参照してくださいIAM ロールとポリシーを作成する。 -
次のアクセス許可を持つポリシーを作成してロールにアタッチします。
を、ユーザー自身の情報に置き換えます。user input placeholder
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConsoleAccess", "Effect": "Allow", "Action": "s3:GetBucketLocation", "Resource": "*" }, { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] }, { "Sid": "GetObjectVersion", "Effect": "Allow", "Action": "s3:GetObjectVersion", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:region
:account-id
:function:function-name
" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] } ] } -
このロールを保存し、ワークフローをサーバーに追加する際に実行ロールとして指定します。
注記
IAM ロールを構築する場合、 AWS は、ワークフローに対してリソースへのアクセスを可能な限り制限することをお勧めします。
ワークフローの信頼関係
ワークフロー実行ロールには、transfer.amazonaws.com
との信頼関係も必要です。 AWS Transfer Familyとの信頼関係を築くには、信頼関係を確立するには を参照してください。
信頼関係を築いている間は、「混乱した代理人」問題を避けるための対策を講じることもできます。この問題の説明と回避方法の例については、サービス間の混乱した代理の防止を参照してください。
実行ロールの例:復号化、コピー、タグ付け
タグ付け、コピー、復号ステップを含むワークフローがある場合は、次のIAMポリシーを使用できます。
を、ユーザー自身の情報に置き換えます。user input
placeholder
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CopyRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersionTagging" ], "Resource": "arn:aws:s3:::
source-bucket-name
/*" }, { "Sid": "CopyWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::destination-bucket-name
/*" }, { "Sid": "CopyList", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::source-bucket-name
", "arn:aws:s3:::destination-bucket-name
" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::destination-bucket-name
/*", "Condition": { "StringEquals": { "s3:RequestObjectTag/Archive": "yes" } } }, { "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::destination-bucket-name
" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name
/*" }, { "Sid": "Decrypt", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region
:account-ID
:secret:aws/transfer/*" } ] }
実行ロールの例:関数の実行と削除
この例では、 AWS Lambda 関数を呼び出すワークフローがあります。ワークフローがアップロードされたファイルを削除し、前のステップで失敗したワークフロー実行に対応するための例外ハンドラーステップがある場合は、次のIAMポリシーを使用します。
を、ユーザー自身の情報に置き換えます。user input placeholder
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::
bucket-name
" }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:region
:account-id
:function:function-name
" ] } ] }