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
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" } }