Memahami klaim token - AWS Identity and Access Management

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

Memahami klaim token

Saat Anda memanggil GetWebIdentityTokenAPI, AWS Security Token Service mengembalikan Token Web JSON (JWT) yang ditandatangani yang berisi serangkaian klaim yang mewakili identitas prinsipal IAM. Token ini sesuai dengan RFC 7519. Memahami struktur dan isi token ini membantu Anda menerapkan alur otentikasi yang aman, mengonfigurasi validasi klaim yang sesuai di layanan eksternal, dan secara efektif menggunakan klaim khusus untuk kontrol akses berbutir halus.

JWT mencakup klaim OpenID Connect (OIDC) standar seperti subjek (“sub”), audiens (“aud”), penerbit (“iss”) untuk memfasilitasi interoperabilitas di berbagai layanan eksternal. AWS STS mengisi token dengan klaim AWS khusus identitas (seperti ID AWS Akun dan tag Utama) dan klaim konteks sesi (seperti EC2 contoh ARNs) bila berlaku. Anda juga dapat menambahkan klaim khusus ke token dengan meneruskannya sebagai tag permintaan ke GetWebIdentityTokenAPI. Klaim AWS khusus identitas, dan klaim konteks sesi dan klaim khusus bersarang di bawah namespace "https://sts.amazonaws.com/” di token.

Lihat contoh token di bawah ini untuk daftar klaim yang termasuk dalam token. Harap dicatat bahwa semua klaim ini mungkin tidak ada dalam token pada saat yang bersamaan.

{ "iss": "https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws", "aud": "https://api.example.com", "sub": "arn:aws:iam::123456789012:role/DataProcessingRole", "iat": 1700000000, "exp": 1700000900, "jti": "xyz123-def456-ghi789-jkl012", "https://sts.amazonaws.com/": { "aws_account": "123456789012", "source_region": "us-east-1", "org_id": "o-abc1234567", "ou_path": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/", "principal_tags": { "environment": "production", "team": "data-engineering", "cost-center": "engineering" }, "lambda_source_function_arn": "arn:aws:lambda:us-east-1:123456789012:function:process-data", "request_tags": { "job-id": "job-2024-001", "priority": "high", "data-classification": "sensitive" } } }

Klaim standar

Klaim OIDC standar yang ada dalam token memfasilitasi interoperabilitas dengan berbagai layanan eksternal. Klaim ini dapat divalidasi menggunakan sebagian besar pustaka JWT.

Klaim Nama Deskripsi Nilai Contoh
iss Penerbit URL penerbit khusus akun Anda. Layanan eksternal memvalidasi klaim ini untuk memastikannya sesuai dengan penerbit tepercaya mereka. https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws
aud Audiens Penerima yang dimaksudkan untuk token yang ditentukan dalam GetWebIdentityTokenpermintaan. https://api.example.com
sub Subjek ARN dari prinsipal IAM yang meminta token. arn:aws:iam: :123456789012: peran/DataProcessingRole
iat Dikeluarkan Pada NumericDate nilai yang mengidentifikasi waktu di mana JWT dikeluarkan. 1700000000
exp Kedaluwarsa NumericDate nilai yang mengidentifikasi waktu kedaluwarsa pada atau setelah itu JWT TIDAK BOLEH diterima untuk diproses. 1700000900
jti JWT ID Pengidentifikasi unik untuk contoh token ini. xyz123-def456-ghi789-jkl012

Klaim khusus

Selain klaim standar OIDC, AWS STS menambahkan klaim tentang identitas dan konteks sesi bila berlaku. Anda juga dapat menambahkan klaim Anda sendiri ke token dengan meneruskannya sebagai tag permintaan. Klaim khusus bersarang di bawah https://sts.amazonaws.com namespace/.

AWS klaim identitas

Klaim ini memberikan informasi terperinci tentang AWS akun Anda, struktur organisasi, dan prinsipal IAM.

Klaim Deskripsi Peta ke Kunci Kondisi Nilai Contoh
aws_akun ID AWS akun Anda aws: PrincipalAccount 123456789012
source_region AWS Wilayah tempat token diminta aws: RequestedRegion us-east-1
org_id ID AWS Organizations Anda (jika akun Anda adalah bagian dari organisasi) aws: PrincipalOrg ID o-abc1234567
ou_path Jalur unit organisasi Anda (jika ada) aws: PrincipalOrgPaths o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/
principal_tag Tag yang dilampirkan pada prinsipal IAM atau sesi peran yang diasumsikan. Ketika token diminta di mana prinsipal IAM yang meminta memiliki tag utama dan tag sesi, tag sesi akan ada di JWT. aws:PrincipalTag/<tag-key> {"environment”: “production”, “team”: “data-engineering”, “cost-center” :"engineering "}

Klaim konteks sesi

Klaim ini memberikan informasi tentang lingkungan komputasi dan sesi tempat permintaan token berasal. AWS AWS STS secara otomatis menyertakan klaim ini bila berlaku berdasarkan konteks sesi kepala sekolah yang meminta.

Klaim Deskripsi Peta ke Kunci Kondisi Nilai Contoh
original_session_exp Ketika kredensyal sesi peran asli akan kedaluwarsa (untuk peran yang diasumsikan) N/A 2024-01-15T 10:00:00 Z
federated_provider Nama penyedia identitas untuk sesi federasi aws: FederatedProvider arn:aws:iam: :111122223333:oidc-provider/your_oidc_provider
identity_store_user_id ID pengguna Pusat Identitas IAM toko identitas: UserId pengguna-abc123def456
identity_store_arn ARN dari toko identitas Pusat Identitas toko identitas: IdentityStoreArn arn:aws:identitystore: :123456789012: identitystore/d-abc1234567
ec2_source_instance_id ARN dari contoh yang meminta EC2 EC2: SourceInstanceArn arn:aws:ec2: us-timur- 1:123456789012: instance/i-abc123def456
ec2_instance_source_vpc ID VPC tempat kredensyal EC2 peran dikirimkan AWS: EC2 InstanceSourceVpc vpc-abc123def456
ec2_instance_source_private_ipv4 IPv4 Alamat pribadi dari EC2 instance AWS: EC2 InstanceSourcePrivate IPv4 10.0.1.25
ec2_role_delivery Versi layanan metadata instans EC2: RoleDelivery 2
source_identity Identitas sumber yang ditetapkan oleh kepala sekolah aws: SourceIdentity admin-pengguna
lambda_source_function_arn ARN dari fungsi Lambda yang memanggil lambda: SourceFunctionArn arn:aws:lambda: us-timur- 1:123456789012: fungsi: fungsi saya
glue_credential_issuing_service AWS Glue service identifier untuk pekerjaan Glue lem: CredentialIssuingService lem.amazonaws.com

Minta tag

Anda dapat menambahkan klaim kustom ke token dengan menentukan tag dalam permintaan GetWebIdentityTokenAPI. Klaim ini muncul di bawah bidang request_tags di token dan memungkinkan Anda untuk meneruskan informasi spesifik yang dapat digunakan layanan eksternal untuk keputusan otorisasi halus. Anda dapat menentukan hingga 50 tag per permintaan.

Contoh permintaan:

response = sts_client.get_web_identity_token( Audience=['https://api.example.com'], SigningAlgorithm='ES384' Tags=[ {'Key': 'team', 'Value': 'data-engineering'}, {'Key': 'cost-center', 'Value': 'analytics'}, {'Key': 'environment', 'Value': 'production'} ] )

Menghasilkan klaim dalam token:

{ "request_tags": { "team": "data-engineering", "cost-center": "analytics", "environment": "production" } }