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 Mengonfigurasi aplikasi Anda untuk mengakhiri koneksi HTTPS pada instans 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 Application Load Balancer 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.