Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Logging IAM dan AWS STS API panggilan 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 itu dibuat, dan rincian tambahan.
Untuk mempelajari selengkapnya CloudTrail, lihat Panduan AWS CloudTrail Pengguna.
Topik
- IAMdan AWS STS informasi di CloudTrail
- Pencatatan IAM dan AWS STS API permintaan
- APIPermintaan logging ke AWS layanan lain
- Mencatat peristiwa masuk pengguna
- Mencatat peristiwa masuk untuk kredensial sementara
- Contoh IAM API peristiwa di CloudTrail log
- Contoh AWS STS API peristiwa di CloudTrail log
- Contoh peristiwa masuk dalam catatan CloudTrail
- IAMperilaku kebijakan kepercayaan peran
IAMdan AWS STS informasi di CloudTrail
CloudTrail diaktifkan pada Akun AWS saat Anda membuat akun. Ketika aktivitas terjadi di IAM atau AWS STS, aktivitas tersebut dicatat dalam suatu CloudTrail peristiwa bersama dengan peristiwa AWS layanan lainnya dalam riwayat Acara. Anda dapat melihat, mencari, dan mengunduh acara terbaru di situs Anda Akun AWS. Untuk informasi selengkapnya, lihat Melihat Acara dengan Riwayat CloudTrail Acara.
Untuk catatan acara yang sedang berlangsung di Anda 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 mengonfigurasi AWS layanan lain untuk menganalisis lebih lanjut dan menindaklanjuti 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.
Pencatatan IAM dan AWS STS API permintaan
CloudTrail mencatat semua API permintaan yang diautentikasi ke IAM dan AWS STS API operasi. CloudTrail juga mencatat permintaan yang tidak diautentikasi ke AWS STS tindakan, AssumeRoleWithSAML
danAssumeRoleWithWebIdentity
, dan mencatat informasi yang diberikan oleh penyedia identitas. Namun, beberapa AWS STS permintaan yang tidak diautentikasi mungkin tidak dicatat karena tidak memenuhi harapan minimum untuk 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 AWS layanan asal atau ke akun pengguna asal. userIdentity
Bagian 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 dalam Panduan AWS CloudTrail Pengguna.
Misalnya, panggilan ke IAMCreateUser
,, DeleteRole
ListGroups
, dan API operasi lainnya semuanya dicatat oleh CloudTrail.
Contoh untuk jenis entri log ini akan disampaikan nanti dalam topik ini.
APIPermintaan logging ke AWS layanan lain
Permintaan yang diautentikasi ke API operasi AWS layanan lain 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 grup AWS CodeDeploy penerapan. Perincian tentang orang atau layanan yang mengajukan permintaan tersebut terdapat di entri log untuk permintaan tersebut. Informasi ini membantu Anda menentukan apakah permintaan dibuat oleh Pengguna root akun AWS, IAM pengguna, peran, atau AWS layanan lain.
Untuk detail selengkapnya tentang informasi identitas pengguna di entri CloudTrail log, lihat userIdentity Elemen dalam Panduan AWS CloudTrail Pengguna.
Mencatat peristiwa masuk pengguna
CloudTrail mencatat peristiwa masuk ke AWS Management Console, forum AWS 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 Panduan Pengguna.AWS CloudTrail
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 API untuk mengambil kredenal 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 log. AWS CloudTrail
Tabel berikut menunjukkan bagaimana CloudTrail log informasi identitas pengguna yang berbeda untuk masing-masing AWS STS APIs yang 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 kredensialnya | GetSessionToken | Identitas pengguna root | Akun pemilik peran sama dengan akun panggilan | Identitas pengguna root |
Pengguna root akun AWS kredensialnya | AssumeRoot | Sesi pengguna root | Nomor rekening dan ID utama (jika pengguna) | Sesi 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 rekening dan ID utama (jika pengguna), atau kepala AWS layanan | 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 APIs yang menghasilkan kredensi sementara.
STS API | Informasi elemen respons | Hanya baca |
---|---|---|
AssumeRole | Termasuk | true |
AssumeRoleWithSAML | Termasuk | true |
AssumeRoleWithWebIdentity | Termasuk | true |
AssumeRoot | Termasuk | false |
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 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 AWS STS API peristiwa lintas akun dalam file CloudTrail log
IAMPengguna yang disebutkan JohnDoe
dalam akun 777788889999 memanggil AWS STS AssumeRoletindakan untuk mengambil peran dalam akun 111122223333. EC2-dev
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 API peristiwa rantai AWS STS 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 STS API acara AWS layanan dalam file CloudTrail log
Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat oleh AWS layanan yang 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 API peristiwa dalam file CloudTrail log
Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat untuk AWS STS AssumeRoleWithSAMLtindakan tersebut. 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 API peristiwa dalam file CloudTrail log
Contoh berikut menunjukkan entri CloudTrail log untuk permintaan yang dibuat untuk AWS STS AssumeRoleWithWebIdentitytindakan tersebut. 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 yang AWS digunakan untuk memverifikasi koneksi dengan OIDC penyedia. Nilai atribut akan menjadi salah satu IAMTrustStore
atauThumbprint
. IAMTrustStore
Nilai menunjukkan bahwa AWS berhasil memverifikasi koneksi dengan OIDC IDP menggunakan pustaka otoritas sertifikat root tepercaya kami ()CAs. Thumbprint
Nilai menunjukkan bahwa AWS menggunakan cap jempol sertifikat yang ditetapkan 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 Panduan AWS CloudTrail Pengguna.
Contoh peristiwa kegagalan masuk dalam file CloudTrail log
Contoh berikut menunjukkan entri CloudTrail log untuk peristiwa login yang 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 21 September 2022, AWS membuat perubahan pada perilaku kebijakan kepercayaan IAM peran untuk mengharuskan izin eksplisit dalam kebijakan kepercayaan peran ketika suatu 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 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