Konfigurasiend-to-endenkripsi di lingkungan Elastic Beanstalk dengan beban seimbang - AWS Elastic Beanstalk

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

Konfigurasiend-to-endenkripsi di lingkungan Elastic Beanstalk dengan beban seimbang

Mengakhiri koneksi yang aman pada penyeimbang beban dan menggunakan HTTP pada backend mungkin cukup untuk aplikasi Anda. Lalu lintas jaringan antara sumber daya AWS tidak dapat didengarkan oleh instans yang bukan bagian dari koneksi, meskipun mereka berjalan di bawah akun yang sama.

Namun, jika Anda mengembangkan aplikasi yang harus mematuhi peraturan eksternal yang ketat, Anda mungkin diminta untuk mengamankan semua koneksi jaringan. Anda bisa menggunakan konsol Elastic Beanstalk atau file konfigurasi untuk membuat penyeimbang beban lingkungan Elastic Beanstalk Anda terhubung ke instans backend dengan aman untuk memenuhi persyaratan ini. Prosedur berikut berfokus pada file konfigurasi.

Pertama, tambahkan pendengar yang aman ke penyeimbang beban Anda, jika Anda belum melakukannya.

Anda juga harus mengonfigurasi instans di lingkungan Anda untuk mendengarkan port yang aman dan mengakhiri koneksi HTTPS. Konfigurasi bervariasi per platform. Lihat Mengkonfigurasi HTTPS Pengakhiran pada instance untuk instruksi. Anda dapat menggunakan sertifikat yang ditandatangani sendiri untuk instans EC2 tanpa masalah.

Selanjutnya, konfigurasikan pendengar untuk meneruskan lalu lintas menggunakan HTTPS pada port yang aman yang digunakan oleh aplikasi Anda. Gunakan salah satu file konfigurasi berikut, berdasarkan jenis penyeimbang beban yang digunakan oleh lingkungan Anda.

.ebextensions/https-reencrypt-clb.config

Gunakan file konfigurasi ini dengan Classic Load Balancer. Selain mengonfigurasi penyeimbang beban, file konfigurasi juga mengubah pemeriksaan kondisi default untuk menggunakan port 443 dan HTTPS, untuk memastikan bahwa penyeimbang beban dapat terhubung dengan aman.

option_settings: aws:elb:listener:443: InstancePort: 443 InstanceProtocol: HTTPS aws:elasticbeanstalk:application: Application Healthcheck URL: HTTPS:443/

.ebextensions/https-reencrypt-alb.config

Gunakan file konfigurasi ini dengan Application Load Balancer.

option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' Protocol: HTTPS aws:elasticbeanstalk:environment:process:https: Port: '443' Protocol: HTTPS

.ebextensions/https-reencrypt-nlb.config

Gunakan file konfigurasi ini dengan Network Load Balancer.

option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' aws:elasticbeanstalk:environment:process:https: Port: '443'

Opsi DefaultProcess berikut dinamai demikian karena Application Load Balancers, yang dapat memiliki pendengar nondefault pada port yang sama untuk lalu lintas ke jalur tertentu (lihat Penyeimbang Beban Aplikasi untuk detail). Untuk Network Load Balancer, opsi menentukan satu-satunya proses target untuk pendengar ini.

Pada contoh ini, kami menamai proses https karena proses ini mendengarkan lalu lintas yang aman (HTTPS). Pendengar mengirimkan lalu lintas ke proses pada port yang ditunjuk menggunakan protokol TCP, karena Network Load Balancer hanya bekerja dengan TCP. Tidak apa-apa, karena lalu lintas jaringan untuk HTTP dan HTTPS diimplementasikan di atas TCP.

catatan

Konsol EB CLI dan Elastic Beanstalk menerapkan nilai yang direkomendasikan untuk pilihan sebelumnya. Anda harus menghapus pengaturan ini jika Anda ingin menggunakan file konfigurasi untuk mengonfigurasi hal yang sama. Lihat Nilai yang disarankan untuk rincian selengkapnya.

Dalam tugas berikutnya, Anda perlu mengubah grup keamanan penyeimbang beban untuk mengizinkan lalu lintas. Bergantung pada Amazon Virtual Private Cloud (Amazon VPC) tempat Anda meluncurkan lingkungan—VPC default atau VPC khusus—grup keamanan penyeimbang beban akan bervariasi. Pada VPC default, Elastic Load Balancing menyediakan grup keamanan default yang dapat digunakan semua penyeimbang beban. Pada Amazon VPC yang Anda buat, Elastic Beanstalk membuat grup keamanan untuk digunakan penyeimbang beban.

Untuk mendukung kedua skenario, Anda dapat membuat grup keamanan dan memerintahkan Elastic Beanstalk untuk menggunakannya. File konfigurasi berikut membuat grup keamanan dan melampirkannya ke penyeimbang beban.

.ebextensions/https-lbsecuritygroup.config

option_settings: # Use the custom security group for the load balancer aws:elb:loadbalancer: SecurityGroups: '`{ "Ref" : "loadbalancersg" }`' ManagedSecurityGroup: '`{ "Ref" : "loadbalancersg" }`' Resources: loadbalancersg: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: load balancer security group VpcId: vpc-######## SecurityGroupIngress: - IpProtocol: tcp FromPort: 443 ToPort: 443 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 SecurityGroupEgress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0

Ganti teks yang disorot dengan ID VPC default atau khusus. Contoh sebelumnya mencakup masuk dan keluar melalui port 80 untuk mengizinkan koneksi HTTP. Anda dapat menghapus properti tersebut jika Anda hanya ingin mengizinkan koneksi aman.

Terakhir, tambahkan aturan masuk dan keluar yang mengizinkan komunikasi melalui port 443 antara grup keamanan penyeimbang beban dan grup keamanan instans.

.ebextensions/https-backendsecurity.config

Resources: # Add 443-inbound to instance security group (AWSEBSecurityGroup) httpsFromLoadBalancerSG: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 SourceSecurityGroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]} # Add 443-outbound to load balancer security group (loadbalancersg) httpsToBackendInstances: Type: AWS::EC2::SecurityGroupEgress Properties: GroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 DestinationSecurityGroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}

Melakukan hal ini secara terpisah dari pembuatan grup keamanan memungkinkan Anda untuk membatasi grup keamanan sumber dan tujuan tanpa membuat ketergantungan melingkar.

Setelah Anda menyelesaikan semua tugas sebelumnya, penyeimbang beban terhubung ke instans backend Anda dengan aman menggunakan HTTPS. Penyeimbang beban tidak peduli jika sertifikat instans Anda ditandatangani sendiri atau dikeluarkan oleh otoritas sertifikat terpercaya, dan akan menerima sertifikat apa pun yang diberikan padanya.

Anda dapat mengubah perilaku ini dengan menambahkan kebijakan untuk penyeimbang beban yang memerintahkannya untuk hanya mempercayai sertifikat tertentu. File konfigurasi berikut membuat dua kebijakan. Salah satu kebijakan menentukan sertifikat publik, dan yang lain memerintahkan penyeimbang beban untuk hanya percaya sertifikat itu untuk koneksi ke instans port 443.

.ebextensions/https-backendauth.config

option_settings: # Backend Encryption Policy aws:elb:policies:backendencryption: PublicKeyPolicyNames: backendkey InstancePorts: 443 # Public Key Policy aws:elb:policies:backendkey: PublicKey: | -----BEGIN CERTIFICATE----- ################################################################ ################################################################ ################################################################ ################################################################ ################################################ -----END CERTIFICATE-----

Ganti teks yang disorot dengan konten sertifikat publik instans EC2 Anda.