Penebangan IAM dan AWS STS APIpanggilan dengan AWS CloudTrail - 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.

Penebangan IAM dan AWS STS APIpanggilan dengan AWS CloudTrail

IAMdan AWS STS terintegrasi dengan AWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh IAM pengguna atau peran. CloudTrail menangkap semua API panggilan untuk IAM dan AWS STS sebagai acara, termasuk panggilan dari konsol dan dari API panggilan. Jika Anda membuat jejak, Anda dapat mengaktifkan pengiriman CloudTrail acara secara terus menerus ke bucket Amazon S3. Jika Anda tidak mengonfigurasi jejak, Anda masih dapat melihat peristiwa terbaru di CloudTrail konsol dalam Riwayat acara. Anda dapat menggunakan CloudTrail untuk mendapatkan informasi tentang permintaan yang dibuat untuk IAM atau AWS STS. Misalnya, Anda dapat melihat alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan.

Untuk mempelajari lebih lanjut tentang CloudTrail, lihat AWS CloudTrail Panduan Pengguna.

IAMdan AWS STS informasi di CloudTrail

CloudTrail diaktifkan pada Akun AWS saat Anda membuat akun. Ketika aktivitas terjadi di IAM atau AWS STS, kegiatan tersebut dicatat dalam suatu CloudTrail peristiwa bersama dengan yang lain AWS acara layanan dalam sejarah Acara. Anda dapat melihat, mencari, dan mengunduh acara terbaru di Akun AWS. Untuk informasi selengkapnya, lihat Melihat Acara dengan Riwayat CloudTrail Acara.

Untuk catatan peristiwa yang sedang berlangsung di Akun AWS, termasuk acara untuk IAM dan AWS STS, buat jejak. Jejak memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Secara default, ketika Anda membuat jejak di konsol, jejak diterapkan ke semua Region. Jejak mencatat peristiwa dari semua Wilayah di AWS partisi dan mengirimkan file log ke bucket Amazon S3 yang Anda tentukan. Selain itu, Anda dapat mengkonfigurasi AWS layanan untuk menganalisis lebih lanjut dan bertindak atas data peristiwa yang dikumpulkan dalam CloudTrail log. Untuk informasi selengkapnya, lihat:

Semua IAM dan AWS STS tindakan dicatat oleh CloudTrail dan didokumentasikan dalam IAMAPIReferensi dan AWS Security Token Service APIReferensi.

Penebangan IAM dan AWS STS APIpermintaan

CloudTrail mencatat semua API permintaan yang diautentikasi ke dan IAM AWS STS APIoperasi. CloudTrail juga mencatat permintaan yang tidak diautentikasi ke AWS STS tindakan, AssumeRoleWithSAML danAssumeRoleWithWebIdentity, dan mencatat informasi yang disediakan oleh penyedia identitas. Namun, beberapa yang tidak diautentikasi AWS STS permintaan mungkin tidak dicatat karena mereka tidak memenuhi harapan minimum yang cukup valid untuk dipercaya sebagai permintaan yang sah.

Anda dapat menggunakan informasi yang dicatat untuk memetakan panggilan yang dilakukan oleh pengguna federasi dengan peran yang diasumsikan kembali ke pemanggil federasi eksternal yang berasal. Dalam hal iniAssumeRole, Anda dapat memetakan panggilan kembali ke aslinya AWS layanan atau ke akun pengguna asal. userIdentityBagian JSON data dalam entri CloudTrail log berisi informasi yang Anda butuhkan untuk memetakan AssumeRole* permintaan dengan pengguna federasi tertentu. Untuk informasi selengkapnya, lihat CloudTrail userIdentityElemen di AWS CloudTrail Panduan Pengguna.

Misalnya, panggilan ke IAMCreateUser,, DeleteRoleListGroups, dan API operasi lainnya semuanya dicatat oleh CloudTrail.

Contoh untuk jenis entri log ini akan disampaikan nanti dalam topik ini.

APIPermintaan pencatatan ke orang lain AWS layanan

Permintaan yang diautentikasi ke orang lain AWS APIoperasi layanan dicatat oleh CloudTrail, dan entri log ini berisi informasi tentang siapa yang membuat permintaan.

Misalnya, anggap Anda membuat permintaan untuk mencantumkan EC2 instans Amazon atau membuat AWS CodeDeploy kelompok penyebaran. Perincian tentang orang atau layanan yang mengajukan permintaan tersebut terdapat di entri log untuk permintaan tersebut. Informasi ini membantu Anda menentukan apakah permintaan tersebut dibuat oleh Pengguna root akun AWS, IAM pengguna, peran, atau lainnya AWS layanan.

Untuk detail selengkapnya tentang informasi identitas pengguna di entri CloudTrail log, lihat userIdentity Elemen di AWS CloudTrail Panduan Pengguna.

Mencatat peristiwa masuk pengguna

CloudTrail mencatat peristiwa login ke AWS Management Console, AWS forum diskusi, dan AWS Marketplace. CloudTrailmencatat upaya masuk yang berhasil dan gagal untuk IAM pengguna dan pengguna gabungan.

Untuk melihat contoh CloudTrail peristiwa untuk login pengguna root yang berhasil dan tidak berhasil, lihat Contoh catatan peristiwa untuk pengguna root di AWS CloudTrail Panduan Pengguna.

Sebagai praktik keamanan terbaik, AWS tidak mencatat teks nama IAM pengguna yang dimasukkan saat kegagalan masuk disebabkan oleh nama pengguna yang salah. Teks nama pengguna ditutupi oleh nilai HIDDEN_DUE_TO_SECURITY_REASONS. Untuk contoh ini, lihat Contoh peristiwa gagal masuk yang disebabkan oleh nama pengguna yang salah, nanti dalam topik ini. Teks nama pengguna disamarkan karena kegagalan tersebut mungkin disebabkan oleh kesalahan pengguna. Pembuatan catatan kesalahan ini dapat memaparkan informasi yang berpotensi sensitif. Sebagai contoh:

  • Anda secara tidak sengaja memasukkan kata sandi anda di kotak nama pengguna.

  • Anda memilih tautan untuk halaman masuk salah satunya Akun AWS, tetapi kemudian ketik nomor akun untuk yang berbeda Akun AWS.

  • Anda lupa akun mana yang sedang Anda masuki dan secara tidak sengaja mengetikkan nama akun dari akun email pribadi Anda, pengenal masuk bank Anda, atau beberapa ID pribadi lainnya.

Mencatat peristiwa masuk untuk kredensial sementara

Ketika prinsipal meminta kredensi sementara, tipe utama menentukan cara CloudTrail mencatat peristiwa. Ini bisa jadi rumit ketika pelaku utama mengambil peran dalam akun lain. Ada beberapa API panggilan untuk melakukan operasi yang terkait dengan operasi lintas akun peran. Pertama, kepala sekolah memanggil AWS STS APIuntuk mengambil kredensi sementara. Operasi itu masuk ke akun panggilan dan akun tempat AWS STS operasi dilakukan. Kemudian kepala sekolah kemudian menggunakan peran tersebut untuk melakukan API panggilan lain di akun peran yang diasumsikan.

Anda dapat menggunakan kunci syarat sts:SourceIdentity dalam peran kebijakan kepercayaan untuk mengharuskan pengguna menentukan identias saat mereka mengasumsikan sebuah peran. Misalnya, Anda dapat meminta IAM pengguna menentukan nama pengguna mereka sendiri sebagai identitas sumber mereka. Ini dapat membantu Anda menentukan pengguna mana yang melakukan tindakan tertentu di AWS Untuk informasi selengkapnya, lihat sts:SourceIdentity. Anda dapat menggunakan sts:RoleSessionName untuk mengharuskan pengguna menentukan nama sesi saat mereka mengasumsikan sebuah peran. Ini dapat membantu Anda membedakan antara sesi peran untuk peran yang digunakan oleh kepala sekolah yang berbeda saat Anda meninjau AWS CloudTrail log.

Tabel berikut menunjukkan bagaimana CloudTrail log informasi identitas pengguna yang berbeda untuk masing-masing AWS STS APIsyang menghasilkan kredensi sementara.

Tipe utama STS API Identitas pengguna di CloudTrail log untuk akun penelepon Identitas pengguna di CloudTrail log untuk akun peran yang diasumsikan Identitas pengguna di CloudTrail log untuk API panggilan peran berikutnya
Pengguna root akun AWS credentials GetSessionToken Identitas pengguna root Akun pemilik peran sama dengan akun panggilan Identitas pengguna root
IAMpengguna GetSessionToken Identitas pengguna IAM Akun pemilik peran sama dengan akun panggilan Identitas pengguna IAM
IAMpengguna GetFederationToken Identitas pengguna IAM Akun pemilik peran sama dengan akun panggilan Identitas pengguna IAM
IAMpengguna AssumeRole Identitas pengguna IAM Nomor akun dan ID utama (jika pengguna), atau AWS layanan utama Khusus identitas peran (tanpa pengguna)
Pengguna yang diautentikasi secara eksternal AssumeRoleWithSAML T/A Identitas pengguna SAML Khusus identitas peran (tanpa pengguna)
Pengguna yang diautentikasi secara eksternal AssumeRoleWithWebIdentity T/A OIDC/Identitas pengguna web Khusus identitas peran (tanpa pengguna)

CloudTrail menganggap tindakan hanya-baca jika tidak memiliki efek mutasi pada sumber daya. Saat mencatat peristiwa hanya-baca, CloudTrail menyunting responseElements informasi di log. Saat CloudTrail mencatat peristiwa yang tidak hanya-baca, lengkap responseElements ditampilkan di entri log. Namun, untuk AWS STS APIsAssumeRole,AssumeRoleWithSAML, danAssumeRoleWithWebIdentity, meskipun mereka dicatat sebagai hanya-baca, CloudTrail akan menyertakan lengkap responseElements dalam log untuk ini. APIs

Tabel berikut menunjukkan bagaimana CloudTrail log responseElements dan readOnly informasi untuk masing-masing AWS STS APIsyang menghasilkan kredensi sementara.

STS API Informasi elemen respons Hanya baca
AssumeRole Termasuk true
AssumeRoleWithSAML Termasuk true
AssumeRoleWithWebIdentity Termasuk true
GetFederationToken Termasuk false
GetSessionToken Termasuk false

Contoh IAM API peristiwa di CloudTrail log

CloudTrail file log berisi peristiwa yang diformat menggunakanJSON. APIPeristiwa mewakili satu API permintaan dan mencakup informasi tentang prinsipal, tindakan yang diminta, parameter apa pun, dan tanggal dan waktu tindakan.

Contoh IAM API peristiwa dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat untuk IAM GetUserPolicy tindakan tersebut.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/JaneDoe", "accountId": "444455556666", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "JaneDoe", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-07-15T21:39:40Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-07-15T21:40:14Z", "eventSource": "iam.amazonaws.com", "eventName": "GetUserPolicy", "awsRegion": "us-east-2", "sourceIPAddress": "signin.amazonaws.com", "userAgent": "signin.amazonaws.com", "requestParameters": { "userName": "JaneDoe", "policyName": "ReadOnlyAccess-JaneDoe-201407151307" }, "responseElements": null, "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE", "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE" }

Dari informasi peristiwa ini, Anda dapat menentukan bahwa permintaan dibuat untuk mendapatkan kebijakan pengguna bernama ReadOnlyAccess-JaneDoe-201407151307 untuk pengguna JaneDoe, sebagaimana ditentukan dalam elemen requestParameters. Anda juga dapat melihat bahwa permintaan tersebut dibuat oleh IAM pengguna bernama JaneDoe pada 15 Juli 2014 pukul 21:40 (UTC). Dalam hal ini, permintaan berasal dari AWS Management Console, seperti yang Anda tahu dari userAgent elemen.

Contoh AWS STS APIperistiwa di CloudTrail log

CloudTrail file log berisi peristiwa yang diformat menggunakanJSON. APIPeristiwa mewakili satu API permintaan dan mencakup informasi tentang prinsipal, tindakan yang diminta, parameter apa pun, dan tanggal dan waktu tindakan.

Contoh lintas akun AWS STS APIperistiwa dalam file CloudTrail log

IAMPengguna yang disebutkan JohnDoe dalam akun 777788889999 memanggil AWS STS AssumeRoletindakan untuk mengambil peran EC2-dev dalam akun 111122223333. Administrator akun mengharuskan pengguna untuk menetapkan identitas sumber yang sama dengan nama pengguna mereka ketika mengambil peran. Pengguna melewati nilai identitas sumber JohnDoe.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:user/JohnDoe", "accountId": "777788889999", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "JohnDoe" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/EC2-dev", "roleSessionName": "JohnDoe-EC2-dev", "sourceIdentity": "JohnDoe", "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "expiration": "Jul 18, 2023, 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" }, "sourceIdentity": "JohnDoe" }, "resources": [ { "ARN": "arn:aws:iam::111122223333:role/EC2-dev", "accountId": "111122223333", "type": "AWS::IAM::Role" } ], "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

Contoh kedua menunjukkan entri CloudTrail log akun peran yang diasumsikan (111122223333) untuk permintaan yang sama.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAQRSTUVWXYZEXAMPLE", "accountId": "777788889999" }, "eventTime": "2014-07-18T15:07:39Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67", "requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/EC2-dev", "roleSessionName": "JohnDoe-EC2-dev", "sourceIdentity": "JohnDoe", "serialNumber": "arn:aws:iam::777788889999:mfa" }, "responseElements": { "credentials": { "sessionToken": "<encoded session token blob>", "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "expiration": "Jul 18, 2014, 4:07:39 PM" }, "assumedRoleUser": { "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:JohnDoe-EC2-dev", "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/JohnDoe-EC2-dev" }, "sourceIdentity": "JohnDoe" }, "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE", "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE", "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE" }

Contoh AWS STS APIperistiwa rantai peran dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat oleh John Doe di akun 111111111111. John sebelumnya menggunakan pengguna JohnDoe untuk mengambil peran JohnRole1. Untuk permintaan ini, dia menggunakan kredensial dari peran tersebut untuk mengambil peran JohnRole2. Ini dikenal sebagai perangkaian peran. Identitas sumber yang ia tetapkan ketika ia diasumsikan peran JohnDoe1 tetap ada dalam permintaan untuk mengasumsikan JohnRole2. Jika John mencoba untuk menetapkan identitas sumber yang berbeda ketika mengambil peran, permintaan ditolak. John memberikan dua tanda sesi ke dalam permintaan. Dia menetapkan kedua tanda itu sebagai transitif. Permintaan mewarisi tanda Department sebagai transitif karena John mengaturnya sebagai transitif ketika ia mengasumsikan JohnRole1. Untuk informasi lebih lanjut tentang identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan. Untuk informasi lebih lanjut tentang kunci transitif dalam rantai peran, lihat Merangkai peran dengan tag sesi.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIN5ATK5U7KEXAMPLE:JohnRole1", "arn": "arn:aws:sts::111111111111:assumed-role/JohnDoe/JohnRole1", "accountId": "111111111111", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2019-10-02T21:50:54Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIN5ATK5U7KEXAMPLE", "arn": "arn:aws:iam::111111111111:role/JohnRole1", "accountId": "111111111111", "userName": "JohnDoe" }, "sourceIdentity": "JohnDoe" } }, "eventTime": "2019-10-02T22:12:29Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-2", "sourceIPAddress": "123.145.67.89", "userAgent": "aws-cli/1.16.248 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.239", "requestParameters": { "incomingTransitiveTags": { "Department": "Engineering" }, "tags": [ { "value": "johndoe@example.com", "key": "Email" }, { "value": "12345", "key": "CostCenter" } ], "roleArn": "arn:aws:iam::111111111111:role/JohnRole2", "roleSessionName": "Role2WithTags", "sourceIdentity": "JohnDoe", "transitiveTagKeys": [ "Email", "CostCenter" ], "durationSeconds": 3600 }, "responseElements": { "credentials": { "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "expiration": "Oct 2, 2019, 11:12:29 PM", "sessionToken": "AgoJb3JpZ2luX2VjEB4aCXVzLXdlc3QtMSJHMEXAMPLETOKEN+//rJb8Lo30mFc5MlhFCEbubZvEj0wHB/mDMwIgSEe9gk/Zjr09tZV7F1HDTMhmEXAMPLETOKEN/iEJ/rkqngII9///////////ARABGgw0MjgzMDc4NjM5NjYiDLZjZFKwP4qxQG5sFCryASO4UPz5qE97wPPH1eLMvs7CgSDBSWfonmRTCfokm2FN1+hWUdQQH6adjbbrVLFL8c3jSsBhQ383AvxpwK5YRuDE1AI/+C+WKFZb701eiv9J5La2EXAMPLETOKEN/c7S5Iro1WUJ0q3Cxuo/8HUoSxVhQHM7zF7mWWLhXLEQ52ivL+F6q5dpXu4aTFedpMfnJa8JtkWwG9x1Axj0Ypy2ok8v5unpQGWych1vwdvj6ez1Dm8Xg1+qIzXILiEXAMPLETOKEN/vQGqu8H+nxp3kabcrtOvTFTvxX6vsc8OGwUfHhzAfYGEXAMPLETOKEN/L6v1yMM3B1OwFOrQBno1HEjf1oNI8RnQiMNFdUOtwYj7HUZIOCZmjfN8PPHq77N7GJl9lzvIZKQA0Owcjg+mc78zHCj8y0siY8C96paEXAMPLETOKEN/E3cpksxWdgs91HRzJWScjN2+r2LTGjYhyPqcmFzzo2mCE7mBNEXAMPLETOKEN/oJy+2o83YNW5tOiDmczgDzJZ4UKR84yGYOMfSnF4XcEJrDgAJ3OJFwmTcTQICAlSwLEXAMPLETOKEN" }, "assumedRoleUser": { "assumedRoleId": "AROAIFR7WHDTSOYQYHFUE:Role2WithTags", "arn": "arn:aws:sts::111111111111:assumed-role/test-role/Role2WithTags" }, "sourceIdentity": "JohnDoe" }, "requestID": "b96b0e4e-e561-11e9-8b3f-7b396EXAMPLE", "eventID": "1917948f-3042-46ec-98e2-62865EXAMPLE", "resources": [ { "ARN": "arn:aws:iam::111111111111:role/JohnRole2", "accountId": "111111111111", "type": "AWS::IAM::Role" } ], "eventType": "AwsApiCall", "recipientAccountId": "111111111111" }

Contoh AWS layanan AWS STS APIperistiwa dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat oleh AWS layanan memanggil layanan lain API menggunakan izin dari peran layanan. Ini menunjukkan entri CloudTrail log untuk permintaan yang dibuat di akun 777788889999.

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AROAQRSTUVWXYZEXAMPLE:devdsk", "arn": "arn:aws:sts::777788889999:assumed-role/AssumeNothing/devdsk", "accountId": "777788889999", "accessKeyId": "ASIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2016-11-14T17:25:26Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAQRSTUVWXYZEXAMPLE", "arn": "arn:aws:iam::777788889999:role/AssumeNothing", "accountId": "777788889999", "userName": "AssumeNothing" } } }, "eventTime": "2016-11-14T17:25:45Z", "eventSource": "s3.amazonaws.com", "eventName": "DeleteBucket", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.1", "userAgent": "[aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67]", "requestParameters": { "bucketName": "amzn-s3-demo-bucket" }, "responseElements": null, "requestID": "EXAMPLE463D56D4C", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "777788889999" }

Contoh SAML AWS STS APIperistiwa dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat untuk AWS STS AssumeRoleWithSAMLtindakan. Permintaan mencakup SAML atribut CostCenter dan Project yang diteruskan melalui SAML pernyataan sebagai tag sesi. Tanda itu diatur sebagai transitif sehingga mereka bertahan dalam skenario perangkaian peran. Permintaan termasuk API parameter opsionalDurationSeconds, direpresentasikan seperti durationSeconds dalam CloudTrail log, dan diatur ke 1800 detik. Permintaan juga mencakup SAML atributsourceIdentity, yang diteruskan dalam SAML pernyataan. Jika seseorang menggunakan kredensial sesi peran yang dihasilkan untuk mengambil peran lain, identitas sumber ini tetap ada.

{ "eventVersion": "1.08", "userIdentity": { "type": "SAMLUser", "principalId": "SampleUkh1i4+ExamplexL/jEvs=:SamlExample", "userName": "SamlExample", "identityProvider": "bdGOnTesti4+ExamplexL/jEvs=" }, "eventTime": "2023-08-28T18:30:58Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithSAML", "awsRegion": "us-east-2", "sourceIPAddress": "AWS Internal", "userAgent": "aws-internal/3 aws-sdk-java/1.12.479 Linux/5.10.186-157.751.amzn2int.x86_64 OpenJDK_64-Bit_Server_VM/17.0.7+11 java/17.0.7 kotlin/1.3.72 vendor/Amazon.com_Inc. cfg/retry-mode/standard", "requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyAssignedRoleSessionName", "sourceIdentity": "MySAMLUser", "principalTags": { "CostCenter": "987654", "Project": "Unicorn", "Department": "Engineering" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "roleArn": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::444455556666:saml-provider/Shibboleth", "durationSeconds": 1800 }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "<encoded session token blob>", "expiration": "Aug 28, 2023, 7:00:58 PM" }, "assumedRoleUser": { "assumedRoleId": "AROAD35QRSTUVWEXAMPLE:MyAssignedRoleSessionName", "arn": "arn:aws:sts::444455556666:assumed-role/SAMLTestRoleShibboleth/MyAssignedRoleSessionName" }, "packedPolicySize": 1, "subject": "SamlExample", "subjectType": "transient", "issuer": "https://server.example.com/idp/shibboleth", "audience": "https://signin.aws.amazon.com/saml", "nameQualifier": "bdGOnTesti4+ExamplexL/jEvs=", "sourceIdentity": "MySAMLUser" }, "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE", "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE", "readOnly": true, "resources": [ { "accountId": "444455556666", "type": "AWS::IAM::Role", "ARN": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth" }, { "accountId": "444455556666", "type": "AWS::IAM::SAMLProvider", "ARN": "arn:aws:iam::444455556666:saml-provider/test-saml-provider" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "444455556666", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.2", "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256", "clientProvidedHostHeader": "sts.us-east-2.amazonaws.com" } }

Contoh OIDC AWS STS APIperistiwa dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat untuk AWS STS AssumeRoleWithWebIdentitytindakan. Permintaan menyertakan atribut CostCenter dan Project yang diteruskan melalui token penyedia identitas OpenID Connect (OIDC) (iDP) sebagai tag sesi. Tanda itu diatur sebagai transitif sehingga mereka bertahan dalam perangkaian peran. Permintaan tersebut mencakup atribut sourceIdentity dari token penyedia identitas. Jika seseorang menggunakan kredensial sesi peran yang dihasilkan untuk mengambil peran lain, identitas sumber ini tetap ada.

Entri CloudTrail log juga berisi additionalEventData bidang dengan identityProviderConnectionVerificationMethod atribut. Atribut ini menunjukkan metode AWS digunakan untuk memverifikasi koneksi dengan OIDC penyedia. Nilai atribut akan menjadi salah satu IAMTrustStore atauThumbprint. IAMTrustStoreNilai tersebut menunjukkan bahwa AWS berhasil memverifikasi koneksi dengan OIDC IDP menggunakan pustaka otoritas sertifikat root tepercaya kami ()CAs. ThumbprintNilai tersebut menunjukkan bahwa AWS menggunakan cap jempol sertifikat yang diatur dalam konfigurasi iDP untuk memverifikasi sertifikat server OIDC iDP.

{ "eventVersion": "1.08", "userIdentity": { "type": "WebIdentityUser", "principalId": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>:<id of application>:<id of user>", "userName": "<id of user>", "identityProvider": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>" }, "eventTime": "2024-07-09T15:41:37Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRoleWithWebIdentity", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "aws-cli/2.13.29 Python/3.11.6 Windows/10 exe/AMD64 prompt/off command/sts.assume-role-with-web-identity", "requestParameters": { "roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole", "roleSessionName": "<assigned role session name>", "sourceIdentity": "MyWebIdentityUser", "durationSeconds": 3600, "principalTags": { "CostCenter": "24680", "Project": "Pegasus" }, "transitiveTagKeys": [ "CostCenter", "Project" ] }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionToken": "<encoded session token blob>", "expiration": "Jul 9, 2024, 4:41:37 PM" }, "subjectFromWebIdentityToken": "<id of user>", "sourceIdentity": "MyWebIdentityUser", "assumedRoleUser": { "assumedRoleId": "AROA123456789EXAMPLE:<assigned role session name>", "arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/<assigned role session name>" }, "provider": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>", "audience": "<id of application>" }, "additionalEventData": { "identityProviderConnectionVerificationMethod": "IAMTrustStore" }, "requestID": "aEXAMPLE-0b26-40df-8973-c7012EXAMPLE", "eventID": "aEXAMPLE-ee29-4ac0-a0ed-3f5c5EXAMPLE", "readOnly": true, "resources": [ { "accountId": "444455556666", "type": "AWS::IAM::Role", "ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "444455556666", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "sts.us-east-2.amazonaws.com" } }

Contoh peristiwa masuk dalam catatan CloudTrail

CloudTrail file log berisi peristiwa yang diformat menggunakanJSON. Peristiwa masuk mewakili permintaan masuk tunggal dan mencakup informasi tentang penanggung jawab masuk, Wilayah, serta tanggal dan waktu tindakan.

Contoh peristiwa sukses masuk dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk acara login yang berhasil.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JohnDoe", "accountId": "111122223333", "userName": "JohnDoe" }, "eventTime": "2014-07-16T15:49:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.110", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/s3/", "MFAUsed": "No" }, "eventID": "3fcfb182-98f8-4744-bd45-10a395ab61cb" }

Untuk detail selengkapnya tentang informasi yang terkandung dalam file CloudTrail log, lihat Referensi CloudTrail Acara di AWS CloudTrail Panduan Pengguna.

Contoh peristiwa kegagalan masuk dalam file CloudTrail log

Contoh berikut menunjukkan entri CloudTrail log untuk peristiwa login gagal.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::111122223333:user/JaneDoe", "accountId": "111122223333", "userName": "JaneDoe" }, "eventTime": "2014-07-08T17:35:27Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.100", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "Failed authentication", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "MobileVersion": "No", "LoginTo": "https://console.aws.amazon.com/sns", "MFAUsed": "No" }, "eventID": "11ea990b-4678-4bcd-8fbe-62509088b7cf" }

Dari informasi ini, Anda dapat menentukan bahwa upaya masuk dilakukan oleh IAM pengguna bernamaJaneDoe, seperti yang ditunjukkan dalam userIdentity elemen. Anda juga dapat melihat bahwa upaya masuk gagal, seperti yang ditunjukkan pada elemen responseElements. Anda dapat melihat bahwa JaneDoe mencoba masuk ke SNS konsol Amazon pada pukul 17:35 (UTC) pada 8 Juli 2014.

Contoh peristiwa gagal masuk yang disebabkan oleh nama pengguna yang salah

Contoh berikut menunjukkan entri CloudTrail log untuk peristiwa login yang gagal yang disebabkan oleh pengguna memasukkan nama pengguna yang salah. AWS menutupi userName teks dengan HIDDEN_DUE_TO_SECURITY_REASONS untuk membantu mencegah mengekspos informasi yang berpotensi sensitif.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "accountId": "123456789012", "accessKeyId": "", "userName": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "eventTime": "2015-03-31T22:20:42Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.101", "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0", "errorMessage": "No username found in supplied account", "requestParameters": null, "responseElements": { "ConsoleLogin": "Failure" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true", "MobileVersion": "No", "MFAUsed": "No" }, "eventID": "a7654656-0417-45c6-9386-ea8231385051", "eventType": "AwsConsoleSignin", "recipientAccountId": "123456789012" }

IAMperilaku kebijakan kepercayaan peran

Pada tanggal 21 September 2022, AWS membuat perubahan pada perilaku kebijakan kepercayaan IAM peran untuk meminta izin eksplisit dalam kebijakan kepercayaan peran ketika peran mengasumsikan dirinya sendiri. IAMperan dalam daftar izin perilaku lama memiliki additionalEventData bidang yang ada explicitTrustGrant untuk AssumeRole acara. Nilai false ketika peran pada daftar izin lama mengasumsikan dirinya menggunakan perilaku lama. explicitTrustGrant Ketika peran pada daftar izin lama mengasumsikan dirinya sendiri tetapi perilaku kebijakan kepercayaan peran telah diperbarui untuk secara eksplisit memungkinkan peran tersebut untuk mengambil alih dirinya sendiri, nilainya benar. explicitTrustGrant

Hanya sejumlah kecil IAM peran yang ada di daftar izinkan untuk perilaku lama, dan bidang ini hanya ada di CloudTrail log untuk peran ini ketika mereka mengambil peran tersebut. Dalam kebanyakan kasus, IAM peran tidak perlu diasumsikan sendiri. AWS merekomendasikan memperbarui proses, kode, atau konfigurasi Anda untuk menghapus perilaku ini atau memperbarui kebijakan kepercayaan peran Anda untuk secara eksplisit mengizinkan perilaku ini. Untuk informasi selengkapnya, lihat Mengumumkan pembaruan perilaku kebijakan kepercayaan IAM peran.