View a markdown version of this page

Perlindungan data di Amazon Cognito - Amazon Cognito

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

Perlindungan data di Amazon Cognito

Model tanggung jawab AWS bersama model tanggung jawab berlaku untuk perlindungan data di Amazon Cognito (Amazon Cognito). Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Konten ini mencakup konfigurasi keamanan dan tugas manajemen untuk AWS layanan yang Anda gunakan. Untuk informasi selengkapnya tentang privasi data, silakan lihat Pertanyaan Umum Privasi Data.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi kreden AWS SIAL akun dan mengatur akun pengguna individu dengan AWS Identity and Access Management (IAM). Dengan cara ini, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugas mereka. Kami juga merekomendasikan agar Anda mengamankan data Anda dengan cara-cara berikut ini:

  • Gunakan autentikasi multi-faktor (MFA) pada setiap akun.

  • Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya.

  • Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail.

  • Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default dalam AWS layanan.

  • Gunakan layanan keamanan terkelola lanjutan seperti Amazon Macie, yang membantu menemukan dan mengamankan data pribadi yang disimpan di Amazon S3.

Sebaiknya jangan pernah memasukkan informasi identitas yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam bidang isian bebas seperti bidang Nama. Ini termasuk saat Anda bekerja dengan Amazon Cognito atau AWS layanan lain menggunakan konsol, API AWS CLI, atau AWS SDK. Setiap data yang Anda masukkan ke dalam Amazon Cognito atau layanan lain mungkin akan diambil untuk disertakan dalam log diagnostik. Saat Anda memberikan URL ke server eksternal, jangan menyertakan informasi kredensial dalam URL untuk memvalidasi permintaan Anda ke server tersebut.

Enkripsi data

Enkripsi data biasanya terbagi dalam dua kategori: enkripsi saat diam dan enkripsi dalam transit.

Enkripsi saat diam

Data dalam kumpulan pengguna dan kumpulan identitas Amazon Cognito dienkripsi saat diam sesuai dengan standar industri.

  • Amazon Cognito mengenkripsi data pelanggan di kumpulan identitas dengan kunci yang AWS dimiliki. Anda tidak dapat mengubah perilaku ini.

  • Secara default, Amazon Cognito juga mengenkripsi data pelanggan di kumpulan pengguna dengan kunci yang AWS dimiliki. Anda juga dapat mengonfigurasi kumpulan pengguna untuk mengenkripsi informasi pelanggan Anda dengan kunci yang dikelola pelanggan.

AWS kunci yang dimiliki

Amazon Cognito mengenkripsi data di kumpulan pengguna atau kumpulan identitas Anda dengan kunci KMS yang AWS dimiliki. Tombol jenis ini tidak terlihat di AWS KMS.

Kunci yang dikelola pelanggan

Amazon Cognito mengenkripsi data di kumpulan pengguna Anda dengan kunci yang dikelola pelanggan. Anda memiliki administrasi kebijakan kunci yang dikelola pelanggan, rotasi, dan penghapusan terjadwal.

catatan

Enkripsi dengan kunci yang dikelola pelanggan mungkin tidak tersedia di beberapa kumpulan pengguna. Newly-created kumpulan pengguna selalu memiliki bentuk enkripsi yang tersedia bagi mereka.

Hal yang perlu diketahui tentang enkripsi kumpulan pengguna dengan kunci yang dikelola pelanggan
  1. Semua data pelanggan di kumpulan pengguna dienkripsi saat diam, bahkan jika Anda tidak mengambil tindakan untuk mengonfigurasi pengaturan enkripsi.

  2. Amazon Cognito hanya mendukung kunci KMS simetris yang Wilayah AWS sama dengan kumpulan pengguna Anda untuk enkripsi kumpulan pengguna saat diam. Anda tidak dapat mengonfigurasi enkripsi kumpulan pengguna saat diam dengan kunci asimetris. Anda dapat mengonfigurasi enkripsi saat diam dengan kunci wilayah tunggal dan dengan kunci Multi-wilayah yang berada di Wilayah yang sama dengan kumpulan pengguna Anda.

  3. Anda dapat mengonfigurasi enkripsi kumpulan pengguna hanya dengan kunci KMS ARN, bukan alias.

Enkripsi PII

Amazon Cognito mendukung kerahasiaan, integritas, dan ketersediaan informasi identitas pribadi (PII) dalam pencarian atribut pengguna dengan enkripsi yang dapat dicari. Fungsi Kode Hash-based Otentikasi Pesan (HMAC) ini, dioptimalkan kinerja untuk kumpulan data kumpulan pengguna, memetakan antara plaintext dan nilai terenkripsi dari atribut pengguna. Amazon Cognito menghitung nilai HMAC dengan kunci KMS yang mengenkripsi kumpulan pengguna Anda. Perlindungan ini berlaku untuk atribut berikut:

  • sub

  • email

  • phone_number

  • given_name

  • family_name

  • name

  • username

  • preferred_username

  • cognito:user_status

Prosedur berikut mengkonfigurasi enkripsi saat diam di kumpulan pengguna Anda. Untuk informasi selengkapnya tentang kebijakan kunci KMS yang mendelegasikan akses ke Amazon Cognito Layanan AWS seperti, lihat Izin untuk Amazon Cognito di kebijakan utama.

Set customer managed key policy

Untuk menggunakan kunci yang dikelola pelanggan, kunci Anda harus mempercayai prinsipal layanan Amazon Cognito untuk melakukan operasi enkripsi dan dekripsi pada kunci tersebut. Konfigurasikan kebijakan https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html kunci kunci kunci KMS Anda seperti yang ditunjukkan pada contoh berikut. Prinsipal IAM yang menulis kebijakan ini harus memiliki akses tulis ke kunci KMS Anda, dengan kms:PutKeyPolicy izin.

{ "Id": "cognito-cmk-policy", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Amazon Cognito service access", "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.amazonaws.com", "identitystore.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKeyWithoutPlainText" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" ] }, "StringEquals": { "aws:SourceAccount": [ "111122223333" ] }, "StringLike": { "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" } } }, { "Sid": "Allow Amazon Cognito service DescribeKey access", "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.amazonaws.com", "identitystore.amazonaws.com" ] }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" ] }, "StringEquals": { "aws:SourceAccount": [ "111122223333" ] } } }, { "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "cognito-idp.us-east-1.amazonaws.com" ] } } }, { "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKeyWithoutPlainText" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "cognito-idp.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" } } }, { "Sid": "Allow administrators to manage the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }
Set customer managed key policy with permissions for encryption of exported logs

Terapkan kebijakan ini ke kunci KMS Anda jika ekspor log dikonfigurasi. Kebijakan ini mengizinkan Amazon Cognito mengenkripsi log saat mengekspornya, dan layanan perantara untuk mendekripsi log sebelum menuliskannya ke grup CloudWatch log Log Anda. Konfigurasikan kebijakan https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html kunci kunci kunci KMS Anda seperti yang ditunjukkan pada contoh berikut. Prinsipal IAM yang menulis kebijakan ini harus memiliki akses tulis ke kunci KMS Anda, dengan kms:PutKeyPolicy izin.

{ "Id": "cognito-cmk-policy", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Amazon Cognito service access", "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.amazonaws.com", "identitystore.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKeyWithoutPlainText" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" ] }, "StringEquals": { "aws:SourceAccount": [ "111122223333" ] }, "StringLike": { "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" } } }, { "Sid": "Allow Amazon Cognito service DescribeKey access", "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.amazonaws.com", "identitystore.amazonaws.com" ] }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" ] }, "StringEquals": { "aws:SourceAccount": [ "111122223333" ] } } }, { "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "cognito-idp.us-east-1.amazonaws.com" ] } } }, { "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKeyWithoutPlainText" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "cognito-idp.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" } } }, { "Sid": "Allow Amazon Cognito service log delivery access", "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:111122223333:*" } } }, { "Sid": "Allow IngestionHub service log delivery access", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:111122223333:*" } } }, { "Sid": "Allow administrators to manage the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }
Configure encryption at rest in the console
Untuk mengkonfigurasi enkripsi saat diam di kumpulan pengguna
  1. Masuk ke Konsol Amazon Cognito. Anda mungkin diminta untuk kredensial AWS Anda.

  2. Pilih Kumpulan Pengguna.

  3. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  4. Pilih menu Pengaturan dan arahkan ke tab Keamanan kumpulan pengguna. Cari Enkripsi saat istirahat dan pilih Edit.

  5. Di bawah Jenis kunci, pilih kunci yang AWS dimiliki atau Kunci yang dikelola pelanggan.

    1. Jika Anda memilih kunci yang AWS dimiliki, tidak diperlukan konfigurasi tambahan.

    2. Jika Anda memilih Kunci yang dikelola pelanggan, masukkan ARN kunci KMS ke dalam kunci yang dikelola pelanggan AR N. Anda juga dapat memilih Buat AWS KMS kunci dan buka jendela baru di AWS KMS konsol untuk membuat kunci KMS baru.

  6. Pilih Simpan perubahan.

Configure encryption at rest with the API

Tetapkan konfigurasi kunci Anda dalam permintaan CreateUserPool atau UpdateUserPool API. Isi permintaan sebagian contoh berikut menetapkan kumpulan pengguna untuk menggunakan kunci yang dikelola pelanggan yang disediakan. Untuk permintaan contoh lengkap, lihat Contoh.

"KeyConfiguration": { "KeyType": "CUSTOMER_MANAGED_KEY", "KmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" },

Contoh sebagian badan permintaan berikut menetapkan kumpulan pengguna untuk menggunakan kunci yang AWS dimiliki.

"KeyConfiguration": { "KeyType": "AWS_OWNED_KEY" },

Jika DescribeUserPool respons Anda tidak menyertakan KeyConfiguration parameter, kumpulan pengguna Anda dikonfigurasi untuk mengenkripsi data diam dengan kunci yang AWS dimiliki.

Enkripsi saat bergerak

Sebagai layanan terkelola, Amazon Cognito dilindungi oleh keamanan jaringan AWS global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat AWS Keamanan Cloud. Untuk merancang AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat Perlindungan Infra struktur di Security Pillar AWS Well‐Architected Framework.

Anda menggunakan panggilan API yang di AWS publikasikan untuk mengakses Amazon Cognito melalui jaringan. Klien harus mendukung hal-hal berikut:

  • Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.

  • Suite Cipher dengan kerahasiaan maju sempurna (PFS) seperti DHE (Ephemeral) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Diffie-Hellman Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Kumpulan pengguna dan kumpulan identitas Amazon Cognito memiliki operasi API IAM-authenticated yang tidak diautentikasi, dan diberi otorisasi token. Beberapa adalah operasi tipe bidang kontrol untuk operasi administratif seperti mengonfigurasi domain kumpulan pengguna, dan yang lainnya adalah operasi tipe bidang data untuk otentikasi. Untuk informasi selengkapnya, lihat Daftar operasi API dikelompokkan berdasarkan model otorisasi. Semua kelas operasi Amazon Cognito API berbagi namespace — cognito-idp untuk kumpulan pengguna, cognito-identity untuk kumpulan identitas — dan titik akhir layanan. AWS titik akhir layanan memerlukan enkripsi dalam transit dengan versi TLS minimum 1.2.

Pengguna Amazon Cognito mengumpulkan login terkelola host dan UI yang dihosting klasik pada domain web yang dilayani dari distribusi Amazon milik layanan. CloudFront Amazon Cognito mengelola pengaturan untuk enkripsi dalam transit pada distribusi tersebut. Untuk informasi selengkapnya tentang pengaturan enkripsi untuk login terkelola, lihat versi TLS di bagian login terkelola.