

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kebijakan IAM untuk alur kerja
<a name="workflow-execution-role"></a>

Ketika Anda menambahkan alur kerja ke server, Anda harus memilih peran eksekusi. Server menggunakan peran ini ketika menjalankan alur kerja. Jika peran tidak memiliki izin yang tepat, AWS Transfer Family tidak dapat menjalankan alur kerja. 

Bagian ini menjelaskan satu kemungkinan set izin AWS Identity and Access Management (IAM) yang dapat Anda gunakan untuk menjalankan alur kerja. Contoh lain dijelaskan nanti dalam topik ini. 

**catatan**  
Jika file Amazon S3 Anda memiliki tag, Anda perlu menambahkan satu atau dua izin ke kebijakan IAM Anda.  
Tambahkan `s3:GetObjectTagging` file Amazon S3 yang tidak berversi.
Tambahkan `s3:GetObjectVersionTagging` untuk file Amazon S3 yang berversi.

**Untuk membuat peran eksekusi untuk alur kerja Anda**

1. Buat peran IAM baru, dan tambahkan kebijakan AWS terkelola `AWSTransferFullAccess` ke peran tersebut. Untuk informasi selengkapnya tentang membuat peran IAM baru, lihat[Buat peran dan kebijakan IAM](requirements-roles.md).

1. Buat kebijakan lain dengan izin berikut, dan lampirkan ke peran Anda. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ConsoleAccess",
               "Effect": "Allow",
               "Action": "s3:GetBucketLocation",
               "Resource": "*"
           },
           {
               "Sid": "ListObjectsInBucket",
               "Effect": "Allow",
               "Action": "s3:ListBucket",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           },
           {
               "Sid": "AllObjectActions",
               "Effect": "Allow",
               "Action": "s3:*Object",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "GetObjectVersion",
               "Effect": "Allow",
               "Action": "s3:GetObjectVersion",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "Custom",
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:us-east-1:123456789012:function:function-name"
               ]
           },
           {
               "Sid": "Tag",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObjectTagging",
                   "s3:PutObjectVersionTagging"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

1. Simpan peran ini dan tentukan sebagai peran eksekusi saat Anda menambahkan alur kerja ke server.
**catatan**  
Ketika Anda membangun peran IAM, AWS merekomendasikan agar Anda membatasi akses ke sumber daya Anda sebanyak mungkin untuk alur kerja Anda.

## Hubungan kepercayaan alur kerja
<a name="workflows-trust"></a>

Peran eksekusi alur kerja juga membutuhkan hubungan kepercayaan dengan`transfer.amazonaws.com`. Untuk membangun hubungan kepercayaan AWS Transfer Family, lihat[Untuk membangun hubungan kepercayaan](requirements-roles.md#establish-trust-transfer).

Saat Anda membangun hubungan kepercayaan Anda, Anda juga dapat mengambil langkah-langkah untuk menghindari masalah *wakil yang membingungkan*. Untuk deskripsi masalah ini, serta contoh cara menghindarinya, lihat[Pencegahan "confused deputy" lintas layanan](confused-deputy.md).

## Contoh peran eksekusi: Dekripsi, salin, dan tag
<a name="example-workflow-role-copy-tag"></a>

Jika Anda memiliki alur kerja yang menyertakan langkah penandaan, penyalinan, dan dekripsi, Anda dapat menggunakan kebijakan IAM berikut. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CopyRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
        },
        {
            "Sid": "CopyWrite",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "CopyList",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:RequestObjectTag/Archive": "yes"
                }
            }
        },
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "Decrypt",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:aws/transfer/*"
        }
    ]
}
```

## Contoh peran eksekusi: Jalankan fungsi dan hapus
<a name="example-workflow-role-custom-delete"></a>

Dalam contoh ini, Anda memiliki alur kerja yang memanggil fungsi. AWS Lambda Jika alur kerja menghapus file yang diunggah dan memiliki langkah penangan pengecualian untuk menindaklanjuti eksekusi alur kerja yang gagal pada langkah sebelumnya, gunakan kebijakan IAM berikut. Ganti masing-masing `user input placeholder` dengan informasi Anda sendiri. 

****  

```
{
    "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:us-east-1:123456789012:function:function-name"
            ]
        }
    ]
}
```