Menggunakan JSON Web Token (JWT) dengan rahasia bersama - Amazon Kendra

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

Menggunakan JSON Web Token (JWT) dengan rahasia bersama

Contoh berikut menunjukkan cara menggunakan JSON Web Token (JWT) dengan token rahasia bersama untuk kontrol akses pengguna saat Anda membuat indeks.

Console
  1. Pilih Buat indeks untuk mulai membuat indeks baru.

  2. Pada Tentukan detail indeks, beri indeks Anda nama dan deskripsi.

  3. Untuk IAM role, pilih peran atau pilih Buat peran baru dan tentukan nama peran untuk membuat peran baru. IAM Peran akan memiliki awalan "AmazonKendra-”.

  4. Biarkan bidang lain dengan defaultnya. Pilih Berikutnya.

  5. Di halaman Konfigurasikan kontrol akses pengguna, di bawah Pengaturan kontrol akses, pilih Ya untuk menggunakan token untuk kontrol akses.

  6. Di bawah Konfigurasi token, pilih JWT dengan rahasia bersama sebagai Jenis token.

  7. Di bawah Parameter untuk menandatangani rahasia bersama, pilih Jenis rahasia. Anda dapat menggunakan rahasia bersama AWS Secrets Manager atau membuat rahasia bersama baru.

    Untuk membuat rahasia bersama baru, pilih Baru, lalu ikuti langkah-langkah ini:

    1. Di bawah AWS Secrets Manager Rahasia baru, tentukan nama Rahasia. Awalan AmazonKendra- akan ditambahkan saat Anda menyimpan kunci publik.

    2. Tentukan ID kunci. Kunci tersebut adalah petunjuk yang menunjukkan kunci yang digunakan untuk mengamankan tanda tangan web JSON (JWS) token.

    3. Pilih Algoritme penandatanganan untuk token. Ini adalah algoritme kriptografi yang digunakan untuk mengamankan token ID. Untuk informasi selengkapnya tentang RSA, lihat Kriptografi RSA.

    4. Tentukan rahasia Bersama dengan memasukkan rahasia yang dikodekan URL base64. Anda juga dapat memilih Hasilkan rahasia untuk membuat rahasia untuk Anda. Anda harus memastikan rahasianya adalah rahasia yang dikodekan URL base64.

    5. (Opsional) Tentukan kapan rahasia bersama valid. Anda dapat menentukan tanggal dan waktu berlaku atau berakhirnya rahasia, atau keduanya. Rahasia akan berlaku dalam interval yang ditentukan.

    6. Pilih Simpan rahasia untuk menyimpan rahasia baru.

  8. (Opsional) Di bawah Konfigurasi lanjutan:

    1. Tentukan Nama pengguna untuk digunakan dalam pemeriksaan ACL.

    2. Tentukan satu atau lebih Grup untuk digunakan dalam pemeriksaan ACL.

    3. Tentukan Penerbit yang akan memvalidasi penerbit token.

    4. Tentukan ID Klaim. Anda harus menentukan ekspresi reguler yang cocok dengan audiens di JWT.

  9. Di halaman Detail penyediaan, pilih Edisi Developer.

  10. Pilih Buat untuk membuat indeks Anda.

  11. Tunggu indeks Anda dibuat. Amazon Kendra menyediakan perangkat keras untuk indeks Anda. Operasi ini dapat memakan waktu lama.

CLI

Anda dapat menggunakan token JWT dengan rahasia bersama di dalamnya. AWS Secrets Manager Rahasianya harus berupa rahasia yang dikodekan URL base64. Anda memerlukan Secrets Manager ARN, dan Amazon Kendra peran Anda harus memiliki akses ke sumber GetSecretValue daya. Secrets Manager Jika Anda mengenkripsi Secrets Manager sumber daya dengan AWS KMS, peran juga harus memiliki akses ke tindakan dekripsi.

Untuk membuat indeks dengan AWS CLI menggunakan file input JSON, pertama buat file JSON dengan parameter yang Anda inginkan:

{ "Name": "user-context", "Edition": "ENTERPRISE_EDITION", "RoleArn": "arn:aws:iam::account-id:role:/my-role", "UserTokenConfigurations": [ { "JwtTokenTypeConfiguration": { "KeyLocation": "SECRET_MANAGER", "Issuer": "optional: specify the issuer url", "ClaimRegex": "optional: regex to validate claims in the token", "UserNameAttributeField": "optional: user", "GroupAttributeField": "optional: group", "SecretManagerArn": "arn:aws:secretsmanager:us-west-2:account id:secret:/my-user-context-secret } } ], "UserContextPolicy": "USER_TOKEN" }

Anda dapat mengganti nama bidang pengguna dan grup default. Nilai default untuk UserNameAttributeField adalah "user". Nilai default untuk GroupAttributeField adalah "groups".

Selanjutnya, panggil create-index menggunakan file input. Misalnya, jika nama file JSON Anda adalah create-index-openid.json, Anda dapat menggunakan yang berikut ini:

aws kendra create-index --cli-input-json file://create-index-openid.json

Rahasianya harus memiliki format berikut di AWS Secrets Manager:

{ "keys": [ { "kid": "key_id", "alg": "HS256|HS384|HS512", "kty": "OCT", "use": "sig", //this value can be sig only for now "k": "secret", "nbf":"ISO1806 date format" "exp":"ISO1806 date format" } ] }

Untuk informasi selengkapnya tentang JWT, lihat jwt.io.

Python

Anda dapat menggunakan token JWT dengan rahasia bersama di dalamnya. AWS Secrets Manager Rahasianya harus berupa rahasia yang dikodekan URL base64. Anda memerlukan Secrets Manager ARN, dan Amazon Kendra peran Anda harus memiliki akses ke sumber GetSecretValue daya. Secrets Manager Jika Anda mengenkripsi Secrets Manager sumber daya dengan AWS KMS, peran juga harus memiliki akses ke tindakan dekripsi.

response = kendra.create_index( Name='user-context', Edition='ENTERPRISE_EDITION', RoleArn='arn:aws:iam::account-id:role:/my-role', UserTokenConfigurations=[ { "JwtTokenTypeConfiguration": { "KeyLocation": "URL", "Issuer": "optional: specify the issuer url", "ClaimRegex": "optional: regex to validate claims in the token", "UserNameAttributeField": "optional: user", "GroupAttributeField": "optional: group", "SecretManagerArn": "arn:aws:secretsmanager:us-west-2:account id:secret:/my-user-context-secret" } } ], UserContextPolicy='USER_TOKEN' )