Aktifkan log akses untuk Application Load Balancer Anda - Elastic Load Balancing

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

Aktifkan log akses untuk Application Load Balancer Anda

Saat mengaktifkan log akses untuk penyeimbang beban, Anda harus menentukan nama bucket S3 tempat penyeimbang beban akan menyimpan log. Bucket harus memiliki kebijakan bucket yang memberikan izin Elastic Load Balancing untuk menulis ke bucket.

Langkah 1: Buat ember S3

Saat mengaktifkan log akses, Anda harus menentukan bucket S3 untuk log akses. Anda dapat menggunakan bucket yang sudah ada, atau membuat bucket khusus untuk log akses. Bucket harus memenuhi persyaratan berikut.

Persyaratan
  • Bucket harus ditempatkan di Wilayah yang sama dengan penyeimbang beban. Bucket dan load balancer dapat dimiliki oleh akun yang berbeda.

  • Satu-satunya opsi enkripsi sisi server yang didukung adalah kunci yang dikelola Amazon S3 (SSE-S3). Untuk informasi selengkapnya, lihat kunci enkripsi terkelola Amazon S3 (SSE-S3).

Untuk membuat bucket S3 menggunakan konsol Amazon S3
  1. Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Pilih Buat bucket.

  3. Pada halaman Create bucket, lakukan hal berikut:

    1. Untuk Bucket name, masukkan nama untuk bucket Anda. Nama ini harus unik di semua nama bucket yang ada di Amazon S3. Di beberapa Wilayah, mungkin ada pembatasan tambahan pada nama bucket. Untuk informasi selengkapnya, lihat Pembatasan dan batasan bucket di Panduan Pengguna Amazon S3.

    2. Untuk AWS Region, pilih Wilayah tempat Anda membuat penyeimbang beban.

    3. Untuk enkripsi Default, pilih kunci yang dikelola Amazon S3 (SSE-S3).

    4. Pilih Buat bucket.

Langkah 2: Lampirkan kebijakan ke bucket S3 Anda

Bucket S3 Anda harus memiliki kebijakan bucket yang memberikan izin Elastic Load Balancing untuk menulis log akses ke bucket. Kebijakan bucket adalah kumpulan pernyataan JSON yang ditulis dalam bahasa kebijakan akses untuk menentukan izin akses untuk bucket Anda. Setiap pernyataan mencakup informasi tentang satu izin dan berisi serangkaian elemen.

Jika Anda menggunakan bucket yang sudah memiliki kebijakan terlampir, Anda dapat menambahkan pernyataan untuk log akses Elastic Load Balancing ke kebijakan. Jika Anda melakukannya, sebaiknya Anda mengevaluasi kumpulan izin yang dihasilkan untuk memastikan bahwa izin tersebut sesuai untuk pengguna yang memerlukan akses ke bucket untuk log akses.

Kebijakan ini memberikan izin ke layanan pengiriman log.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logdelivery.elasticloadbalancing.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*" } ] }

UntukResource, masukkan ARN lokasi untuk log akses, menggunakan format yang ditunjukkan dalam kebijakan contoh. Selalu sertakan ID akun akun dengan penyeimbang beban di jalur sumber daya bucket S3 ARN. Ini memastikan bahwa hanya penyeimbang beban dari akun tertentu yang dapat menulis log akses ke bucket S3.

ARN yang Anda tentukan tergantung pada apakah Anda berencana untuk menyertakan awalan saat Anda mengaktifkan log akses di langkah 3.

Contoh S3 bucket ARN dengan awalan

Nama bucket S3 adalah amzn-s3-demo-logging-bucket dan awalannya adalah. logging-prefix

arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*

AWS GovCloud (US)— Contoh berikut menggunakan sintaks ARN untuk. AWS GovCloud (US) Regions

arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
Contoh S3 bucket ARN tanpa awalan

Nama bucket S3 adalahamzn-s3-demo-logging-bucket. Tidak ada bagian awalan di ember S3 ARN.

arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

AWS GovCloud (US)— Contoh berikut menggunakan sintaks ARN untuk. AWS GovCloud (US) Regions

arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

Sebelumnya, untuk Wilayah yang tersedia sebelum Agustus 2022, kami mewajibkan kebijakan yang memberikan izin ke akun Elastic Load Balancing yang khusus untuk Wilayah. Kebijakan lama ini masih didukung, namun sebaiknya Anda menggantinya dengan kebijakan yang lebih baru di atas. Jika Anda lebih suka tetap menggunakan kebijakan lama, yang tidak ditampilkan di sini, Anda bisa.

Sebagai referensi, berikut adalah akun Elastic Load Balancing yang akan ditentukan Principal dalam kebijakan lama. IDs Perhatikan bahwa Wilayah yang tidak ada dalam daftar ini tidak mendukung kebijakan lama.

  • AS Timur (Virginia N.) — 127311923021

  • AS Timur (Ohio) — 033677994240

  • AS Barat (California N.) — 027434742980

  • AS Barat (Oregon) — 797873946194

  • Afrika (Cape Town) — 098369216593

  • Asia Pasifik (Hong Kong) — 754344448648

  • Asia Pasifik (Jakarta) - 589379963580

  • Asia Pasifik (Mumbai) — 718504428378

  • Asia Pasifik (Osaka) — 383597477331

  • Asia Pasifik (Seoul) — 600734575887

  • Asia Pasifik (Singapura) — 114774131450

  • Asia Pasifik (Sydney) — 783225319266

  • Asia Pasifik (Tokyo) — 582318560864

  • Kanada (Tengah) — 985666609251

  • Eropa (Frankfurt am Main) — 054676820928

  • Eropa (Irlandia) — 156460612806

  • Eropa (London) — 652711504416

  • Eropa (Milan) — 635631232127

  • Eropa (Paris) — 009996457667

  • Eropa (Stockholm) — 897822967062

  • Timur Tengah (Bahrain) — 076674570225

  • Amerika Selatan (São Paulo) — 507241528517

  • AWS GovCloud (AS-Timur) — 190560391635

  • AWS GovCloud (AS-Barat) — 048591011584

Kebijakan berikut memberikan izin ke layanan pengiriman log yang ditentukan. Gunakan kebijakan ini untuk penyeimbang beban di Zona Outposts.

{ "Effect": "Allow", "Principal": { "Service": "logdelivery.elb.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }

UntukResource, masukkan ARN lokasi untuk log akses, menggunakan format yang ditunjukkan dalam kebijakan contoh. Selalu sertakan ID akun akun dengan penyeimbang beban di jalur sumber daya bucket S3 ARN. Ini memastikan bahwa hanya penyeimbang beban dari akun tertentu yang dapat menulis log akses ke bucket S3.

ARN bucket S3 yang Anda tentukan bergantung pada apakah Anda berencana untuk menyertakan awalan saat Anda mengaktifkan log akses di langkah 3.

Contoh S3 bucket ARN dengan awalan

Nama bucket S3 adalah amzn-s3-demo-logging-bucket dan awalannya adalah. logging-prefix

arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
Contoh S3 bucket ARN tanpa awalan

Nama bucket S3 adalahamzn-s3-demo-logging-bucket. Tidak ada bagian awalan di ember S3 ARN.

arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
  • Gunakan jalur sumber daya lengkap, termasuk bagian ID akun dari bucket S3 ARN. Jangan gunakan wildcard (*) di bagian ID akun ARN bucket S3.

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
  • Gunakan aws:SourceArn untuk memastikan bahwa hanya penyeimbang beban dari Wilayah dan akun tertentu yang dapat menggunakan bucket Anda.

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/*" } }
  • Gunakan aws:SourceOrgId dengan aws:SourceArn untuk memastikan bahwa hanya penyeimbang beban dari organisasi tertentu yang dapat menggunakan bucket Anda.

    "Condition": { "StringEquals": { "aws:SourceOrgId": "o-1234567890" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticloadbalancing:*:*:loadbalancer/*" } }
  • Jika Anda memiliki Deny pernyataan untuk mencegah akses ke prinsipal layanan kecuali yang diizinkan secara eksplisit, pastikan untuk menambahkan logdelivery.elasticloadbalancing.amazonaws.com ke daftar prinsip layanan yang diizinkan. Misalnya, jika Anda menggunakan aws:PrincipalServiceNamesList kondisi, tambahkan logdelivery.elasticloadbalancing.amazonaws.com sebagai berikut:

    { "Effect": "Deny", "Principal": "*", "Condition": { "StringNotEqualsIfExists": { "aws:PrincipalServiceNamesList": [ "logdelivery.elasticloadbalancing.amazonaws.com", "service.amazonaws.com" ] } } }

    Jika Anda menggunakan NotPrincipal elemen, tambahkan logdelivery.elasticloadbalancing.amazonaws.com sebagai berikut. Perhatikan bahwa kami menyarankan Anda menggunakan kunci aws:PrincipalServiceName or aws:PrincipalServiceNamesList kondisi untuk secara eksplisit mengizinkan prinsip layanan alih-alih menggunakan elemen. NotPrincipal Untuk informasi selengkapnya, lihat NotPrincipal.

    { "Effect": "Deny", "NotPrincipal": { "Service": [ "logdelivery.elasticloadbalancing.amazonaws.com", "service.amazonaws.com" ] } },

Setelah membuat kebijakan bucket, gunakan antarmuka Amazon S3, seperti konsol Amazon S3 AWS CLI atau perintah, untuk melampirkan kebijakan bucket ke bucket S3.

Console
Untuk melampirkan kebijakan bucket Anda ke bucket S3 Anda
  1. Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Pilih nama bucket untuk membuka halaman detailnya.

  3. Pilih Izin lalu pilih Kebijakan Bucket, Edit.

  4. Perbarui kebijakan bucket untuk memberikan izin yang diperlukan.

  5. Pilih Simpan perubahan.

AWS CLI
Untuk melampirkan kebijakan bucket Anda ke bucket S3 Anda

Gunakan perintah put-bucket-policy. Dalam contoh ini, kebijakan bucket disimpan ke file.json yang ditentukan.

aws s3api put-bucket-policy \ --bucket amzn-s3-demo-bucket \ --policy file://access-log-policy.json

Langkah 3: Konfigurasikan log akses

Gunakan prosedur berikut untuk mengonfigurasi log akses untuk menangkap informasi permintaan dan mengirimkan file log ke bucket S3 Anda.

Persyaratan

Bucket harus memenuhi persyaratan yang dijelaskan pada langkah 1, dan Anda harus melampirkan kebijakan bucket seperti yang dijelaskan pada langkah 2. Jika Anda menyertakan awalan, itu tidak boleh menyertakan string "AWSLogs”.

Untuk mengelola bucket S3 untuk log akses Anda

Pastikan untuk menonaktifkan log akses sebelum menghapus bucket yang dikonfigurasi untuk log akses. Jika tidak, jika ada bucket baru dengan nama yang sama dan kebijakan bucket yang diperlukan tetapi dibuat dalam bucket Akun AWS yang tidak Anda miliki, Elastic Load Balancing dapat menulis log akses untuk penyeimbang beban Anda ke bucket baru ini.

Console
Untuk mengaktifkan log akses
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Di panel navigasi, pilih Load Balancers.

  3. Pilih nama penyeimbang beban Anda untuk membuka halaman detailnya.

  4. Pada tab Atribut, pilih Edit.

  5. Untuk Monitoring, aktifkan Access logs.

  6. Untuk URI S3, masukkan URI S3 untuk file log Anda. URI yang Anda tentukan bergantung pada apakah Anda menggunakan awalan.

    • URI dengan awalan: s3:///amzn-s3-demo-logging-bucketlogging-prefix

    • URI tanpa awalan: s3://amzn-s3-demo-logging-bucket

  7. Pilih Simpan perubahan.

AWS CLI
Untuk mengaktifkan log akses

Gunakan modify-load-balancer-attributesperintah dengan atribut terkait.

aws elbv2 modify-load-balancer-attributes \ --load-balancer-arn load-balancer-arn \ --attributes \ Key=access_logs.s3.enabled,Value=true \ Key=access_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \ Key=access_logs.s3.prefix,Value=logging-prefix
CloudFormation
Untuk mengaktifkan log akses

Perbarui AWS::ElasticLoadBalancingV2::LoadBalancersumber daya untuk menyertakan atribut terkait.

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-alb Type: application Scheme: internal Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup LoadBalancerAttributes: - Key: "access_logs.s3.enabled" Value: "true" - Key: "access_logs.s3.bucket" Value: "amzn-s3-demo-logging-bucket" - Key: "access_logs.s3.prefix" Value: "logging-prefix"

Langkah 4: Verifikasi izin bucket

Setelah log akses diaktifkan untuk penyeimbang beban Anda, Elastic Load Balancing memvalidasi bucket S3 dan membuat file pengujian untuk memastikan bahwa kebijakan bucket menentukan izin yang diperlukan. Anda dapat menggunakan konsol Amazon S3 untuk memverifikasi bahwa file uji dibuat. File uji bukan berkas log akses yang sebenarnya; file tersebut tidak berisi contoh catatan.

Untuk memverifikasi file pengujian telah dibuat di bucket Anda menggunakan konsol Amazon S3
  1. Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Pilih nama bucket yang Anda tentukan untuk log akses.

  3. Arahkan ke file pengujian,ELBAccessLogTestFile. Lokasi tergantung pada apakah Anda menggunakan awalan.

    • Lokasi dengan awalan:amzn-s3-demo-logging-bucket//logging-prefix/AWSLogs/123456789012ELBAccessLogTestFile

    • Lokasi tanpa awalan:amzn-s3-demo-logging-bucket//AWSLogs/123456789012ELBAccessLogTestFile

Penyelesaian Masalah

Jika Anda menerima kesalahan akses ditolak, berikut ini adalah kemungkinan penyebabnya:

  • Kebijakan bucket tidak memberikan izin Elastic Load Balancing untuk menulis log akses ke bucket. Verifikasi bahwa Anda menggunakan kebijakan bucket yang benar untuk Wilayah tersebut. Verifikasi bahwa ARN sumber daya menggunakan nama bucket yang sama dengan yang Anda tentukan saat mengaktifkan log akses. Verifikasi bahwa ARN sumber daya tidak menyertakan awalan jika Anda tidak menentukan awalan saat Anda mengaktifkan log akses.

  • Bucket menggunakan opsi enkripsi sisi server yang tidak didukung. Bucket harus menggunakan kunci yang dikelola Amazon S3 (SSE-S3).