Ders 4.35: Ayrıcalıklı kapsayıcılar ve yetenekler
Kapsayıcının içindeki root, çekirdek için hâlâ root'tur; onu kutusunda tutan şey azaltılmış bir yetenek kümesi, seccomp, AppArmor ve ad alanlarıdır. --privileged bunların neredeyse hepsini kapatır; SYS_ADMIN gibi tek bir ek yetenek de çoğunu yeniden açar. Laboratuvarda mağazanın kapsayıcı sunucusunda üç kapsayıcı çalışıyor. Ayarlarını ve /proc'tan gerçek yetenek kümelerini okuyor, bit maskelerini çözüyor ve riskli iki kapsayıcıyı yalnızca ihtiyaç duydukları şeyle yeniden başlatıyorsun.
18 dk
Bu derste öğreneceklerin
- Privileged ve CapAdd'i docker inspect ile okumak
- Bir sürecin yetenek kümesini /proc/PID/status'tan okumak
- Bir yetenek maskesini capsh ile çözmek
- SYS_ADMIN'in neden ayrıcalıklıya yakın olduğunu açıklamak
- Bir kapsayıcıyı --cap-drop ALL ve yalnızca gereken yeteneklerle çalıştırmak
Temel terimler
- Yetenek
- root'un gücünün çekirdeğin ayrı denetlediği bir dilimi (ör. CAP_NET_BIND_SERVICE, CAP_SYS_ADMIN).
- CapEff
- Bir sürecin etkin yetenek bit maskesi; /proc/PID/status'ta.
- --privileged
- Docker seçeneği: tüm yetenekler, tüm aygıtlar, seccomp ya da AppArmor sınırı yok.
- CAP_SYS_ADMIN
- Her şeyi kapsayan yönetim yeteneği: mount, ad alanları, birçok aygıt ve çekirdek işlemi.
- capsh --decode
- Bir yetenek maskesini adlara çevirir.
- --cap-drop ALL
- Kapsayıcıyı hiç yetenek olmadan başlatır; tek tek --cap-add ile geri eklenir.
← Seccomp: bir sistem çağrısı izin listesi · Tüm dersler · Yedekler ve kurtarma →