Cara menggunakan Docker untuk pengasingan keselamatan kontena dan pengurusan kebenaran

王林
Lepaskan: 2023-11-07 10:19:44
asal
771 orang telah melayarinya

Cara menggunakan Docker untuk pengasingan keselamatan kontena dan pengurusan kebenaran

Dengan perkembangan pesat teknologi kontena, isu keselamatan secara beransur-ansur menarik perhatian orang ramai. Dalam persekitaran penggunaan kontena, pengasingan keselamatan dan pengurusan kebenaran kontena adalah penting. Artikel ini akan memperkenalkan cara menggunakan Docker untuk pengasingan selamat dan pengurusan kebenaran bagi bekas, dan memberikan contoh kod untuk membantu pembaca memahami dengan lebih baik.

1. Gunakan pengguna dan kumpulan untuk pengasingan keselamatan

Secara lalai, Docker menggunakan keistimewaan pengguna root apabila dijalankan dalam bekas. Jika tidak dihadkan, bekas itu akan mempunyai semua kebenaran hos, yang jelas tidak selamat. Oleh itu, untuk menjadikan bekas Docker lebih selamat, kami perlu mengehadkan kebenaran bekas itu. Satu cara untuk melakukan ini adalah melalui pengasingan keselamatan melalui pengguna dan kumpulan.

  1. Buat pengguna dan kumpulan baharu

Pertama, kita perlu mencipta pengguna dan kumpulan baharu dalam imej Docker untuk mengehadkan kebenaran bekas. Gunakan arahan berikut untuk mencipta pengguna dan kumpulan baharu dalam Dockerfile.

RUN groupadd -r mygroup && useradd -r -g mygroup myuser
Salin selepas log masuk

Arahan ini akan mencipta pengguna baharu bernama "myuser" dan menambahkannya pada kumpulan baharu bernama "mygroup". Gunakan parameter "-r" untuk menetapkan pengguna dan kumpulan ke tahap sistem.

  1. Menukar Pengguna dan Kumpulan

Selepas mencipta pengguna dan kumpulan baharu, kita perlu bertukar kepada pengguna baharu dalam aplikasi dalam bekas. Ini boleh dicapai dengan menetapkan ENTRYPOINT atau CMD.

USER myuser
Salin selepas log masuk

Kemudian, kita boleh bertukar ke kumpulan baharu dengan arahan berikut.

RUN chgrp mygroup /path/to/file
Salin selepas log masuk

Arahan ini menukar kumpulan fail /group/to/file kepada "mygroup".

2. Gunakan ruang nama bekas untuk pengasingan selamat

Ruang nama bekas ialah ciri kernel Linux yang membenarkan pengasingan logik proses dan sumber. Dengan menggunakan ruang nama kontena, anda boleh mencipta persekitaran berjalan terpencil antara bekas, dengan itu meningkatkan keselamatan kontena.

  1. Rangkaian Pengasingan

Menggunakan pengasingan rangkaian, anda boleh mengasingkan bekas daripada hos dan bekas lain. Kita boleh mengasingkan bekas daripada rangkaian peribadi menggunakan arahan berikut.

docker run --net=bridge --name=mycontainer imagename
Salin selepas log masuk
  1. Asingkan PID

Menggunakan pengasingan PID, anda boleh mengasingkan bekas daripada proses lain pada hos. Kita boleh mengasingkan bekas dengan PID peribadi menggunakan arahan di bawah.

docker run --pid=container:target_container --name=mycontainer imagename
Salin selepas log masuk
  1. Asingkan UTS

Menggunakan pengasingan UTS, anda boleh mengasingkan bekas daripada hos. Gunakan arahan di bawah untuk mengasingkan bekas dengan UTS peribadi.

docker run --uts=private --name=mycontainer imagename
Salin selepas log masuk

3 Gunakan Seccomp untuk pengurusan kebenaran

Seccomp ialah fungsi kernel Linux yang digunakan untuk mengehadkan akses proses kepada panggilan sistem. Menggunakan Seccomp, anda boleh mentakrifkan panggilan sistem bahawa proses dibenarkan untuk dilaksanakan, dengan itu mengurangkan risiko proses yang mengeksploitasi kelemahan peningkatan keistimewaan. Dalam Docker, anda boleh menggunakan dasar Seccomp untuk mengehadkan keupayaan bekas.

  1. Buat profil Seccom

Mula-mula, kita perlu mencipta profil Seccomp. Anda boleh menggunakan editor teks untuk mencipta fail yang dipanggil "seccomp.json" dan mentakrifkan panggilan sistem yang dibenarkan oleh bekas.

{
    "defaultAction": "SCMP_ACT_ALLOW",
    "syscalls": [
        {
            "name": "write",
            "action": "SCMP_ACT_ERRNO",
            "args": [
                { "index": 0, "value": 1 },
                { "index": 1, "value": 2 }
            ]
        },
        {
            "name": "open",
            "action": "SCMP_ACT_ALLOW"
        },
        {
            "name": "close",
            "action": "SCMP_ACT_ALLOW"
        }
    ]
}
Salin selepas log masuk

Dalam contoh di atas, panggilan sistem "tulis" dan "buka" dibenarkan, dan panggilan sistem "tutup" dibenarkan ditutup.

  1. Gunakan dasar Seccomp pada bekas

Gunakan arahan di bawah untuk menggunakan dasar Seccomp pada bekas.

docker run --security-opt seccomp=./seccomp.json --name=mycontainer imagename
Salin selepas log masuk

Di sini, kami menetapkan fail seccomp.json sebagai fail konfigurasi dasar Seccom bagi bekas semasa membuat bekas.

Ringkasan

Artikel ini memperkenalkan cara menggunakan Docker untuk pengasingan keselamatan dan pengurusan kebenaran kontena, termasuk menggunakan pengguna dan kumpulan, menggunakan ruang nama kontena dan menggunakan Seccomp. Dengan aplikasi kontena yang meluas pada masa hadapan, keselamatan kontena akan menarik lebih banyak perhatian. Adalah disyorkan bahawa pemaju dan kakitangan operasi dan penyelenggaraan mesti mengukuhkan pengasingan keselamatan dan pengurusan kebenaran kontena apabila menggunakan kontena.

Atas ialah kandungan terperinci Cara menggunakan Docker untuk pengasingan keselamatan kontena dan pengurusan kebenaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan