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 peristiwa, termasuk panggilan dari konsol tersebut dan dari API panggilan. Jika membuat jejak, Anda dapat mengaktifkan pengiriman CloudTrail peristiwa berkelanjutan ke bucket Amazon S3. Jika Anda tidak mengonfigurasi jejak, Anda masih dapat melihat kejadian terbaru di CloudTrail konsol di Riwayat kejadian. 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 pencatatan 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
IAMdan AWS STS informasi di CloudTrail
CloudTrail diaktifkan pada Anda Akun AWS saat Anda membuat akun. Ketika aktivitas terjadi di IAM atau AWS STS, aktivitas tersebut dicatat dalam CloudTrail peristiwa bersama peristiwa AWS layanan lainnya di Riwayat peristiwa. Anda dapat melihat, mencari, dan mengunduh kejadian terbaru di Anda Akun AWS. Untuk informasi selengkapnya, lihat Melihat Kejadian dengan Riwayat CloudTrail Kejadian.
Untuk catatan berkelanjutan tentang peristiwa di Anda Akun AWS, termasuk peristiwa untuk IAM dan AWS STS, buat jejak. Jejak memungkinkan CloudTrail untuk mengirim file log ke bucket Amazon S3. Secara default, ketika Anda membuat jejak di konsol, jejak diterapkan ke semua Region. Jalur mencatat kejadian dari semua Wilayah di AWS partisi dan mengirimkan file log ke bucket Amazon S3 yang Anda tentukan. Selain itu, Anda dapat mengonfigurasi AWS layanan lainnya untuk menganalisis lebih lanjut dan bertindak berdasarkan data peristiwa yang dikumpulkan di 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. Untuk permintaan asumsi peran lintas akun, CloudTrail tidak mencatat AWS STS permintaan yang ditolak di akun target. CloudTrail
Anda dapat menggunakan informasi yang dicatat untuk memetakan panggilan yang dilakukan oleh pengguna gabungan dengan peran yang diasumsikan kembali ke pemanggil gabungan eksternal asal. 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 pencatatan ke AWS layanan lain
Permintaan yang diautentikasi ke API operasi AWS layanan lainnya dicatat oleh CloudTrail, dan entri log ini berisi informasi tentang siapa yang membuat permintaan tersebut.
Misalnya, anggap bahwa Anda mengajukan permintaan untuk mendaftar EC2 instans Amazon atau membuat grup AWS CodeDeploy deployment. 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 IAM pengguna, peran, atau AWS layanan lainnya. Pengguna root akun AWS
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 CloudTrail peristiwa sampel untuk pengguna root yang gagal dan berhasil masuk, 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 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 dari satu Akun AWS, tetapi kemudian mengetikkan nomor akun untuk akun 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 seorang pelaku utama meminta kredensi sementara, jenis utama menentukan bagaimana CloudTrail mencatat peristiwa. Ini bisa jadi rumit ketika pelaku utama mengambil peran dalam akun lain. Ada beberapa API panggilan untuk melakukan operasi terkait operasi lintas akun peran. Pertama, penanggung jawab tersebut memanggil AWS STS API untuk mengambil kredensi sementara. Operasi tersebut dicatat di akun panggilan dan akun tempat AWS STS operasi dilakukan. Kemudian pelaku utama menggunakan peran tersebut untuk melakukan API panggilan lainnya 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 milik mereka sebagai identias 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. Hal ini dapat membantu Anda membedakan antara sesi peran untuk peran yang digunakan oleh pelaku utama yang berbeda saat Anda meninjau log. AWS CloudTrail
Tabel berikut menunjukkan bagaimana CloudTrail mencatat 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 pemanggil | Identitas pengguna di CloudTrail log untuk akun peran yang diasumsikan | Identitas pengguna di CloudTrail log untuk API panggilan selanjutnya dari peran tersebut |
---|---|---|---|---|
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 akun dan ID penanggung jawab (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 akun dan ID penanggung jawab (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 | OIDCIdentitas 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 | Penyertaan | true |
AssumeRoleWithSAML | Penyertaan | true |
AssumeRoleWithWebIdentity | Penyertaan | true |
AssumeRoot | Penyertaan | false |
GetFederationToken | Penyertaan | false |
GetSessionToken | Penyertaan | false |
Contoh IAM API peristiwa di CloudTrail log
CloudTrail File catatan berisi peristiwa yang diformat menggunakanJSON. Sebuah API peristiwa mewakili API permintaan tunggal dan mencakup informasi tentang prinsipal, tindakan yang diminta, parameter apapun, 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.09",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AIDACKCEVSQ6C2EXAMPLE:Role-Session-Name",
"arn": "arn:aws:sts::111122223333:assumed-role/Role-Name/Role-Session-Name",
"accountId": "111122223333",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AIDACKCEVSQ6C2EXAMPLE",
"arn": "arn:aws:iam::111122223333:role/Admin",
"accountId": "111122223333",
"userName": "Admin"
},
"attributes": {
"creationDate": "2024-09-09T17:50:16Z",
"mfaAuthenticated": "false"
}
}
},
"eventTime": "2024-09-09T17:51:44Z",
"eventSource": "iam.amazonaws.com",
"eventName": "GetUserPolicy",
"awsRegion": "us-east-1",
"sourceIPAddress": "192.0.2.101",
"userAgent": "aws-cli/1.16.96 Python/2.7.8 Linux/10 botocore/1.12.86",
"requestParameters": {
"userName": "ExampleIAMUserName",
"policyName": "ExamplePoliccyName"
},
"responseElements": null,
"requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE",
"eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE",
"readOnly": true,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "111122223333",
"eventCategory": "Management",
"tlsDetails": {
"tlsVersion": "TLSv1.3",
"cipherSuite": "TLS_AES_128_GCM_SHA256",
"clientProvidedHostHeader": "iam.amazonaws.com"
}
}
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 tanggal 15 Juli 2014 pada pukul 21.40 (UTC). Dalam hal ini, permintaan berasal dari AWS Management Console, seperti yang Anda ketahui dari userAgent
elemen.
Contoh AWS STS API peristiwa di CloudTrail log
CloudTrail File catatan berisi peristiwa yang diformat menggunakanJSON. Sebuah API peristiwa mewakili API permintaan tunggal dan mencakup informasi tentang prinsipal, tindakan yang diminta, parameter apapun, 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 akun peran yang diambil (111122223333) entri CloudTrail log 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 111111111111111111111111. 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 sebuah permintaan yang dibuat oleh AWS layanan yang memanggil layanan lainnya 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 tersebut 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 catatan 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 catatan
Contoh berikut menunjukkan entri CloudTrail log untuk peristiwa masuk 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 gagal masuk dalam file CloudTrail catatan
Contoh berikut menunjukkan entri CloudTrail log untuk peristiwa masuk 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 pada userIdentity
elemen. Anda juga dapat melihat bahwa upaya masuk gagal, seperti yang ditunjukkan pada elemen responseElements
. Anda dapat melihatnya bahwa JaneDoe
mencoba masuk ke SNS konsol Amazon pada pukul 17.35 (UTC) pada tanggal 8 Juli 2014.
Contoh peristiwa gagal masuk yang disebabkan oleh nama pengguna yang salah
Contoh berikut menunjukkan entri CloudTrail log untuk peristiwa masuk yang tidak berhasil yang disebabkan oleh pengguna yang salah memasukkan nama pengguna. 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
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 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