Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IAMperan
Saat membuat kumpulan identitas, Anda diminta untuk memperbarui IAM peran yang diasumsikan pengguna Anda. IAMperan berfungsi seperti ini: Saat pengguna masuk ke aplikasi Anda, Amazon Cognito akan menghasilkan AWS kredensi sementara untuk pengguna. Kredensi sementara ini dikaitkan dengan peran tertentuIAM. Dengan IAM peran tersebut, Anda dapat menentukan serangkaian izin untuk mengakses AWS sumber daya Anda.
Anda dapat menentukan IAM peran default untuk pengguna yang diautentikasi dan tidak diautentikasi. 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.
Secara default, konsol Amazon Cognito membuat IAM peran yang menyediakan akses ke Amazon Mobile Analytics dan ke Amazon Cognito Sync. Atau, Anda dapat memilih untuk menggunakan IAM peran yang ada.
Ubah IAM peran untuk mengizinkan atau membatasi akses ke layanan lain. Untuk melakukannya, masuk ke IAM Konsol
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 selengkapnya, lihat Memberikan Hak Istimewa Paling Sedikit di Panduan IAM Pengguna.
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.
Siapkan kebijakan kepercayaan
Amazon Cognito menggunakan IAM peran untuk menghasilkan kredensi sementara bagi pengguna aplikasi Anda. Akses ke izin dikendalikan oleh hubungan kepercayaan peran. Pelajari selengkapnya tentang Kepercayaan peran dan izin.
Token yang disajikan AWS STS dihasilkan oleh kumpulan identitas, yang menerjemahkan kumpulan pengguna, sosial, atau token OIDC penyedia, atau SAML pernyataan, ke tokennya sendiri. Token kumpulan identitas berisi aud
klaim yang merupakan ID kumpulan identitas.
Contoh kebijakan kepercayaan peran berikut memungkinkan kepala layanan federasi cognito-identity.amazonaws.com
untuk memanggil. AWS STS API AssumeRoleWithWebIdentity
Permintaan hanya akan berhasil jika token kumpulan identitas dalam API permintaan memiliki klaim berikut.
-
aud
Klaim ID kumpulan identitasus-west-2:abcdefg-1234-5678-910a-0e8443553f95
. -
amr
Klaimauthenticated
tersebut ditambahkan saat pengguna masuk dan bukan pengguna tamu.
{ "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 IAM peran dalam otentikasi Dasar (Klasik)
Anda harus menerapkan setidaknya satu kondisi yang membatasi kebijakan kepercayaan untuk peran yang Anda gunakan dengan kumpulan identitas. Saat Anda membuat atau memperbarui kebijakan kepercayaan peran untuk kumpulan identitas, IAM menampilkan kesalahan jika Anda mencoba menyimpan perubahan tanpa setidaknya satu kunci kondisi yang membatasi identitas sumber. AWS STS tidak mengizinkan AssumeRoleWithWebIdentityoperasi lintas akun dari kumpulan identitas hingga IAM peran yang tidak memiliki kondisi jenis ini.
Topik ini mencakup beberapa kondisi yang membatasi identitas sumber untuk kumpulan identitas. Untuk daftar lengkap, lihat Kunci yang tersedia untuk federasi identitas AWS web.
Dalam otentikasi dasar, atau klasik, dengan kumpulan identitas, Anda dapat mengambil IAM peran apa pun AWS STS jika memiliki kebijakan kepercayaan yang tepat. IAMperan untuk kumpulan identitas Amazon Cognito mempercayai prinsip layanan cognito-identity.amazonaws.com
untuk mengambil peran tersebut. Konfigurasi ini tidak cukup untuk mengamankan IAM peran Anda dari akses yang tidak diinginkan ke sumber daya. Peran jenis ini harus menerapkan kondisi tambahan pada kebijakan kepercayaan peran. Anda tidak dapat membuat atau memodifikasi peran untuk kumpulan identitas tanpa setidaknya satu dari kondisi berikut.
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
atauunauthenticated
(tamu) pengguna. Amazon Cognito menunjukkan status otentikasi dalamamr
klaim di token kumpulan identitas. cognito-identity.amazonaws.com:sub
-
Membatasi peran untuk satu atau lebih pengguna oleh UUID. Ini UUID adalah ID identitas pengguna di kumpulan identitas. Nilai ini bukan
sub
nilai dari penyedia identitas asli pengguna. Amazon Cognito menunjukkan ini UUID dalamsub
klaim di token kumpulan identitas.
Autentikasi aliran yang ditingkatkan mengharuskan IAM peran tersebut Akun AWS sama dengan kumpulan identitas, tetapi ini tidak terjadi dalam otentikasi dasar.
Pertimbangan tambahan berlaku untuk kumpulan identitas Amazon Cognito yang mengambil peran IAM lintas akun. Kebijakan kepercayaan dari peran tersebut harus menerima prinsip cognito-identity.amazonaws.com
layanan dan harus mengandung cognito-identity.amazonaws.com:aud
kondisi spesifik. Untuk mencegah akses yang tidak diinginkan ke AWS sumber daya Anda, kunci aud
kondisi membatasi peran pengguna dari kumpulan identitas dalam nilai kondisi.
Token yang dikeluarkan oleh kumpulan identitas untuk identitas berisi informasi tentang Akun AWS asal kumpulan identitas. Saat Anda menampilkan token kumpulan identitas dalam AssumeRoleWithWebIdentityAPIpermintaan, AWS STS periksa untuk melihat apakah kumpulan identitas asal Akun AWS sama dengan IAM peran. 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.
Ketentuan kebijakan kepercayaan tambahan
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
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 IAM kebijakan: Variabel dan tag. 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 IAM kebijakan untuk federasi web dengan Amazon Cognito, lihat IAMdan AWS STS kondisikan kunci konteks 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. GetCredentialsForIdentity
Kebijakan cakupan bawah menambahkan Kebijakan sesi inline dan ke kebijakan yang Anda terapkan pada AWS kebijakan sesi terkelola IAM peran Anda yang tidak diautentikasi. Karena Anda harus memberikan akses baik dalam IAM kebijakan untuk peran Anda dan kebijakan sesi, kebijakan cakupan bawah membatasi akses pengguna ke layanan selain yang ada dalam daftar berikut.
catatan
Dalam aliran dasar (klasik), Anda membuatnya sendiri AssumeRoleWithWebIdentityAPImeminta, dan dapat menerapkan pembatasan ini untuk 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 ke kumpulan identitas API Amazon Cognito dan Sinkronisasi Amazon Cognito. Lain Layanan AWS mungkin menempatkan pembatasan akses layanan dari identitas web.
Dalam permintaan yang berhasil dengan aliran yang ditingkatkan, Amazon Cognito membuat AssumeRoleWithWebIdentity
API permintaan di latar belakang. Di antara parameter dalam permintaan ini, Amazon Cognito menyertakan yang berikut ini.
-
ID identitas pengguna Anda.
-
ARNIAMPeran yang ingin diasumsikan oleh pengguna Anda.
-
policy
Parameter yang menambahkan kebijakan sesi inline. -
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
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 Amazon Simple Notification Service Amazon Pinpoint Amazon Location Service |
Pengembangan Game |
Amazon GameLift |
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 ¹ Amazon Textract¹ Amazon Transcribe Amazon Translate |
Manajemen & Tata Kelola |
Amazon CloudWatch CloudWatch Log Amazon |
Jaringan & Pengiriman Konten |
APIGerbang Amazon |
Keamanan, Identitas, & Kepatuhan |
Kolam 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 |
|
Amazon SageMaker |
|
Amazon Textract |
|
Amazon Sumerian |
|
Amazon Location Service |
|
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 IAM peran 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
Amazon Cognito pertama-tama menerapkan kebijakan sebaris dalam permintaan kredensil. 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 IAM peran 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 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, lihatLayanan yang dapat diakses oleh pengguna yang tidak diautentikasi.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:*", "logs:*", "dynamodb:*", "kinesis:*", "mobileanalytics:*", "s3:*", "ses:*", "sns:*", "sqs:*", "lambda:*", "machinelearning:*", "execute-api:*", "iot:*", "gamelift:*", "scs:*", "cognito-identity:*", "cognito-idp:*", "lex:*", "polly:*", "comprehend:*", "translate:*", "transcribe:*", "rekognition:*", "mobiletargeting:*", "firehose:*", "appsync:*", "personalize:*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "sagemaker:InvokeEndpoint", "cognito-sync:*", "sumerian:View*", "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
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 Anda yang tidak diautentikasi. IAM Izin efektif pengguna untuk sesi peran yang diasumsikan adalah persimpangan kebijakan yang ditetapkan untuk peran mereka, dan IAM kebijakan sesi mereka. Untuk informasi selengkapnya, lihat Kebijakan sesi di Panduan AWS Identity and Access Management Pengguna.
Untuk gambaran umum tentang efek bersih dari kebijakan AWS terkelola ini dan kebijakan sesi lainnya, lihatLayanan yang dapat diakses oleh pengguna yang tidak diautentikasi.
Kebijakan AmazonCognitoUnAuthedIdentitiesSessionPolicy
terkelola memiliki izin berikut.
{ "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*" ], "Resource": "*" }] }
Contoh kebijakan akses
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
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.
{ "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 dalamnyaarn: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
.
{ "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}/*"] } ] }
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 Ketentuan IAM Kebijakan untuk Kontrol Akses Berbutir Baik di Panduan Pengembang Amazon DynamoDB.
{ "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.
{ "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 selengkapnya, lihat Mengontrol Akses ke IAM Sumber Daya Amazon Kinesis Data Streams Menggunakan dalam Panduan Pengembang Amazon Kinesis Data Streams.
{ "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.
{ "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
Cara peran ini berbeda adalah dalam hubungan kepercayaan mereka. Berikut ini adalah contoh kebijakan kepercayaan untuk peran yang tidak diautentikasi:
{ "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
API Cognito memiliki nilai. unauthenticated
Saat Amazon Cognito membuat token, ia menetapkan token sebagai salah satu atauunauthenticated
. amr
authenticated
Jika amr
yaauthenticated
, 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 dengan benar untuk mempercayai kumpulan identitas Anda, pengecualian dari STS hasil, 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.