

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

# Peran IAM
<a name="iam-roles"></a>

Saat membuat kumpulan identitas, Anda diminta untuk memperbarui peran IAM yang diasumsikan pengguna Anda. IAM role bekerja seperti ini: Saat pengguna masuk ke aplikasi Anda, Amazon Cognito menghasilkan kredensial AWS sementara untuk pengguna. Kredensial sementara ini terkait dengan IAM role tertentu. Dengan peran IAM, Anda dapat menentukan serangkaian izin untuk mengakses sumber daya Anda AWS .

Anda dapat menentukan IAM role default untuk pengguna yang terautentikasi dan tidak terautentikasi. Selain itu, Anda dapat menentukan aturan untuk memilih peran untuk setiap pengguna berdasarkan klaim di token ID pengguna. Untuk informasi selengkapnya, lihat [Menggunakan kontrol akses berbasis peran](role-based-access-control.md).

Secara default, konsol Amazon Cognito membuat peran IAM yang menyediakan akses ke Amazon Mobile Analytics dan ke Amazon Cognito Sync. Atau, Anda dapat memilih untuk menggunakan IAM role yang sudah ada.

Ubah peran IAM untuk mengizinkan atau membatasi akses ke layanan lain. Untuk melakukannya, [masuk ke Konsol IAM](https://console.aws.amazon.com/iam/home). Kemudian pilih **Peran**, dan pilih peran. Kebijakan yang dilampirkan pada peran yang dipilih tercantum di tab **Izin**. Anda dapat menyesuaikan kebijakan akses dengan memilih tautan **Kelola Kebijakan** yang sesuai. Untuk mempelajari lebih lanjut tentang menggunakan dan menentukan kebijakan, lihat [Ikhtisar Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html).

**catatan**  
Sebagai praktik terbaik, tentukan kebijakan yang mengikuti prinsip pemberian *hak istimewa minimal*. Dengan kata lain, kebijakan mencakup hanya izin yang diperlukan pengguna untuk melakukan tugas-tugas mereka. Untuk informasi lebih lanjut, lihat [Memberikan Hak Akses Minimal](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dalam *Panduan Pengguna IAM*.  
Ingat bahwa identitas yang tidak diautentikasi diasumsikan oleh pengguna yang tidak masuk ke aplikasi Anda. Biasanya, izin yang Anda tetapkan untuk identitas yang tidak diautentikasi harus lebih ketat daripada untuk identitas diautentikasi.

**Topics**
+ [Menyiapkan kebijakan kepercayaan](#trust-policies)
+ [Kebijakan akses](#access-policies)
+ [Kepercayaan peran dan izin](#role-trust-and-permissions)

## Menyiapkan kebijakan kepercayaan
<a name="trust-policies"></a>

Amazon Cognito menggunakan peran IAM untuk menghasilkan kredensil sementara bagi pengguna aplikasi Anda. Akses ke izin dikendalikan oleh hubungan kepercayaan peran. Pelajari selengkapnya tentang [Kepercayaan peran dan izin](#role-trust-and-permissions). Pialang Amazon Cognito menghubungkan antara AWS STS dan kumpulan identitas. IdPs

Token yang disajikan AWS STS dihasilkan oleh kumpulan identitas, yang menerjemahkan kumpulan pengguna, sosial, atau token penyedia OIDC, atau pernyataan SAMP, ke tokennya sendiri. Token kumpulan identitas berisi `aud` klaim yang merupakan ID kumpulan identitas.

Jika kebijakan kepercayaan peran IAM adalah prinsip layanan kumpulan identitas seperti`cognito-identity.amazonaws.com`, Anda tidak dapat membuat atau memodifikasi kebijakan kepercayaan peran sehingga mereka mengizinkan kumpulan identitas apa pun untuk mengambil peran tersebut. `Principal` Dengan prinsipal kumpulan identitas, `Action` elemen harus memiliki `Condition` persyaratan yang hanya `AssumeRoleWithWebIndentity` dilakukan oleh kumpulan identitas Anda, seperti yang ditentukan oleh kunci kondisi seperti`cognito-identity.amazonaws.com:aud`. Kunci kondisi lain tersedia, tetapi `aud` diperlukan. Jika Anda mencoba menyimpan kebijakan kepercayaan peran tanpa kondisi jenis ini, IAM akan mengembalikan kesalahan.

Untuk informasi selengkapnya tentang kunci federasi OIDC (identitas web), lihat Kunci yang [tersedia untuk federasi AWS OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-wif).

Berikut ini adalah kunci kondisi federasi OIDC yang tersedia untuk Amazon Cognito.

**`cognito-identity.amazonaws.com:aud`**  
Membatasi peran untuk operasi dari satu atau lebih kumpulan identitas. Amazon Cognito menunjukkan kumpulan identitas sumber dalam `aud` klaim dalam token kumpulan identitas.

**`cognito-identity.amazonaws.com:amr`**  
Membatasi peran untuk salah satu `authenticated` atau `unauthenticated` (tamu) pengguna. Amazon Cognito menunjukkan status otentikasi dalam `amr` klaim di token kumpulan identitas.

**`cognito-identity.amazonaws.com:sub`**  
Membatasi peran untuk satu atau lebih pengguna oleh [UUID](cognito-terms.md#terms-uuid). UUID ini adalah ID identitas pengguna di kolam identitas. Nilai ini bukan `sub` nilai dari penyedia identitas asli pengguna. Amazon Cognito menunjukkan UUID ini dalam `sub` klaim di token kumpulan identitas.

Contoh kebijakan kepercayaan peran berikut memungkinkan prinsipal layanan federasi `cognito-identity.amazonaws.com` untuk memanggil AWS STS API`AssumeRoleWithWebIdentity`. Permintaan hanya akan berhasil jika token kumpulan identitas dalam permintaan API memiliki klaim berikut.

1. `aud`Klaim ID kumpulan identitas`us-west-2:abcdefg-1234-5678-910a-0e8443553f95`.

1. `amr`Klaim `authenticated` tersebut ditambahkan saat pengguna masuk dan bukan pengguna tamu.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "cognito-identity.amazonaws.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "cognito-identity.amazonaws.com:aud": "us-west-2:abcdefg-1234-5678-910a-0e8443553f95"
                },
                "ForAnyValue:StringLike": {
                    "cognito-identity.amazonaws.com:amr": "authenticated"
                }
            }
        }
    ]
}
```

------

### Kebijakan kepercayaan untuk peran IAM dalam otentikasi Dasar (Klasik)
<a name="trust-policies-classic"></a>

**Ringkasan**  
Kumpulan identitas hanya dapat mengambil peran atas nama pengguna dalam [alur otentikasi](authentication-flow.md#authentication-flow-basic) Dasar ketika kebijakan kepercayaan peran target berisi `aud` kondisi.

Autentikasi dasar memiliki batasan yang sama pada kebijakan kepercayaan peran tidak aman seperti otentikasi yang disempurnakan: Anda tidak dapat menyimpan kebijakan kepercayaan peran yang gagal membatasi kumpulan identitas yang didukung dengan suatu kondisi. `aud` Batasan ini tidak diberlakukan saat layanan diluncurkan. Sebelum penerapan persyaratan ini, Anda dapat membuat kebijakan kepercayaan peran yang tidak memiliki kondisi keamanan tambahan. Setelah penerapan persyaratan ini, AWS STS mengizinkan identitas web untuk mengambil peran yang tidak dijamin dengan kondisi, tetapi peran tersebut **tidak dapat dimodifikasi** tanpa memperkenalkan kondisi tersebut.

Autentikasi aliran yang ditingkatkan mengharuskan peran IAM sama Akun AWS dengan kumpulan identitas. Tetapi dalam otentikasi dasar, di mana aplikasi Anda menyusun `AssumeRoleWithWebIdentity` permintaan, aplikasi Anda dapat meminta untuk mengambil peran dalam akun yang berbeda. Permintaan peran asumsi [lintas akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) Anda akan gagal, jika peran tujuan memiliki kebijakan kepercayaan lama yang tidak memberlakukan kondisi tersebut. `aud`

Token yang dikeluarkan oleh kumpulan identitas untuk identitas berisi informasi tentang Akun AWS asal kumpulan identitas. Saat Anda menampilkan token kumpulan identitas dalam permintaan [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API, AWS STS periksa apakah kumpulan identitas asal Akun AWS sama dengan peran IAM. Jika AWS STS menentukan bahwa permintaan tersebut lintas akun, ia memeriksa untuk melihat apakah kebijakan kepercayaan peran memiliki `aud` kondisi. **Panggilan peran asumsi gagal** jika tidak ada kondisi seperti itu dalam kebijakan kepercayaan peran. Jika permintaan tidak lintas akun, AWS STS tidak memberlakukan pembatasan ini. Sebagai praktik terbaik, selalu terapkan kondisi jenis ini pada kebijakan kepercayaan peran kumpulan identitas Anda.

Berikut ini adalah contoh kebijakan kepercayaan yang memenuhi persyaratan *minimum* untuk peran IAM untuk otentikasi dasar dengan beberapa kumpulan identitas. Sebagai praktik terbaik, izinkan hanya identitas yang diautentikasi dengan suatu `"cognito-identity.amazonaws.com:amr": "authenticated"` kondisi juga.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "cognito-identity.amazonaws.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "cognito-identity.amazonaws.com:aud": [
                        "us-west-2:abcdefg-1234-5678-910a-0e8443553f95",
                        "us-west-2:hijklmo-5678-9101-112b-0e4221776g96",
                        "us-west-2:pqrstuv-9101-1121-314c-0e2110887h97"
                    ]
                }
            }
        }
    ]
}
```

------

### Ketentuan kebijakan kepercayaan tambahan
<a name="trust-policies-examples"></a>

Anda dapat menggunakan ketentuan kebijakan kepercayaan berikut untuk menentukan kumpulan identitas sumber, identitas, dan penyedia yang dapat mengambil peran IAM.

**catatan**  
Jangan terapkan kunci [aws:SourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip)kondisi dalam kebijakan kepercayaan untuk peran IAM yang diasumsikan oleh kumpulan identitas dalam alur [otentikasi yang disempurnakan](authentication-flow.md#authentication-flow-enhanced). Karena aliran yang ditingkatkan menghasilkan [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)permintaan atas nama aplikasi Anda, IP sumber permintaan tidak akan menjadi IP klien aplikasi Anda, dan kondisinya tidak akan pernah terpenuhi. Kunci kondisi berbasis jaringan berlaku untuk peran yang diasumsikan oleh kumpulan identitas *hanya* melalui [aliran dasar](authentication-flow.md#authentication-flow-basic), yang tidak memiliki fitur sisi layanan dari aliran yang ditingkatkan.

**Gunakan kembali peran di seluruh kumpulan identitas**  
Untuk menggunakan kembali peran di seluruh kolam identitas, karena mereka berbagi serangkaian izin umum, Anda dapat menyertakan beberapa kolam identitas, seperti ini:

```
"StringEquals": {
    "cognito-identity.amazonaws.com:aud": [
        "us-east-1:12345678-abcd-abcd-abcd-123456790ab",
        "us-east-1:98765432-dcba-dcba-dcba-123456790ab"
    ]
}
```

**Batasi akses ke identitas tertentu**  
Untuk membuat kebijakan terbatas pada serangkaian pengguna aplikasi tertentu, periksa nilai `cognito-identity.amazonaws.com:sub`:

```
"StringEquals": {
    "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab",
    "cognito-identity.amazonaws.com:sub": [
        "us-east-1:12345678-1234-1234-1234-123456790ab",
        "us-east-1:98765432-1234-1234-1243-123456790ab"
    ]
}
```

**Batasi akses ke penyedia tertentu**  
Untuk membuat kebijakan terbatas untuk pengguna yang telah login dengan penyedia tertentu (mungkin penyedia login Anda sendiri), periksa nilai `cognito-identity.amazonaws.com:amr`:

```
"ForAnyValue:StringLike": {
    "cognito-identity.amazonaws.com:amr": "login.myprovider.myapp"
}
```

Sebagai contoh, sebuah aplikasi yang hanya mempercayai Facebook akan memiliki klausa amr berikut:

```
"ForAnyValue:StringLike": {
    "cognito-identity.amazonaws.com:amr": "graph.facebook.com"
}
```

## Kebijakan akses
<a name="access-policies"></a>

Izin yang Anda lampirkan ke peran berlaku untuk semua pengguna yang mengambil peran tersebut. Untuk mempartisi akses pengguna Anda, gunakan kondisi kebijakan dan variabel. Untuk informasi selengkapnya, lihat [elemen kebijakan IAM: Variabel dan tag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). Anda dapat menggunakan `sub` kondisi untuk membatasi tindakan ke IDs identitas Amazon Cognito dalam kebijakan akses Anda. Gunakan opsi ini dengan hati-hati, terutama untuk identitas yang tidak diautentikasi, yang tidak memiliki ID pengguna yang konsisten. *Untuk informasi selengkapnya tentang variabel kebijakan IAM untuk federasi web dengan Amazon Cognito, [lihat IAM AWS STS dan kunci konteks kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-wif) di AWS Identity and Access Management Panduan Pengguna.*

[Untuk perlindungan keamanan tambahan, Amazon Cognito menerapkan kebijakan penurunan cakupan ke kredensional yang Anda tetapkan kepada pengguna yang tidak diautentikasi dalam alur yang disempurnakan, gunakan.](https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html) `GetCredentialsForIdentity` Kebijakan cakupan bawah menambahkan [Kebijakan sesi inline](#access-policies-inline-policy) dan ke kebijakan IAM yang Anda [AWS kebijakan sesi terkelola](#access-policies-managed-policy) terapkan pada peran Anda yang tidak diautentikasi. Karena Anda harus memberikan akses baik dalam kebijakan IAM untuk peran Anda dan kebijakan sesi, kebijakan cakupan bawah membatasi akses pengguna ke layanan selain yang ada dalam daftar berikut.

**catatan**  
Dalam alur dasar (klasik), Anda membuat permintaan [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API sendiri, dan dapat menerapkan batasan ini pada permintaan. Sebagai praktik keamanan terbaik, jangan tetapkan izin apa pun di atas kebijakan cakupan bawah ini kepada pengguna yang tidak diautentikasi.

Amazon Cognito juga mencegah pengguna yang diautentikasi dan tidak diautentikasi membuat permintaan API ke kumpulan identitas Amazon Cognito dan Sinkronisasi Amazon Cognito. Lain Layanan AWS mungkin menempatkan pembatasan akses layanan dari identitas web.

Dalam permintaan yang berhasil dengan alur yang disempurnakan, Amazon Cognito membuat permintaan `AssumeRoleWithWebIdentity` API di latar belakang. Di antara parameter dalam permintaan ini, Amazon Cognito menyertakan yang berikut ini.

1. ID identitas pengguna Anda.

1. ARN dari peran IAM yang ingin diasumsikan oleh pengguna Anda.

1. `policy`Parameter yang menambahkan *kebijakan sesi inline*.

1. `PolicyArns.member.N`Parameter yang nilainya adalah *kebijakan AWS terkelola* yang memberikan izin tambahan di Amazon. CloudWatch

### Layanan yang dapat diakses oleh pengguna yang tidak diautentikasi
<a name="access-policies-scope-down-services"></a>

Saat Anda menggunakan alur yang disempurnakan, kebijakan penurun cakupan yang diterapkan Amazon Cognito pada sesi pengguna mencegah mereka menggunakan layanan apa pun selain yang tercantum dalam tabel berikut. Untuk subset layanan, hanya tindakan spesifik yang diizinkan.


| Kategori | Layanan | 
| --- | --- | 
|  Analitik  |  Amazon Data Firehose Layanan Terkelola Amazon untuk Apache Flink  | 
|  Integrasi Aplikasi  |  Amazon Simple Queue Service  | 
| AR & VR |  Amazon Sumeria¹  | 
| Aplikasi Bisnis |  Amazon Mobile Analytics Layanan Email Sederhana Amazon  | 
| Hitung |  AWS Lambda  | 
| Kriptografi & PKI |  AWS Key Management Service¹  | 
| Basis Data |  Amazon DynamoDB Amazon SimpleDB  | 
| Web & Seluler Front-end |  AWS AppSync Amazon Location Service Layanan Notifikasi Sederhana Amazon Amazon Pinpoint Amazon Location Service  | 
| Pengembangan Game |   GameLift Peladen Amazon  | 
| Internet of Things (IoT) |  AWS IoT  | 
| Machine Learning |  Amazon CodeWhisperer Amazon Comprehend Amazon Lex Amazon Machine Learning Amazon Personalize Amazon Polly Amazon Rekognition Amazon SageMaker AI¹ Amazon Textract¹ Amazon Transcribe Amazon Translate  | 
| Manajemen & Tata Kelola |  Amazon CloudWatch  CloudWatch Log Amazon  | 
| Jaringan & Pengiriman Konten |  Amazon API Gateway  | 
| Keamanan, Identitas, & Kepatuhan |  Kumpulan pengguna Amazon Cognito  | 
| Penyimpanan |  Amazon Simple Storage Service  | 

¹ Layanan AWS Untuk tabel berikut, kebijakan inline memberikan subset tindakan. Tabel menampilkan tindakan yang tersedia di masing-masing.


| Layanan AWS | Izin maksimum untuk pengguna aliran yang disempurnakan yang tidak diautentikasi | 
| --- | --- | 
| AWS Key Management Service |  `Encrypt` `Decrypt` `ReEncryptTo` `ReEncryptFrom` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext`  | 
| Amazon SageMaker AI |  `InvokeEndpoint`  | 
| Amazon Textract |  `DetectDocumentText` `AnalyzeDocument`  | 
| Amazon Sumerian |  `View*`  | 
| Amazon Location Service |  `SearchPlaceIndex*` `GetPlace` `CalculateRoute*` `*Geofence` `*Geofences` `*DevicePosition*`  | 

Untuk memberikan akses ke Layanan AWS luar daftar ini, aktifkan **alur otentikasi dasar (klasik)** di kumpulan identitas Anda. Jika pengguna Anda melihat `NotAuthorizedException` kesalahan Layanan AWS yang diizinkan oleh kebijakan yang ditetapkan ke peran IAM untuk pengguna yang tidak diautentikasi, evaluasi apakah Anda dapat menghapus layanan tersebut dari kasus penggunaan Anda. Jika Anda tidak bisa, beralihlah ke aliran dasar.

### Kebijakan sesi inline untuk pengguna tamu
<a name="access-policies-inline-policy"></a>

Amazon Cognito pertama-tama menerapkan kebijakan sebaris dalam permintaan kredensional IAM. Kebijakan sesi inline membatasi izin efektif pengguna Anda untuk menyertakan akses ke Layanan AWS bagian luar yang ada dalam daftar berikut. Anda juga harus memberikan izin untuk ini Layanan AWS dalam kebijakan yang Anda terapkan pada peran IAM pengguna. Izin efektif pengguna untuk sesi peran yang diasumsikan adalah persimpangan kebijakan yang ditetapkan untuk peran mereka, dan kebijakan sesi mereka. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) di *Panduan AWS Identity and Access Management Pengguna*.

Amazon Cognito menambahkan kebijakan sebaris berikut ke sesi untuk pengguna Anda Wilayah AWS yang diaktifkan secara default. Untuk gambaran umum tentang efek bersih dari kebijakan inline dan kebijakan sesi lainnya, lihat[Layanan yang dapat diakses oleh pengguna yang tidak diautentikasi](#access-policies-scope-down-services).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:*",
                "logs:*",
                "dynamodb:*",
                "kinesis:*",
                "mobileanalytics:*",
                "s3:*",
                "ses:*",
                "sns:*",
                "sqs:*",
                "lambda:*",
                "machinelearning:*",
                "execute-api:*",
                "iot:*",
                "gamelift:*",
                "cognito-identity:*",
                "cognito-idp:*",
                "lex:*",
                "polly:*",
                "comprehend:*",
                "translate:*",
                "transcribe:*",
                "rekognition:*",
                "mobiletargeting:*",
                "firehose:*",
                "appsync:*",
                "personalize:*",
                "sagemaker:InvokeEndpoint",
                "cognito-sync:*",
                "codewhisperer:*",
                "textract:DetectDocumentText",
                "textract:AnalyzeDocument",
                "sdb:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

Untuk semua Wilayah lainnya, kebijakan inline scope-down mencakup semua yang tercantum di Wilayah default kecuali untuk pernyataan berikut. `Action`

```
                "cognito-sync:*",
                "sumerian:View*",
                "codewhisperer:*",
                "textract:DetectDocumentText",
                "textract:AnalyzeDocument",
                "sdb:*"
```

### Kebijakan sesi AWS terkelola untuk tamu
<a name="access-policies-managed-policy"></a>

Amazon Cognito juga menerapkan kebijakan AWS terkelola sebagai kebijakan sesi untuk sesi peningkatan aliran tamu yang tidak diautentikasi. Kebijakan ini membatasi cakupan izin pengguna yang tidak diautentikasi dengan kebijakan tersebut. `AmazonCognitoUnAuthedIdentitiesSessionPolicy`

Anda juga harus memberikan izin ini dalam kebijakan yang Anda lampirkan ke peran IAM Anda yang tidak diautentikasi. Izin efektif pengguna untuk sesi peran yang diasumsikan adalah persimpangan kebijakan IAM yang ditetapkan untuk peran mereka, dan kebijakan sesi mereka. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) di *Panduan AWS Identity and Access Management Pengguna*.

Untuk gambaran umum tentang efek bersih dari kebijakan AWS terkelola ini dan kebijakan sesi lainnya, lihat[Layanan yang dapat diakses oleh pengguna yang tidak diautentikasi](#access-policies-scope-down-services).

Kebijakan `AmazonCognitoUnAuthedIdentitiesSessionPolicy` terkelola memiliki izin berikut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "rum:PutRumEvents",
            "polly:*",
            "comprehend:*",
            "translate:*",
            "transcribe:*",
            "rekognition:*",
            "mobiletargeting:*",
            "firehose:*",
            "personalize:*",
            "sagemaker:InvokeEndpoint",
            "geo:GetMap*",
            "geo:SearchPlaceIndex*",
            "geo:GetPlace",
            "geo:CalculateRoute*",
            "geo:*Geofence",
            "geo:*Geofences",
            "geo:*DevicePosition*",
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncryptTo",
            "kms:ReEncryptFrom",
            "kms:GenerateDataKey",
            "kms:GenerateDataKeyPair",
            "kms:GenerateDataKeyPairWithoutPlaintext",
            "kms:GenerateDataKeyWithoutPlaintext"
        ],
        "Resource": "*"
    }]
}
```

------

### Contoh kebijakan akses
<a name="access-policy-examples"></a>

Di bagian ini, Anda dapat menemukan contoh kebijakan akses Amazon Cognito yang memberi pengguna izin minimum yang diperlukan untuk melakukan operasi tertentu. Anda dapat lebih membatasi izin untuk ID identitas yang diberikan dengan menggunakan variabel kebijakan jika memungkinkan. Misalnya, menggunakan \$\{cognito-identity.amazonaws.com:sub\}. Untuk informasi selengkapnya, lihat: [Memahami Autentikasi Amazon Cognito Bagian 3: Peran dan Kebijakan](https://aws.amazon.com/blogs/mobile/understanding-amazon-cognito-authentication-part-3-roles-and-policies/) pada *Blog Seluler AWS *.

**catatan**  
Sebagai praktik terbaik keamanan, kebijakan harus menyertakan hanya izin yang diperlukan pengguna untuk melakukan tugas-tugas mereka. Ini berarti bahwa Anda harus mencoba untuk selalu menjangkau akses ke identitas individu untuk objek bila memungkinkan.

**Berikan akses baca identitas ke satu objek di Amazon S3**  
Kebijakan akses berikut memberikan izin baca ke identitas untuk mengambil objek tunggal dari bucket S3 yang diberikan.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::{{amzn-s3-demo-bucket}}/assets/my_picture.jpg"]
    }
  ]
}
```

------

**Berikan identitas akses baca dan tulis ke jalur khusus identitas di Amazon S3**  
Kebijakan akses berikut memberikan izin baca dan tulis untuk mengakses “folder” prefiks tertentu di bucket S3 dengan memetakan awalan ke variabel `${cognito-identity.amazonaws.com:sub}`.

Dengan kebijakan ini, identitas seperti yang `us-east-1:12345678-1234-1234-1234-123456790ab` disisipkan via `${cognito-identity.amazonaws.com:sub}` bisa mendapatkan, menempatkan, dan mencantumkan objek ke dalamnya`arn:aws:s3:::amzn-s3-demo-bucket/us-east-1:12345678-1234-1234-1234-123456790ab`. Namun, identitas tidak akan diberikan akses ke objek lain di `arn:aws:s3:::amzn-s3-demo-bucket`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::{{amzn-s3-demo-bucket}}"],
      "Condition": {"StringLike": {"s3:prefix": ["${cognito-identity.amazonaws.com:sub}/*"]}}
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::{{amzn-s3-demo-bucket}}/${cognito-identity.amazonaws.com:sub}/*"]
    }
  ]
}
```

------

Model akses serupa dicapai dengan [Amazon S3 Access](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) Grants.

**Tetapkan identitas akses berbutir halus ke Amazon DynamoDB**  
Kebijakan akses berikut menyediakan kontrol akses berbutir halus ke sumber daya DynamoDB menggunakan variabel lingkungan Amazon Cognito. Variabel ini memberikan akses ke item di DynamoDB dengan ID identitas. Untuk informasi selengkapnya, lihat [Menggunakan Kondisi Kebijakan IAM untuk Kontrol Akses Mendetail](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html) di *Panduan Developer Amazon DynamoDB*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:GetItem",
        "dynamodb:BatchGetItem",
        "dynamodb:Query",
        "dynamodb:PutItem",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteItem",
        "dynamodb:BatchWriteItem"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-west-2:123456789012:table/MyTable"
      ],
      "Condition": {
        "ForAllValues:StringEquals": {
          "dynamodb:LeadingKeys":  ["${cognito-identity.amazonaws.com:sub}"]
        }
      }
    }
  ]
}
```

------

**Berikan izin identitas untuk menjalankan fungsi Lambda**  
Kebijakan akses berikut memberikan izin identitas untuk menjalankan fungsi Lambda.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
         { 
             "Effect": "Allow",
             "Action": "lambda:InvokeFunction",
             "Resource": [
                 "arn:aws:lambda:us-west-2:123456789012:function:MyFunction"
             ]
         }
     ]
 }
```

------

**Berikan izin identitas untuk mempublikasikan catatan ke Kinesis Data Streams**  
Kebijakan akses berikut mengizinkan identitas untuk menggunakan operasi `PutRecord` dengan salah satu Kinesis Data Streams. Hal ini dapat diterapkan pada pengguna yang perlu menambahkan catatan data ke semua aliran di akun. Untuk informasi lebih lanjut, lihat [Mengontrol Akses ke Sumber Daya Amazon Kinesis Data Streams Menggunakan IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html) di *Panduan Developer Amazon Kinesis Data Streams*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesis:PutRecord",
            "Resource": [
                "arn:aws:kinesis:us-east-1:111122223333:stream/stream1"
            ]
        }
    ]
}
```

------

**Berikan akses identitas ke data mereka di toko Amazon Cognito Sync**  
Kebijakan akses berikut memberikan izin identitas untuk hanya mengakses data mereka sendiri di toko Sinkronisasi Amazon Cognito.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[{
      "Effect":"Allow",
      "Action":"cognito-sync:*",
      "Resource":["arn:aws:cognito-sync:us-east-1:123456789012:identitypool/${cognito-identity.amazonaws.com:aud}/identity/${cognito-identity.amazonaws.com:sub}/*"]
      }]
  }
```

------

## Kepercayaan peran dan izin
<a name="role-trust-and-permissions"></a>

Cara peran ini berbeda adalah dalam hubungan kepercayaan mereka. Berikut ini adalah contoh kebijakan kepercayaan untuk peran yang tidak diautentikasi:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-corner-cafe-123456790ab"
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "unauthenticated"
        }
      }
    }
  ]
}
```

------

Kebijakan ini memberikan izin kepada pengguna federasi dari `cognito-identity.amazonaws.com` (penerbit token OpenID Connect) untuk mengambil peran ini. Selain itu, kebijakan membatasi `aud` pada token, dalam hal ini ID kolam identitas, untuk mencocokkan kolam identitas tersebut. Terakhir, kebijakan menetapkan bahwa salah satu anggota array dari `amr` klaim multi-nilai token yang dikeluarkan oleh operasi Amazon `GetOpenIdToken` Cognito API memiliki nilai. `unauthenticated`

Saat Amazon Cognito membuat token, ia menetapkan token sebagai salah satu atau`unauthenticated`. `amr` `authenticated` Jika `amr` ya`authenticated`, token mencakup penyedia apa pun yang digunakan selama otentikasi. Ini berarti Anda dapat membuat peran yang hanya mempercayai pengguna yang masuk melalui Facebook dengan mengubah `amr` kondisi seperti yang ditunjukkan:

```
"ForAnyValue:StringLike": {
  "cognito-identity.amazonaws.com:amr": "graph.facebook.com"
}
```

Berhati-hatilah saat mengubah hubungan kepercayaan Anda pada peran Anda, atau saat mencoba menggunakan peran di seluruh kolam identitas. Jika Anda tidak mengonfigurasi peran Anda dengan benar untuk mempercayai kumpulan identitas Anda, pengecualian dari hasil STS, seperti berikut ini:

```
AccessDenied -- Not authorized to perform sts:AssumeRoleWithWebIdentity
```

Jika Anda melihat pesan ini, periksa apakah kumpulan identitas dan jenis otentikasi Anda memiliki peran yang sesuai.