

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

# Membuat peran dan kebijakan IAM
<a name="requirements-roles"></a>

Topik ini menjelaskan jenis kebijakan dan peran yang dapat digunakan dengan AWS Transfer Family, dan menjelaskan proses pembuatan peran pengguna. Ini juga menjelaskan cara kerja kebijakan sesi dan memberikan contoh peran pengguna.

AWS Transfer Family menggunakan jenis peran berikut:
+ **Peran pengguna ** — Memungkinkan pengguna yang dikelola layanan untuk mengakses sumber daya Transfer Family yang diperlukan. AWS Transfer Family mengambil peran ini dalam konteks ARN pengguna Transfer Family.
+ **Peran akses ** — Menyediakan akses hanya ke file Amazon S3 yang sedang ditransfer. Untuk transfer AS2 masuk, peran akses menggunakan Nama Sumber Daya Amazon (ARN) untuk perjanjian. Untuk transfer AS2 keluar, peran akses menggunakan ARN untuk konektor.
+ **Peran pem ** anggilan — Untuk digunakan dengan Amazon API Gateway sebagai penyedia identitas khusus server. Transfer Family mengambil peran ini dalam konteks server Transfer Family ARN.
+ **Peran logging ** — Digunakan untuk mencatat entri ke Amazon CloudWatch. Transfer Family menggunakan peran ini untuk mencatat detail keberhasilan dan kegagalan bersama dengan informasi tentang transfer file. Transfer Family mengambil peran ini dalam konteks server Transfer Family ARN. Untuk transfer AS2 keluar, peran logging menggunakan konektor ARN.
+ **Peran eksekusi ** - Memungkinkan pengguna Transfer Family untuk memanggil dan meluncurkan alur kerja. Transfer Family mengambil peran ini dalam konteks alur kerja Transfer Family ARN.

Selain peran ini, Anda juga dapat menggunakan kebijakan * sesi*. Kebijakan sesi digunakan untuk membatasi akses bila diperlukan. Perhatikan bahwa kebijakan ini berdiri sendiri: artinya, Anda tidak menambahkan kebijakan ini ke peran. Sebaliknya, Anda menambahkan kebijakan sesi langsung ke pengguna Transfer Family.

**catatan**  
Saat membuat pengguna Transfer Family yang dikelola layanan, Anda dapat memilih ** Auto-generate kebijakan berdasarkan folder rumah. ** Ini adalah pintasan yang berguna jika Anda ingin membatasi akses pengguna ke folder mereka sendiri. Selain itu, Anda dapat melihat detail tentang kebijakan sesi dan contoh di[Cara kerja kebijakan sesi](#session-policy). Anda juga dapat menemukan informasi selengkapnya tentang kebijakan [ sesi di Kebijakan sesi ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) di Panduan * * Pengguna IAM.

**Topics**
+ [Membuat peran pengguna](#role-create-procedure)
+ [Cara kerja kebijakan sesi](#session-policy)
+ [Contoh kebijakan read/write akses](#read-write-access)

## Membuat peran pengguna
<a name="role-create-procedure"></a>

Ketika Anda membuat pengguna, Anda membuat sejumlah keputusan tentang akses pengguna. Keputusan ini mencakup bucket Amazon S3 atau sistem file Amazon EFS mana yang dapat diakses pengguna, bagian apa dari setiap bucket Amazon S3 dan file mana dalam sistem file yang dapat diakses, dan izin apa yang dimiliki pengguna (misalnya, `PUT` atau`GET`).

Untuk mengatur akses, Anda membuat kebijakan dan peran berbasis identitas AWS Identity and Access Management (IAM) yang menyediakan informasi akses tersebut. Sebagai bagian dari proses ini, Anda menyediakan akses bagi pengguna ke bucket Amazon S3 atau sistem file Amazon EFS yang merupakan target atau sumber untuk operasi file. Untuk melakukan ini, ambil langkah-langkah tingkat tinggi berikut, dijelaskan secara rinci nanti:

**Membuat peran pengguna**

1. Buat kebijakan IAM untuk AWS Transfer Family. Ini dijelaskan dalam[Cara membuat kebijakan IAM untuk AWS Transfer Family](#iam-policy-procedure).

1. Buat peran IAM dan lampirkan kebijakan IAM baru. Sebagai contoh, lihat [Contoh kebijakan read/write akses](#read-write-access).

1. Membangun hubungan kepercayaan antara AWS Transfer Family dan peran IAM. Ini dijelaskan dalam[Untuk membangun hubungan kepercayaan](#establish-trust-transfer).

Prosedur berikut menjelaskan cara membuat kebijakan dan peran IAM. <a name="iam-policy-procedure"></a>

**Cara membuat kebijakan IAM untuk AWS Transfer Family**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Kebijakan** dan kemudian pilih **Buat kebijakan**.

1. Pada ** halaman ** Buat Kebijakan, pilih ** tab ** JSON.

1. Di editor yang muncul, ganti konten editor dengan kebijakan IAM yang ingin Anda lampirkan ke peran IAM.

   Anda dapat memberikan read/write akses atau membatasi pengguna ke direktori home mereka. Untuk informasi selengkapnya, lihat [Contoh kebijakan read/write akses](#read-write-access).

1. Pilih ** Tinjau kebijakan ** dan berikan nama dan deskripsi untuk kebijakan Anda, lalu pilih ** Buat kebijakan**.

Selanjutnya, Anda membuat peran IAM dan melampirkan kebijakan IAM baru ke dalamnya.<a name="iam-role-procedure"></a>

**Untuk membuat peran IAM untuk AWS Transfer Family**

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

   Pada ** halaman ** Buat peran, pastikan **AWS layanan ** dipilih.

1. Pilih ** Transfer ** dari daftar layanan, lalu pilih Ber ** ikutnya: Izin**. Ini membangun hubungan kepercayaan antara AWS Transfer Family dan AWS.

1. Di ** bagian ** Lampirkan kebijakan izin, cari dan pilih kebijakan yang baru saja Anda buat, lalu pilih Ber ** ikutnya: Tag**.

1. (Opsional) Masukkan kunci dan nilai untuk tag, lalu pilih Ber ** ikutnya: Review**.

1. Pada ** halaman ** Tinjauan, masukkan nama dan deskripsi untuk peran baru Anda, lalu pilih ** Buat peran**.

Selanjutnya, Anda membangun hubungan kepercayaan antara AWS Transfer Family dan AWS.<a name="establish-trust-transfer"></a>

**Untuk membangun hubungan kepercayaan**
**catatan**  
Dalam contoh kami, kami menggunakan keduanya `ArnLike` dan`ArnEquals`. Mereka secara fungsional identik, dan oleh karena itu Anda dapat menggunakannya ketika Anda menyusun kebijakan Anda. Dokumentasi Transfer Family digunakan `ArnLike` ketika kondisi berisi karakter wildcard, dan `ArnEquals` untuk menunjukkan kondisi kecocokan yang tepat.

1. Di konsol IAM, pilih peran yang baru saja Anda buat.

1. Pada ** halaman ** Ringkasan, pilih Relasi ** kepercayaan**, lalu pilih ** Edit hubungan kepercayaan**.

1. Di ** editor ** Edit Trust Relationship, pastikan ** layanan ** ada`"transfer.amazonaws.com"`. Kebijakan akses ditampilkan sebagai berikut.  
****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "transfer.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

   Kami menyarankan Anda menggunakan kunci `aws:SourceAccount` dan `aws:SourceArn` kondisi untuk melindungi diri dari masalah wakil yang membingungkan. Akun sumber adalah pemilik server dan sumber ARN adalah ARN pengguna. Contoh:

   ```
   "Condition": {
       "StringEquals": {
           "aws:SourceAccount": "{{account_id}}"
       },
       "ArnLike": {
           "aws:SourceArn": "arn:aws:transfer:{{region}}:{{account_id}}:user/*"
       }
   }
   ```

   Anda juga dapat menggunakan `ArnLike` kondisi ini jika Anda ingin membatasi ke server tertentu alih-alih server apa pun di akun pengguna. Contoh: 

   ```
   "Condition": {    
       "ArnLike": {
           "aws:SourceArn": "arn:aws:transfer:{{region}}:{{account-id}}:user/{{server-id}}/*"
       }
   }
   ```
**catatan**  
Dalam contoh di atas, ganti masing-masing {{user input placeholder}} dengan informasi Anda sendiri.

   Untuk detail tentang masalah wakil yang membingungkan dan lebih banyak contoh, lihat[Cross-service pencegahan wakil yang bingung](confused-deputy.md).

1. Pilih ** Perbarui Kebijakan ** Kepercayaan untuk memperbarui kebijakan akses.

Anda sekarang telah membuat peran IAM yang memungkinkan AWS Transfer Family untuk memanggil AWS layanan atas nama Anda. Anda melampirkan ke peran kebijakan IAM yang Anda buat untuk memberikan akses kepada pengguna Anda. Di [Memulai dengan AWS Transfer Family titik akhir server](getting-started.md) bagian ini, peran dan kebijakan ini ditetapkan untuk pengguna atau pengguna Anda.

**Lihat juga**
+ Untuk informasi lebih umum tentang peran IAM, lihat [ Membuat peran untuk mendelegasikan izin ke AWS layanan ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) di Panduan Pengguna * IAM. *
+ Untuk mempelajari lebih lanjut tentang kebijakan berbasis identitas untuk sumber daya Amazon S3, lihat [ Identitas dan manajemen akses di Amazon S3 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) di Panduan Pengguna Layanan Peny * impanan Sederhana Amazon. *
+ Untuk mempelajari lebih lanjut tentang kebijakan berbasis identitas untuk sumber daya Amazon EFS, lihat [ Menggunakan IAM untuk mengontrol akses data sistem file ](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) di Panduan Pengguna Sistem File * Amazon Elastic. *

## Cara kerja kebijakan sesi
<a name="session-policy"></a>

Ketika administrator membuat peran, peran tersebut sering menyertakan izin luas untuk mencakup beberapa kasus penggunaan atau anggota tim. Jika administrator mengonfigurasi URL [ konsol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html), mereka dapat mengurangi izin untuk sesi yang dihasilkan dengan menggunakan kebijakan * * sesi. Misalnya, jika Anda membuat peran dengan [ read/write akses](#read-write-access), Anda dapat mengatur URL yang membatasi akses pengguna hanya ke direktori beranda mereka.

Kebijakan sesi adalah kebijakan lanjutan yang Anda berikan sebagai parameter saat Anda membuat sesi sementara secara terprogram untuk peran atau pengguna. Kebijakan sesi berguna untuk mengunci pengguna sehingga mereka hanya memiliki akses ke bagian bucket Anda di mana awalan objek berisi nama pengguna mereka. Diagram berikut menunjukkan bahwa izin kebijakan sesi adalah persimpangan kebijakan sesi dan kebijakan berbasis sumber daya ditambah persimpangan kebijakan sesi dan kebijakan berbasis identitas.

![Izin kebijakan sesi diagram Venn. Menunjukkan seberapa efektif izin terletak di persimpangan kebijakan berbasis sumber daya, kebijakan berbasis identitas, dan kebijakan sesi.](https://docs.aws.amazon.com/id_id/transfer/latest/userguide/images/EffectivePermissions-session-rbp-id.png)


Untuk detail selengkapnya, lihat Kebijakan [ sesi ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) di Panduan * * Pengguna IAM.

Di AWS Transfer Family, kebijakan sesi hanya didukung saat Anda mentransfer ke atau dari Amazon S3. Kebijakan contoh berikut adalah kebijakan sesi yang membatasi akses pengguna ke `home` direktori mereka saja. Perhatikan hal-hal berikut:
+ Per `GetObjectACL` `PutObjectACL` nyataan dan hanya diperlukan jika Anda perlu mengaktifkan Akses Lintas Akun. Artinya, server Transfer Family Anda perlu mengakses bucket di akun yang berbeda.
+  Panjang maksimum kebijakan sesi adalah 2048 karakter. Untuk detail selengkapnya, lihat parameter permintaan [ kebijakan ](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#API_CreateUser_RequestSyntax) untuk `CreateUser` tindakan di referensi * API*.
+  Jika bucket Amazon S3 Anda dienkripsi menggunakan AWS Key Management Service (AWS KMS), Anda harus menentukan izin tambahan dalam kebijakan Anda. Lihat perinciannya di [Perlindungan data dan enkripsi](encryption-at-rest.md).
+ Untuk menggunakan kebijakan sesi untuk membuat izin akses berdasarkan atribut pengguna tanpa membuat peran IAM terpisah untuk setiap pengguna, lihat[Pendekatan manajemen izin dinamis](dynamic-permission-management.md).

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::${transfer:HomeBucket}"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "${transfer:HomeFolder}/*",
                        "${transfer:HomeFolder}"
                    ]
                }
            }
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObjectVersion",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*"
        }
    ]
}
```

**catatan**  
Contoh kebijakan sebelumnya mengasumsikan bahwa direktori home pengguna disetel untuk menyertakan garis miring, untuk menandakan bahwa itu adalah direktori. Jika, di sisi lain, Anda menetapkan pengguna `HomeDirectory` tanpa garis miring, maka Anda harus memasukkannya sebagai bagian dari kebijakan Anda.

Dalam contoh kebijakan sebelumnya, perhatikan penggunaan parameter`transfer:HomeFolder`,`transfer:HomeBucket`, dan `transfer:HomeDirectory` kebijakan. Parameter ini diatur untuk `HomeDirectory` yang dikonfigurasi untuk pengguna, seperti yang dijelaskan dalam [ HomeDirectory ](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectory) dan[Menerapkan metode API Gateway Anda](authentication-api-gateway.md#authentication-api-method). Parameter ini memiliki definisi sebagai berikut:
+ `transfer:HomeBucket`Parameter diganti dengan komponen pertama`HomeDirectory`.
+ `transfer:HomeFolder`Parameter diganti dengan bagian `HomeDirectory` parameter yang tersisa.
+ `transfer:HomeDirectory`Parameter memiliki garis miring maju (`/`) yang terdepan dihapus sehingga dapat digunakan sebagai bagian dari S3 Amazon Resource Name (ARN) dalam `Resource` pernyataan.

**catatan**  
 Jika Anda menggunakan direktori logis — yaitu, direktori pengguna `homeDirectoryType` adalah `LOGICAL` — parameter kebijakan ini (`HomeBucket`,`HomeDirectory`, dan`HomeFolder`) tidak didukung. 

Misalnya, asumsikan bahwa `HomeDirectory` parameter yang dikonfigurasi untuk pengguna Transfer Family adalah`/home/bob/amazon/stuff/`.
+ `transfer:HomeBucket`diatur ke`/home`.
+ `transfer:HomeFolder`diatur ke`/bob/amazon/stuff/`.
+ `transfer:HomeDirectory`menjadi`home/bob/amazon/stuff/`.

Yang pertama `"Sid"` memungkinkan pengguna untuk membuat daftar semua direktori mulai dari`/home/bob/amazon/stuff/`.

Yang kedua `"Sid"` membatasi pengguna `put` dan `get` akses ke jalur yang sama,`/home/bob/amazon/stuff/`.

## Contoh kebijakan read/write akses
<a name="read-write-access"></a>

**Ber read/write ikan akses ke bucket Amazon S3**  
Kebijakan contoh berikut untuk memberikan AWS Transfer Family read/write akses ke objek di bucket Amazon S3 Anda.

Perhatikan hal-hal berikut:
+ Ganti `amzn-s3-demo-bucket` dengan nama bucket Amazon S3 Anda.
+ Per `GetObjectACL` `PutObjectACL` nyataan dan hanya diperlukan jika Anda perlu mengaktifkan Akses Lintas Akun. Artinya, server Transfer Family Anda perlu mengakses bucket di akun yang berbeda.
+ Per `GetObjectVersion` `DeleteObjectVersion` nyataan and hanya diperlukan jika pembuatan versi diaktifkan pada bucket Amazon S3 yang sedang diakses.
**catatan**  
Jika Anda * pernah * mengaktifkan pembuatan versi untuk bucket Anda, maka Anda memerlukan izin ini, karena Anda hanya dapat menangguhkan pembuatan versi di Amazon S3, dan tidak mematikannya sepenuhnya. Untuk detailnya, lihat Bucket [ tanpa versi, diaktifkan versi, dan ditangguhkan versi. ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html#versioning-states)

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion", 
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

**Berikan akses sistem file ke file di sistem file Amazon EFS**  


**catatan**  
Selain kebijakan, Anda juga harus memastikan izin file POSIX Anda memberikan akses yang sesuai. Untuk informasi selengkapnya, lihat [Bekerja dengan pengguna, grup, dan izin di Tingkat Network File System (NFS)](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html) dalam *Panduan Pengguna Amazon Elastic File System*.

Kebijakan contoh berikut memberikan akses sistem file root ke file di sistem file Amazon EFS Anda.

**catatan**  
Dalam contoh berikut, ganti {{region}} dengan wilayah Anda, {{account-id}} dengan akun tempat file berada, dan {{file-system-id}} dengan ID Amazon Elastic File System (Amazon EFS) Anda.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RootFileSystemAccess",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientRootAccess",
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite"
            ],
            "Resource": "arn:aws:elasticfilesystem:{{us-east-1}}:{{123456789012}}:file-system/{{file-system-id}}"
        }
    ]
}
```

Kebijakan contoh berikut memberikan akses sistem file pengguna ke file di sistem file Amazon EFS Anda.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UserFileSystemAccess",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite"
            ],
            "Resource": "arn:aws:elasticfilesystem:{{us-east-1}}:{{123456789012}}:file-system/{{file-system-id}}"
        }
    ]
}
```