Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Berbagi file CloudTrail log antar AWS akun

Mode fokus
Berbagi file CloudTrail log antar AWS akun - AWS CloudTrail

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

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

Bagian ini menjelaskan cara berbagi file CloudTrail log antara beberapa AWS akun. Pendekatan yang Anda gunakan untuk berbagi log Akun AWS bergantung pada konfigurasi bucket S3 Anda. Ini adalah opsi untuk berbagi file log:

  • Pemilik bucket diberlakukanKepemilikan Objek S3 adalah setelan tingkat ember Amazon S3 yang dapat Anda gunakan untuk mengontrol kepemilikan objek yang diunggah ke bucket Anda dan untuk menonaktifkan atau mengaktifkan daftar kontrol akses (). ACLs Secara default, Kepemilikan Objek disetel ke setelan diberlakukan pemilik Bucket dan semuanya ACLs dinonaktifkan. Saat ACLs dinonaktifkan, pemilik bucket memiliki semua objek di bucket dan mengelola akses ke data secara eksklusif menggunakan kebijakan manajemen akses. Saat opsi diberlakukan pemilik Bucket disetel, akses dikelola melalui kebijakan bucket, sehingga pengguna tidak perlu mengambil peran.

  • Asumsikan peran untuk berbagi file log — Jika Anda belum memilih setelan yang diterapkan pemilik Bucket, pengguna harus mengambil peran untuk mengakses file log di bucket S3 Anda.

Bagikan file log antar akun dengan mengambil peran

catatan

Bagian ini hanya berlaku untuk bucket Amazon S3 yang tidak menggunakan setelan yang diberlakukan pemilik Bucket.

Bagian ini menjelaskan cara berbagi file CloudTrail log antara beberapa Akun AWS dengan mengasumsikan peran dan menjelaskan skenario untuk berbagi file log.

  • Skenario 1: Berikan akses hanya-baca ke akun yang menghasilkan file log yang telah ditempatkan ke bucket Amazon S3 Anda.

  • Skenario 2: Berikan akses ke semua file log di bucket Amazon S3 Anda ke akun pihak ketiga yang dapat menganalisis file log untuk Anda.

Untuk memberikan akses hanya-baca ke file log di bucket Amazon S3 Anda
  1. Buat peran IAM untuk setiap akun yang ingin Anda bagikan file log. Anda harus menjadi administrator untuk memberikan izin.

    Saat Anda membuat peran, lakukan hal berikut:

    • Pilih Akun AWS opsi lain.

    • Masukkan ID akun dua belas digit dari akun yang akan diberikan akses.

    • Centang kotak Memerlukan MFA jika Anda ingin pengguna memberikan otentikasi multi-faktor sebelum mengambil peran.

    • Pilih kebijakan AmazonS3 ReadOnlyAccess.

      catatan

      Secara default, ReadOnlyAccess kebijakan AmazonS3 memberikan hak pengambilan dan daftar ke semua bucket Amazon S3 dalam akun Anda.

    Untuk detail tentang manajemen izin untuk peran IAM, lihat peran IAM di Panduan Pengguna IAM.

  2. Buat kebijakan akses yang memberikan akses hanya-baca ke akun yang ingin Anda bagikan file log.

  3. Instruksikan setiap akun untuk mengambil peran untuk mengambil file log.

Untuk memberikan akses read-only ke file log dengan akun pihak ketiga
  1. Buat peran IAM untuk akun pihak ketiga yang ingin Anda bagikan file log. Anda harus menjadi administrator untuk memberikan izin.

    Saat Anda membuat peran, lakukan hal berikut:

    • Pilih Akun AWS opsi lain.

    • Masukkan ID akun dua belas digit dari akun yang akan diberikan akses.

    • Masukkan ID eksternal yang memberikan kontrol tambahan atas siapa yang dapat mengambil peran. Untuk informasi selengkapnya, lihat Cara Menggunakan ID Eksternal Saat Memberikan Akses ke AWS Sumber Daya Anda kepada Pihak Ketiga dalam Panduan Pengguna IAM.

    • Pilih kebijakan AmazonS3 ReadOnlyAccess.

      catatan

      Secara default, ReadOnlyAccess kebijakan AmazonS3 memberikan hak pengambilan dan daftar ke semua bucket Amazon S3 dalam akun Anda.

  2. Buat kebijakan akses yang memberikan akses hanya-baca ke akun pihak ketiga yang ingin Anda bagikan file log.

  3. Instruksikan akun pihak ketiga untuk mengambil peran untuk mengambil file log.

Bagian berikut memberikan detail lebih lanjut tentang langkah-langkah ini.

Membuat kebijakan akses untuk memberikan akses ke akun yang Anda miliki

Sebagai pemilik bucket Amazon S3, Anda memiliki kendali penuh atas bucket Amazon S3 CloudTrail yang menulis file log untuk akun lain. Anda ingin berbagi file log setiap unit bisnis kembali ke unit bisnis yang membuatnya. Tapi, Anda tidak ingin unit dapat membaca file log unit lain.

Misalnya, untuk berbagi file log akun B dengan akun B tetapi tidak dengan akun C, Anda harus membuat peran IAM baru di akun Anda yang menentukan bahwa akun B adalah akun tepercaya. Kebijakan kepercayaan peran ini menetapkan bahwa akun B dipercaya untuk mengambil peran yang dibuat oleh akun Anda, dan akan terlihat seperti contoh berikut. Kebijakan kepercayaan dibuat secara otomatis jika Anda membuat peran menggunakan konsol. Jika Anda menggunakan SDK untuk membuat peran, Anda harus menyediakan kebijakan kepercayaan sebagai parameter ke CreateRole API. Jika Anda menggunakan CLI untuk membuat peran, Anda harus menentukan kebijakan kepercayaan dalam perintah CLIcreate-role.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-B-id:root" }, "Action": "sts:AssumeRole" } ] }

Anda juga harus membuat kebijakan akses untuk menentukan bahwa akun B hanya dapat membaca dari lokasi tempat B menulis file lognya. Kebijakan akses akan terlihat seperti berikut ini. Perhatikan bahwa ARN Sumber Daya menyertakan ID akun dua belas digit untuk akun B, dan awalan yang Anda tentukan, jika ada, saat Anda mengaktifkan akun B CloudTrail selama proses agregasi. Untuk informasi selengkapnya tentang menentukan awalan, lihat. Buat jejak di akun tambahan

penting

Anda harus memastikan bahwa awalan dalam kebijakan akses persis sama dengan awalan yang Anda tentukan saat Anda mengaktifkan akun B. Jika tidak, maka Anda harus mengedit kebijakan akses peran IAM di akun Anda untuk memasukkan awalan aktual untuk akun B. Jika awalan dalam kebijakan akses peran tidak persis sama dengan awalan yang Anda tentukan saat Anda mengaktifkan akun B, maka akun B tidak akan dapat mengaksesnya file log. CloudTrail CloudTrail

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/account-B-id/*" }, { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" } ] }

Gunakan proses sebelumnya untuk akun tambahan apa pun.

Setelah Anda membuat peran untuk setiap akun dan menentukan kebijakan kepercayaan dan akses yang sesuai, dan setelah pengguna IAM di setiap akun diberikan akses oleh administrator akun tersebut, pengguna IAM di akun B atau C dapat mengambil peran secara terprogram.

Untuk informasi selengkapnya, lihat Dengan asumsi peran.

Membuat kebijakan akses untuk memberikan akses ke pihak ketiga

Anda harus membuat peran IAM terpisah untuk akun pihak ketiga. Saat Anda membuat peran, AWS secara otomatis menciptakan hubungan kepercayaan, yang menentukan bahwa akun pihak ketiga akan dipercaya untuk mengambil peran tersebut. Kebijakan akses untuk peran menentukan tindakan apa yang dapat dilakukan akun tersebut. Untuk informasi selengkapnya tentang membuat peran, lihat Membuat peran IAM.

Misalnya, hubungan kepercayaan yang dibuat oleh AWS menentukan bahwa akun pihak ketiga (akun Z dalam contoh ini) dipercaya untuk mengambil peran yang telah Anda buat. Berikut ini adalah contoh kebijakan kepercayaan:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::account-Z-id:root"}, "Action": "sts:AssumeRole" }] }

Jika Anda menetapkan ID eksternal saat membuat peran untuk akun pihak ketiga, kebijakan akses berisi Condition elemen tambahan yang menguji ID unik yang ditetapkan oleh akun tersebut. Tes dilakukan ketika peran diasumsikan. Contoh kebijakan akses berikut memiliki Condition elemen.

Untuk informasi selengkapnya, lihat Cara menggunakan ID eksternal saat memberikan akses ke AWS sumber daya Anda kepada pihak ketiga dalam Panduan Pengguna IAM.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::account-Z-id:root"}, "Action": "sts:AssumeRole", "Condition": {"StringEquals": {"sts:ExternalId": "external-ID-issued-by-account-Z"}} }] }

Anda juga harus membuat kebijakan akses untuk akun Anda untuk menentukan bahwa akun pihak ketiga dapat membaca semua log dari bucket Amazon S3. Kebijakan akses akan terlihat seperti contoh berikut. Kartu liar (*) di akhir Resource nilai menunjukkan bahwa akun pihak ketiga dapat mengakses file log apa pun di bucket S3 yang telah diberikan aksesnya.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" } ] }

Setelah Anda membuat peran untuk akun pihak ketiga dan menentukan hubungan kepercayaan dan kebijakan akses yang sesuai, pengguna IAM di akun pihak ketiga harus secara terprogram mengambil peran tersebut agar dapat membaca file log dari bucket. Untuk informasi selengkapnya, lihat Dengan asumsi peran.

Dengan asumsi peran

Anda harus menunjuk pengguna IAM terpisah untuk mengambil setiap peran yang Anda buat di setiap akun. Anda kemudian harus memastikan bahwa setiap pengguna IAM memiliki izin yang sesuai.

Pengguna dan peran IAM

Setelah Anda membuat peran dan kebijakan yang diperlukan, Anda harus menunjuk pengguna IAM di setiap akun yang ingin Anda bagikan file. Setiap pengguna IAM secara terprogram mengasumsikan peran yang sesuai untuk mengakses file log. Ketika pengguna mengambil peran, AWS mengembalikan kredensi keamanan sementara ke pengguna tersebut. Mereka kemudian dapat membuat permintaan untuk membuat daftar, mengambil, menyalin, atau menghapus file log tergantung pada izin yang diberikan oleh kebijakan akses yang terkait dengan peran tersebut.

Untuk informasi selengkapnya tentang bekerja dengan identitas IAM, lihat Identitas IAM (pengguna, grup pengguna, dan peran).

Perbedaan utama dalam kebijakan akses yang Anda buat untuk setiap peran IAM di setiap skenario.

Membuat kebijakan izin untuk pengguna IAM

Untuk melakukan tindakan yang diizinkan oleh peran, pengguna IAM harus memiliki izin untuk memanggil AWS STS AssumeRoleAPI. Anda harus mengedit kebijakan untuk setiap pengguna untuk memberi mereka izin yang sesuai. Untuk melakukannya, Anda menetapkan elemen Resource dalam kebijakan yang Anda lampirkan ke pengguna IAM. Contoh berikut menunjukkan kebijakan untuk pengguna IAM di akun lain yang memungkinkan pengguna tersebut untuk mengambil peran bernama yang Test dibuat sebelumnya oleh Akun A.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole"], "Resource": "arn:aws:iam::account-A-id:role/Test" } ] }
Untuk menyunting kebijakan yang dikelola pelanggan (konsol)
  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Kebijakan.

  3. Dari daftar kebijakan, pilih nama kebijakan untuk disunting. Anda dapat menggunakan kotak pencarian untuk memfilter daftar kebijakan.

  4. Pilih tab Izin, lalu pilih Edit.

  5. Lakukan salah satu hal berikut ini:

    • Pilih opsi Visual untuk mengubah kebijakan Anda tanpa memahami sintaks JSON. Anda dapat membuat perubahan pada layanan, tindakan, sumber daya, atau kondisi opsional untuk setiap blokir izin dalam kebijakan Anda. Anda juga dapat mengimpor kebijakan untuk menambahkan izin tambahan ke bawah kebijakan Anda. Setelah selesai melakukan perubahan, pilih Berikutnya untuk melanjutkan.

    • Pilih opsi JSON untuk mengubah kebijakan Anda dengan mengetik atau menempelkan teks di kotak teks JSON. Anda juga dapat mengimpor kebijakan untuk menambahkan izin tambahan ke bawah kebijakan Anda. Selesaikan peringatan keamanan, kesalahan, atau peringatan umum yang dihasilkan selama validasi kebijakan, lalu pilih Berikutnya.

      catatan

      Anda dapat beralih antara opsi editor Visual dan JSON kapan saja. Namun, jika Anda melakukan perubahan atau memilih Berikutnya di editor Visual, IAM dapat merestrukturisasi kebijakan Anda untuk mengoptimalkannya bagi editor visual. Untuk informasi selengkapnya, lihat Restrukturisasi kebijakan dalam Panduan Pengguna IAM.

  6. Pada halaman Tinjau dan simpan, tinjau Izin yang ditentukan dalam kebijakan ini, lalu pilih Simpan perubahan untuk menyimpan pekerjaan Anda.

  7. Jika kebijakan terkelola sudah memiliki maksimal lima versi, memilih Simpan perubahan akan menampilkan kotak dialog. Untuk menyimpan versi baru Anda, versi kebijakan non-default tertua akan dihapus dan diganti dengan versi baru ini. Secara opsional, Anda dapat mengatur versi baru sebagai versi kebijakan default.

    Pilih Simpan perubahan untuk menyimpan versi kebijakan baru Anda.

Memanggil AssumeRole

Pengguna dapat mengambil peran dengan membuat aplikasi yang memanggil AWS STS AssumeRoleAPI dan meneruskan nama sesi peran, Amazon Resource Number (ARN) peran yang akan diambil, dan ID eksternal opsional. Nama sesi peran ditentukan oleh akun yang membuat peran untuk diasumsikan. ID eksternal, jika ada, ditentukan oleh akun pihak ketiga dan diteruskan ke akun pemilik untuk dimasukkan selama pembuatan peran. Untuk informasi selengkapnya, lihat Cara Menggunakan ID Eksternal Saat Memberikan Akses ke AWS Sumber Daya Anda kepada Pihak Ketiga dalam Panduan Pengguna IAM. Anda dapat mengambil ARN dari Akun A dengan membuka konsol IAM.

Untuk menemukan Nilai ARN di Akun A dengan konsol IAM
  1. Pilih Peran

  2. Pilih peran yang ingin Anda periksa.

  3. Cari Peran ARN di bagian Ringkasan.

AssumeRole API mengembalikan kredensi sementara yang akan digunakan untuk mengakses sumber daya dalam memiliki akun. Dalam contoh ini, sumber daya yang ingin Anda akses adalah bucket Amazon S3 dan file log yang berisi bucket. Kredensi sementara memiliki izin yang Anda tetapkan dalam kebijakan akses peran.

Contoh Python berikut (menggunakan AWS SDK for Python (Boto)) menunjukkan cara memanggil AssumeRole dan cara menggunakan kredenal keamanan sementara yang dikembalikan untuk mencantumkan semua bucket Amazon S3 yang dikendalikan oleh Akun A.

def list_buckets_from_assumed_role(user_key, assume_role_arn, session_name): """ Assumes a role that grants permission to list the Amazon S3 buckets in the account. Uses the temporary credentials from the role to list the buckets that are owned by the assumed role's account. :param user_key: The access key of a user that has permission to assume the role. :param assume_role_arn: The Amazon Resource Name (ARN) of the role that grants access to list the other account's buckets. :param session_name: The name of the STS session. """ sts_client = boto3.client( "sts", aws_access_key_id=user_key.id, aws_secret_access_key=user_key.secret ) try: response = sts_client.assume_role( RoleArn=assume_role_arn, RoleSessionName=session_name ) temp_credentials = response["Credentials"] print(f"Assumed role {assume_role_arn} and got temporary credentials.") except ClientError as error: print( f"Couldn't assume role {assume_role_arn}. Here's why: " f"{error.response['Error']['Message']}" ) raise # Create an S3 resource that can access the account with the temporary credentials. s3_resource = boto3.resource( "s3", aws_access_key_id=temp_credentials["AccessKeyId"], aws_secret_access_key=temp_credentials["SecretAccessKey"], aws_session_token=temp_credentials["SessionToken"], ) print(f"Listing buckets for the assumed role's account:") try: for bucket in s3_resource.buckets.all(): print(bucket.name) except ClientError as error: print( f"Couldn't list buckets for the account. Here's why: " f"{error.response['Error']['Message']}" ) raise

Berhenti berbagi file CloudTrail log antar AWS akun

Untuk berhenti berbagi file log ke yang lain Akun AWS, hapus peran yang Anda buat untuk akun itu. Untuk selengkapnya tentang cara menghapus peran, lihat Menghapus peran atau profil instance.

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.