π³ Docker study 6th
Last Chapter of Docker Study : Least Previlege in Docker for Autonomous Driving
by Arielle
μ§λ λͺ μ£Όκ° Azureλ₯Ό μ΄μ©ν΄ Dockerλ₯Ό 곡λΆν΄λ³΄λ©° κ½€ λ§μ κ²λ€μ λ°°μ λ€. λ¬Όλ‘ λ¨Έλ¦Ώμμ μ νν λ΄κ²μΌλ‘ λ¨μμλ κ²λ€μ΄ λ§μ§ μμ§λ§ γ γ , λμ€μ νλ‘μ νΈλ₯Ό νκ² λλ©΄ Dockerλ₯Ό μ΄μ©ν΄λ³΄μ λΌλ μ©κΈ°λ μκΈ΄ κ² κ°λ€!
λ΄κ° κ·Έκ° λ°°μ΄ Dockerλ λ‘μ»¬μ΄ μλ κ°μνκ²½κ³Ό 컨ν μ΄λλ₯Ό μ΄μ©ν΄ λ λμ κ°λ°νκ²½μ ꡬμΆν μ μκ³ , κ°μΈμ΄ μλ ν νλ‘μ νΈμμκ·Έ λ©λ¦¬νΈκ° λ νμ€ν΄μ§λ κ² κ°λ€. Dockerλ₯Ό μ΄μ©ν΄ νλμ νλ‘μ νΈμ νμ κ°κ°μΈμ 컨ν μ΄λλ₯Ό μ°κ²°ν΄ κ°λ°ν μ μλ€λ©΄? λ³΄λ€ μ μ°νκ³ ν¨μ¨μ μΈ κ³΅λ μμ μ΄ κ°λ₯ν΄μ§λ€.
μ΄λ² Docker study μλ¦¬μ¦ λ§μ§λ§ ν¬μ€ν μμλ κ΄λ¦¬μ κΆν μΈμλ κ°λ³ νμμκ² κΆνμ λΆμ¬νλ λ°©λ²μ λν΄ μ€μ΅ν΄λ³΄λ €κ³ νλ€. π
1. Add new user
νμ¬ λ΄ κ°μλ¨Έμ μ βArielleβμ΄ superuser(root)μ΄λ€. μλ‘μ΄ μ μ λ₯Ό μΆκ°νλ λ°©λ²μ κ°λ¨νλ€.
sudo adduser <new_user_name>
λ‘ μλ‘μ΄ μ μ λ₯Ό λ±λ‘ν΄μ£Όλ©΄ λλ€. New passwordλ₯Ό μ
λ ₯νλΌκ³ λμ€λλ° μ λΉν μ€μ ν΄ μ£Όλ©΄ λλ€. sudo usermdod -aG docker dataengineer
λͺ
λ Ήμ΄λ‘ docker κ·Έλ£Ήμ βdataengineerβλ₯Ό μΆκ°ν΄ docker λͺ
λ Ήμ΄λ₯Ό μ¬μ©ν μ μλλ‘ νλ€.
π¨Β μ°Έκ³ λ‘ sudo usermod -aG sudo dataengineer
μ μ΄μ©ν΄ μ κ· μ μ μκ² βArielleβκ³Ό κ°μ κΆνμ λΆμ¬ν μλ μλ€. μμμ Docker κ·Έλ£Ήμ μ κ· μ μ λ₯Ό μΆκ°ν΄ μ£Όλ λͺ
λ Ήμ΄λ λΉμ·ν΄λ³΄μ΄μ§λ§, μ΄ λͺ
λ Ήμ΄μ μ¬μ©μ μ§μ ν΄μΌ νλ€!
κ΄λ¦¬μ κΆνμ κ°κ² λλ©΄ μμ€ν μ κ±°μ λͺ¨λ μμ μ ν μ μλ κ°λ ₯ν νμ μ»κ² λλ€λ λ»μ΄λ€. λ¬Όλ‘ μ΄λ€ κ΄μ μ΄λμ λ°λΌ μλ²λ₯Ό μ§ν¬ μ μλ νμ΄ λκΈ°λ νκ² μ§λ§, μμ λ²κ·Έλ‘λ μμ€ν μ 체λ₯Ό λ€νλ€ μ μλ μλ μ κ² κ°μ μ‘΄μ¬κ° λκΈ°λ νλ€.
1.1 Risk of Security Breaches
μμ¨μ£Όν νμ¬ νλ‘μ νΈμ λ§ ν©λ₯ν μ£Όλμ΄ μμ§λμ΄κ° μλ€κ³ κ°μ ν΄ λ³΄μ! π©βπ»
λΉμ°ν μ΄μΌκΈ°μ§λ§, sudo
κ·Έλ£Ήμ μνκ² λλ©΄ μ€μ μμ€ν
νμΌμ μμ νκ±°λ μμ ν μ μλ κΆνμ μ»κ² λλ€. μμ¨μ£Όν νλ‘μ νΈμλ λ무λλ μ€μν κ΅¬μ± νμΌκ³Ό μ€μ μ΄ ν¬ν¨λμ΄ μλ€. λ§μ½ μ£Όλμ΄ κ°λ°μκ° μ€μλ‘ μ΄μμ νμν μ€μ νμΌμ μ§μ°κ±°λ μλͺ»λ λͺ
λ Ήμ μ€ννκ² λλ€λ©΄..? μμ¨μ£Όν μμ€ν
μμ²΄κ° λ²κ·Έ μ²μ§κ° λ μλ μλ€.π±
νΉν μμ¨μ£Όν μ°¨λμ νλμ μ€μλ‘ μμ μ΄ μνλ°μ μ μλ λ§€μ° μλ―Όν λΆμΌλΌ μλͺ»λ λͺ λ Ή νλκ° μμ€ν μ λ°μ κ±Έμ³ μΉλͺ μ μΈ κ²°κ³Όλ₯Ό μ΄λν κ°λ₯μ±μ΄ μλ€. κ·Έλμ λꡬλ κ΄λ¦¬μ κΆνμ λΆμ¬νλ 건 λ§€μ° μ μ€ν΄μΌ νλ€!
1.2 Ambiguity in Accountability
μμ¨μ£Όν νλ‘μ νΈλ κ° κ°λ°μκ° νΉμ μν κ³Ό μ± μμ 맑μ μμ νκ³ μμ κ²μ΄λ€. κ·Έλ°λ° κ΄λ¦¬μ κΆνμ΄ μ¬λ¬ μ¬λμκ² μ£Όμ΄μ§λ©΄ λκ° μ΄λ€ μμ μ νλμ§ νμ νκΈ° μ΄λ €μμ§λ λ¬Έμ κ° μκΈΈ κ²μ΄λ€. μλ₯Ό λ€μ΄, μμ€ν μμ κ°μκΈ° μκΈ°μΉ λͺ»ν μ€λ₯κ° λ°μνλ€λ©΄ λκ° μ΄λ€ μ€μ μ λ³κ²½ νλμ§ μ°ΎμμΌ νμ§λ§, μ¬λ¬ μ¬λμ΄ κ΄λ¦¬μ κΆνμ κ°κ³ μμΌλ©΄ μΆμ μ΄ λ³΅μ‘ν΄ μ§ κ²μ΄λ€.
μ΄λ° νΌλμ νΌνκΈ° μν΄μ κ°μμ μν μ λ§λ μ΅μνμ κΆνλ§ λΆμ¬νκ³ νμν κ²½μ°μλ§ κΆνμ νμ₯νλ κ²μ΄ λ² μ€νΈμΌ κ²μ΄λ€. μμ€ν μμ μ±κ³Ό κ°λ°μ μ λ’°μ±μ μν΄ λκ° λ¬΄μ¨ μμ μ νλμ§ λͺ ννκ² κΈ°λ‘νλ κ²μ μ νμ΄ μλ νμλ€!
1.3 Granting Minimum Necessary Privileges is Safer!
IT 보μμ κΈ°λ³Έ μμΉ μ€ νλλ μ΅μ κΆνμ μμΉμ΄λ€. νμ μ΄μμΌλ‘ κΆνμ λΆμ¬νλ 건 νΌνκ³ κ°μκ° λ§‘μ μν μ νμν κΆνλ§ λΆμ¬νλ κ²μ΄λ€. μλ₯Ό λ€μ΄, μ£Όλμ΄ μμ§λμ΄κ° Dockerλ₯Ό μ¬μ©ν μ μλλ‘ Docker κ·Έλ£Ή κΆνλ§ λΆμ¬ν΄μ£Όλ©΄ μ£Όλμ΄λ μμ¨μ£Όν νλ‘μ νΈ νκ²½μμ Docker λͺ λ Ήμ΄λ₯Ό λ¬Έμ μμ΄ μ¬μ©ν μ μλ€. (κ΄λ¦¬μ κΆνκΉμ§ μ€ νμλ μλ€!)
μ! κ·Έλ¦¬κ³ μ¬λ΄μΌλ‘ κ°λ°μλ‘μ μμ μκ² νμν κΆνμ λͺ ννκ² μꡬν μ μλ λ₯λ ₯μ μκ°λ³΄λ€ κ½€ μ€μν κ² κ°λ€. κ°λ°μκ° μ½λλ§ μ μ§λ©΄ λμ§ λΌκ³ μκ°ν μλ μμ§λ§ μ΄ μ΄μΌκΈ°λ₯Ό νλ μ΄μ λ λ°λ‘ μ νν κΆν μμ²μ΄ 보μμ μ°μ₯μ μ μκΈ° λλ¬Έμ΄λ€.
λΆνμν κΆνμ μμ²νμ§ μμμΌλ‘μ¨ μμ€ν μ 보μ 리μ€ν¬λ₯Ό μ€μΌ μ μκ³ , λλΆμ λ―Όκ°ν λ°μ΄ν°λ μ€μ μ΄ λΆνμνκ² λ ΈμΆλ μνλ μ€μ΄λ€κ² λ κ²μ΄λ€. κ·Έλ¦¬κ³ λ§€λμ λ νμμ΄ μ΄λ€ κΆνμ΄ νμνμ§ μ νν νμ ν μ μμ΄ μ 무μ νμν κΆνμ μ μμ μ 곡νλ©° νμ μ ν¨μ¨λ ν¬κ² λμμ§κ² λλ€.
보μκ³Ό ν¨μ¨μ±, λ λ§λ¦¬ ν λΌλ₯Ό μ‘μ μ μκ² λλ κ²μ΄λ€! π
2. Let new user access to VM with xrdp
<π³Β Docker Study 2nd, 3. Connect to GUI via RDP (MAC)> μμ XRDPλ₯Ό μ΄μ©ν΄ λ°μ€ν¬νμ μ΄μ©ν΄ κ°μλ¨Έμ μ μ μν μ μλλ‘ νλ€.μ κ· μ μ (dataengineer) μμ λμΌν κ³Όμ μ μ§ννλ€. λ€λ₯Έ μ μ κ·Έλ£Ή κΈ°λ° κΆνμ ν΅ν΄ νΉμ κ·Έλ£Ήμ μ μ μκ²λ§ μ κ·Όμ νμ©νλλ‘ κ΅¬μ±ν μ μ΄λ€. (κΈ°μ‘΄ λ΄μ©κ³Ό λΉκ΅ν΄λ³΄λ κ²μ μΆμ²νλ€!)
κ°μ₯ λ¨Όμ sudo groupadd tsuser
μΌλ‘ tsusers κ·Έλ£Ήμ μμ±ν΄ μ£Όμλ€. μ΄ν sudo usermod -aG tsusers dataengineer
λ‘ βdataengineerβ, sudo usermod -aG tsusers Arielle
βArielleβμ tsusers κ·Έλ£Ήμ μΆκ°ν΄ μ£Όμλ€. (λͺ
λ Ήμ΄ μ
λ ₯ μμλ μκ΄ μμ!)
κ·Έ λ€μμλ sudo nano /etc/xrdp/sesman.ini
νμΌμ μμ ν΄ μ£Όμλ€. [Security] μΉμ
μμ TerminalServerUsers=tsusers νμΈνκ³ , AlwaysGroupCheck=true λ‘ λ³κ²½ν΄ μ£Όμλ€. (νλ¨ μ¬μ§ μ°Έκ³ π)
μ΄ν su dataengineer
μ€ν μ, Arielle@kaggle-linux-gpu-vm β dataengineer@kaggle-linux\gpu-vmμΌλ‘ κ°μλ¨Έμ μ μ μ κ° λ³κ²½λλ κ²μ νμΈν μ μλ€. (su : switch user)
μ°Έκ³ λ‘ echo xfce4-session > ~/.xsession μ κ²½μ° μ¬μ©μκ° XRDPμ κ°μ μ격 μ μμ ν΅ν΄ λ‘κ·ΈμΈν λ μλμΌλ‘ XFCE λ°μ€ν¬ν νκ²½μ μμνλλ‘ νλ μν μ νλ€.
μ¬κΈ°κΉμ§ μλ‘μ΄ μ μ (dataengineer)λ₯Ό μμ±νκ³ , μ μ μκ² Remote Desktop Protocol(XRDP)λ‘ μ κ·Ό κ°λ₯νλλ‘ μ€λΉν΄μ£Όμλ€. λ€μ λ¨κ³λ μ΄ μλ‘μ΄ μ μ μκ² KEYλ₯Ό μ¬μ©ν΄ κ°μλ¨Έμ μ μ κ·Όν μ μλλ‘ μ€μ ν΄ μ£Όμ΄μΌ νλ€. <3. ssh key creation by admin> μΌλ‘ κ³μ μ§νν΄μ£Όλ©΄ λλ€! π
3. ssh key creation by admin (Admin Role)
κΈ°μ‘΄μ κ°μλ¨Έμ μ μ κ·ΌνκΈ° μν΄μ sshν΄λλ₯Ό μμ± ν .pem νμΌμ κ°μλ¨Έμ ν€λ₯Ό μ μ₯ν΄ λμμλ€. μλ‘μ΄ μ μ μμ λ§μ°¬κ°μ§λ‘ sshν΄λλ₯Ό μμ± ν κΈ°μ‘΄ ν€μ λν κΆνμ λΆμ¬ν΄ μ£Όμ΄μΌ νλ€. μ¬λ¬ λ¨κ³κ° νμνμ§λ§ μ¬μ€ κ·Έλ κ² μ΄λ ΅μ§ μμμ νλμ© μ²μ²ν λ°λΌκ°λ©΄ μ½κ² μ§νλ κ²μ΄λ€!
1οΈβ£Β μλ‘μ΄ μ μ μ λν΄ mkdir ~/ssh
sshν΄λλ₯Ό μμ±ν΄ μ£Όμλ€.
2οΈβ£Β touch ~/ssh/authorized_keys
λͺ
λ Ήμ μ¬μ©ν΄ ssh λ΄λΆ λλ ν 리μ authorized_keys νμΌμ λ§λ€μ΄ μ£Όμλ€.
3οΈβ£Β chmod 700 ~/.ssh
λ‘ ν΄λΉ ν΄λμ λν κΆνμ μ€μ νλ€.
μ°Έκ³ λ‘ μ¬κΈ°μ 700μ λν΄μ μ κΉ μ΄μΌκΈ°ν΄λ³΄μλ©΄! κΆνμ νμ© λ²μμ λ°λΌ μ΄ μ«μκ° λ¬λΌμ§ μ μλ€. 700μ μ½κΈ°(4), μ°κΈ°(2), μ€ν(1)μ κΆνμ λν΄μ λ§λ κ²μ΄λ€. μ‘°κΈλ§ λ μμΈν μ΄μΌκΈ°ν΄λ³΄λ©΄ μλμ κ°λ€!
- 7 (4 + 2 + 1) : μμ μμκ² μ½κΈ°, μ°κΈ°, μ€νμ λͺ¨λ κΆνμ λΆμ¬ (νμ¬ μ μ )
- 0 : κ·Έλ£Ήμλ μ κ·Ό κΆνμ΄ μμ (νμ¬ μ μ κ° μν κ·Έλ£Ή)
- 0 : λ€λ₯Έ μ¬μ©μμκ²λ μ κ·Ό κΆν μμ (κ·Έ μΈμ μ¬μ©μ)
μ¦, dataengineer μ μ μκ²λ§ ν΄λΉ ν΄λλ₯Ό μ΄μ΄λ³΄κ³ μμ νκ³ μ€νν μ μλ κ²μ΄λ€. μ΄λ κ² μ΄ν΄νλ©΄ μΆν λ΄κ° νΉμ μ μ μκ² κΆνμ μΈλ°νκ² λΆμ¬ν μ μμ κ²μ΄λ€!
4οΈβ£Β authorized_keys νμΌμλ chmod 600 ~/.ssh/authorized_keys
μΌλ‘ 보μμ±μ λμ¬ μ£Όμλ€. ν΄λΉ νμΌμ μ€μ SSH Key 리μ€νΈκ° λ€μ΄ μλ€. λ°λΌμ 600(4+2)λ‘ μ€ν κΆνμ μ£Όμ§ μμλ€.
μΌλ¨, λλ μ¬κΈ°μ μ sshμ²λΌ 700κΆνμ λΆμ¬νμ§ μμλμ§ κΆκΈνλ€. κ·Έλμ μ‘°κΈ λ μ°Ύμ보λ μ¬μ€ λΉμ°ν μ΄μ μλ€. authorized_keys νμΌμλ SSH μ μμ νμ©νλ κ³΅κ° ν€ λͺ©λ‘λ§ μ μ₯λμ΄ μλ€. μ΄ νμΌ μμ²΄κ° μ€νλλ νλ‘κ·Έλ¨μ΄λ μ€ν¬λ¦½νΈκ° μλλΌλ κ²μ΄ ν¬μΈνΈλ€! κ·Έλμ μ€ν κΆνμ μ€ νμκ° μκ³ μ€νλ € μ£Όλ κ² λ³΄μ μΈ‘λ©΄μμ λΆνμνκ² κΆνμ λνλ μΌμ΄ λλ²λ¦°λ€. λ°λΌμ μ½κΈ°μ μ°κΈ° κΆνλ§ μ€μ νλ©΄ μΆ©λΆνκ³ , μμμ μ€λͺ ν Principle of Least Privilege(μ΅μ κΆνμ μμΉ)κ³Ό λ± λ§μ λ¨μ΄μ§λ€! π
5οΈβ£ ssh-keygen -t rsa -m PEM
λͺ
λ Ήμ΄λ‘ dataengineer μ¬μ©μλ§μ PEM νμμ μλ‘μ΄ SSH ν€ μμ μμ±ν΄ μ£Όμλ€. βEnter file in which to save the keyβ¦β λΌκ³ ν€λ₯Ό μ μ₯ν νμΌμ μ
λ ₯νλΌλ λ©μΈμ§κ° λμ¬ν
λ°, Enterν€λ₯Ό λλ¬ κΈ°λ³Έ μμΉ(/home/dataengineer/.ssh/id_rsa)λ₯Ό μ νν΄μ£Όλ©΄ λλ€. μ΅μ’
μ μΌλ‘ .pubμΌλ‘ λλμ§ μλ κ°μΈν€μ .pubμΌλ‘ λλλ κ³΅κ° ν€κ° μμ±λλ νμΈν΄ μ£Όλ©΄ λλ€!
<1οΈβ£~5οΈβ£Β μλ μ¬μ§ μ°Έκ³ π >
6οΈβ£Β nano ~/.ssh/authorized_keys
λ‘ ν΄λΉ νμΌμ μ κ·Όν΄λ³΄λ©΄ μ무κ²λ μμ κ²μ΄λ€. μ΄ κ³³μ μμμ 5οΈβ£Β μμΒ μμ±ν κ³΅κ° ν€(public key)λ₯Ό 볡μ¬ν΄ μ£Όμ΄μΌ νλ€!
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
λͺ
λ Ήμ΄λ‘ κ³΅κ° ν€λ₯Ό 볡μ¬ν΄ μ£Όλ©΄ λλ€. μ€ν νλ©΄μ λ³΄κ³ μ΄μΌκΈ° ν΄λ³΄λ‘ νμλ©΄, νμ¬ .ssh ν΄λμ authorized_keys, id_rsa, id_rsa.pub νμΌμ΄ μλ κ²μ νμΈν μ μλ€. κ°κ°μ νμΌ νΉμ§μ μλμ κ°λ€.
- authorized_keys
- id_rsa.pub : public key(κ³΅κ° ν€)
- id_rsa : private key(κ°μΈ ν€)
λ§μ½ μΈλΆμμ id_rsaλΌλ private keyλ₯Ό μ΄μ©ν΄ μΈλΆμμ κ°μλ¨Έμ μ μ κ·Όνλ €κ³ ν λ, private keyμ authorized keysνμΌ λ΄λΆμ μλ public keyμ 맀μΉμμΌ μ°κ²° νΉμ κ±°μ νλ λ°©μμΌλ‘ μ§νλλ€.
7οΈβ£Β 6οΈβ£μμ 곡κ°ν€λ₯Ό authorized_keysλ‘ λ³΅μ¬ ν΄μ£ΌμμΌλ μ΄λ²μ nano ~/.ssh/authorized_keys
μ€νμμΌλ³΄λ©΄ key λ΄μ©μ΄ λ€μ΄μμ κ²μ΄λ€.
μ 체λ₯Ό 볡μ¬ν ν kaggle-linux-gpu-vm_key_dataengineer.pem μ΄λΌλ νμΌλ‘ ssh ν΄λμ μ κ· μ μ λ§μ ν€λ₯Ό μμ±ν΄ μ£Όμλ€.
8οΈβ£Β βdataengineerβ μ μ λ‘ μ€μ ν΄λΉ κ°μλ¨Έμ μ μ μν΄λ³΄λ©΄ μ μμ μΌλ‘ μ€νλ¨μ νμΈν μ μμ κ²μ΄λ€! (ssh -i <μ κ· μ μ pemν€> <μ μ μ΄λ¦>@<κ°μλ¨Έμ IP>
)
4. User Setting: ssh key creation by admin (User Role)
μ΄μ μλ‘μ΄ μ μ , dataengineerκ° κ°μλ¨Έμ μΌλ‘ μμ μ μ§ννκΈ° μν΄μλ λ‘컬과 κ°μλ¨Έμ μ μ°κ²°ν΄μΌ νλ€. μ¬μ€ λ‘컬μμ κ°μλ¨Έμ μ μ°κ²°νλ κ³Όμ μ μ΄λ―Έ κΈ°μ‘΄ ν¬μ€ν μμ μ€λͺ ν λ΄μ©μ΄λ€. μ 리 λ λ΄μ©μ πΒ Remote Tunnel Connect λ§ν¬μμ νμΈν΄μ£Όλ©΄ λλ€!
πΒ Remote Tunnel Connect (πκ΄λ ¨λ΄μ© μ°Έκ³ )
- ssh μ°κ²°
- RDP(Remote Desktop Protocol) GUI μ°κ²°
- Chrome μ€μΉ
- Visual Studio Code μ€μΉ
β μ¬κΈ°μ μ κΉ! μ κ· μ μ μ€μ μ μμμΌ ν μ
μΌλ°μ μΌλ‘λ μ μ μ κ° κ°μλ¨Έμ μ μ μνλ €λ©΄ Chromeμ΄λ VSCode κ°μ ν΄μ΄ νμν μλ μλλ°, μ΄ κ²½μ°λ λ³λλ‘ μ€μΉνμ§ μμλ λλ€! μλνλ©΄ κ΄λ¦¬μ(Arielle)κ° μ΄λ―Έ μ€μΉνκΈ° λλ¬Έμ΄λ€.
μ΄κ² λ¬΄μ¨ λ§μΈκ° μΆμ μ μλ€. μ κ· μ μ λ μννΈμ¨μ΄λ₯Ό μ€μΉν μ μ΄ μλλ° λ§μ΄λ€.
κ·Έ μ΄μ λ κ΄λ¦¬μκ° Chromeκ³Ό VSCodeλ₯Ό μ΄λ―Έ μμ€ν λ 벨μ μ€μΉνκΈ° λλ¬Έμ μ κ· μ μ λ μ΄ μννΈμ¨μ΄λ€μ κ·Έλλ‘ μ¬μ©ν μ μλ€. μ΄ λ§μΈμ¦, μμ€ν μ ν λ² μ€μΉλ μννΈμ¨μ΄λ μ¬λ¬ μ μ κ° κ³΅μ©μΌλ‘ μ¬μ©ν μ μλ μνκ° λλ κ²μ΄λ€.
κ³μν΄μ λ°λ³΅λλ λ§μ΄κΈ΄ νμ§λ§ κΈ°μ΅ν μ μ, κ΄λ¦¬μ κΆνμ μ μ μ μκ² λΆμ¬νμ§ μλλ€λ μμΉμ΄λ€.(λ°λ³΅λλ κ²μ 보λ κ½€ μ€μν λΆλΆμ!) κ΄λ¦¬μλ μμ€ν μ 체μ μ€μ μ λ³κ²½ν μ μμ§λ§ μΌλ° μ μ μκ²λ λΆνμν κΆνμ μ£Όμ§ μλ κ²μ΄ 보μμ μ μ§νλ λ° μ€μν μ μ λ€μνλ² λ¨Έλ¦Ώμμ μ 리νλ©΄ μ’κ² λ€.
λλ MACμ μ¬μ©νκ³ μμΌλ Window Appμ ν΅ν΄ dataenginner μ μ λ‘ μ μν΄μ£Όμλ€. μ΄ν VSCode β Account β Turn on Remote Tunnel Access β Install as a service β Sign in with Github (Use weaker encryption λ²κ·Έ μ°Έκ³ ) μΌλ‘ μ§νν΄ μ£Όμλ€.
λ‘컬μ VSCodeλ‘ λμμ dataenginnerμ Tunnel λ°©μμΌλ‘ μ μν΄ μ£Όμλλ μ μμ μΌλ‘ μ μλ¨μ νμΈνλ€!
5. The connection between autonomous driving and Docker ππ€
Docker μλ¦¬μ¦ λ§μ§λ§ ν¬μ€ν μ΄λ λ§νΌ, Dockerλ₯Ό 곡λΆνκ² λ κ°μ₯ ν° μ΄μ μΈ μμ¨μ£Όν κ°λ°μ νΉμ΄μ μ λν΄ μ΄μΌκΈ°ν΄λ³΄λ €κ³ νλ€. μμ¨μ£Όνμ 곡λΆν΄λ³΄μ! λΌκ³ λ§μ λ¨Ήμμ λ μμ²λκ² μ¬λͺ κ° μλ μ΄μ λ μμλ€. μμ§ν λ§νλ©΄ κ·Έμ μ¬λ μμ΄ μ£Όννλ μλμ°¨λ₯Ό λ³΄κ³ μμλ λνλ―Όμ΄ ν°μ Έμ μ¬κΈ°κΉμ§ μλ¬κΉ π?
μλ¬΄νΌ μ΄ μΈμμ μ²μ λ€μ΄μμ 곡λΆλ₯Ό ν΄λ³Έ μκ°μ.. μ λ§μ΄μ§ λ€μν μΌμλ€κ³Ό κ·Έμ λ°λ₯Έ μμ²λ μμ λ°μ΄ν°λ€κΉμ§.λ무λλ λ€μν μμ€ν λ€μ΄ μ€μκ°μΌλ‘ μνΈμμ©ν΄μΌ νλ ꡬ쑰μλ€. μ μμ¨μ£Όν μ΅μ μ΄ λΉμΈκ³ 빨리 μμ©νλμ§ μλμ§μ λν΄ λ°λ‘ μκΈνκ² λμλ€.
λ체 μ΄λ° μμ€ν μ μ΄λ»κ² μ²λ¦¬νκ³ μλκ° μ°Ύμ보λ Dockerμ κ°μ κ°μν, 컨ν μ΄λ κΈ°μ λ‘ μμ¨μ£Όν κ°λ°μ 볡μ‘μ±μ ν΄κ²°νλ κ² κ°μλ€. κ°μ₯ λ¨Όμ μΌμλ€! Lidar, Rader, Camera, GPSλ μΌλ°μΈλ€λ μκ³ μλ μμ¨μ£Όνμ μΌμλ€μ΄λ€. κ·Έλ°λ° μ΄ μΌμλ€μ΄ μ²λ¦¬νλ λ°μ΄ν°μ μ©λμ΄ μ λ§ μ΄λ§λ¬΄μνλ°, μ΄ λ Docker κΈ°μ μ μ¬μ©ν΄ μΌμ νΉμ μμ€ν μ νμν λΌμ΄λΈλ¬λ¦¬λ μ’ μμ±(dependencies)μ 컨ν μ΄λλ³λ‘ κ΄λ¦¬ν μ μμ΄ λ€λ₯Έ μΌμλ€κ³Όμ μΆ©λ μμ΄ λ 립μ μΌλ‘ μλ ν μ μλ€.
μ€μ λ‘ μμ¦ μΌμ μ²λ¦¬μ νΈλλλ Sensor Fusion(μΌμ μ΅ν©)μ΄λ€. κ°κΈ° μΌμλ§λ€ μ₯λ¨μ λ€μ΄ λͺ νν΄ μ₯μ λ€μ μ΅λνμΌλ‘ λ°νν μ μλλ‘ μμ€ν μ μ²λ¦¬νλ κ²μ΄λ€. μ£Όκ°μλ μΉ΄λ©λΌλ₯Ό μ΄μ©ν΄ κ°μ²΄λ₯Ό νμ§νκ³ , μ μ²ν νΉμ μΌκ°μλ λ€λ₯Έ μΌμλ€μ μ°λ κ²μ΄ ν¨μ¬ λ μμ νκ³ , κ²½μ μ μΈ κ²μ΄ ν΅μ¬μ΄λ€.
μ΄λ κ² νκ²½μ μν₯μ λ§μ΄ λ°λ μμ¨μ£Όν νΉμ± μ μ€μ λ‘ λ€μν ν΄κ³Ό λΌμ΄λΈλ¬λ¦¬λ€μ΄ μꡬλκ³ μλλ° μ¬μ§μ΄ μ΄ λͺ¨λ κ²λ€μ΄ Sensor Fusionμ λ§κ² λμμ! μλν΄μΌνλ€. μ΄λ Dockerλ μ£Όν νκ²½ λ³λ‘ 컨ν μ΄λ μ΄λ―Έμ§λ‘ μ μ₯ν΄ λκ³ , νμν λλ§λ€ λΆλ¬μ μ¬μ©ν μ μλ€. μ΄κ² λ΄κ° λλ μμ¨μ£Όν μμ§λμ΄κ° Dockerλ₯Ό λ°°μμΌ νλ κ°μ₯ ν° μ΄μ λ€.
λΉ λ°μ΄ν°, DB μμ μ λ£κ³ νΉμ 곡λΆν΄λ΄€λ€λ©΄ Roll Back(λ‘€λ°±)μ λν΄ λ€μ΄ λ΄€μ κ²μ΄λ€. μμ€ν μ΄λ μννΈμ¨μ΄ μ λ°μ΄νΈ μ΄νμ λ°μνλ λ¬Έμ λ€μ μ΄μ λ²μ μΌλ‘ λλλ¦°λ€λ κ°λ μΈλ°, Dockerμ μ΄λ―Έμ§ λ²μ κ΄λ¦¬λ‘ μ½κ² λ‘€λ°± ν μ μλ€. (μ΄ λΆλΆμ μ리μ¦μμ λ€λ£¨μ§ μμ λ΄μ©μ΄λΌ λ 곡λΆν΄λ³΄λ €κ³ νλ€.)
Tesla, Waymo κ°μ μμ¨μ£Όν κΈ°μ λ€μ μ€μ λ‘ μννΈμ¨μ΄ μ λ°μ΄νΈλ₯Ό ν΅ν΄ μ£Όν μμ μ±μ λμ΄κ³ μλλ°, μ½κ°μ© κ·Έ μκΈ°λ νμ¬λ§λ€ λ€λ₯Έ κ² κ°λ€.Teslaλ OTA(Over-the-Air) λ°©μμΌλ‘ μ°¨λμ΄ μ€μκ° λ°μ΄ν°λ‘ μκ°νμ΅ μ λ°μ΄νΈλ₯Ό μ§ννκΈ°μ κ½€ μ¦μ νΈμ΄κ³ , Waymoλ μ£Όν ꡬμ λ³λ‘ μΌμ ν μ£ΌκΈ°μ λ°λΌ μ λ°μ΄νΈλ₯Ό μ§ννλ€.
ν΅μ¬μ μμ¨μ£Όν μννΈμ¨μ΄λ κΎΈμ€ν μ λ°μ΄νΈμ κ΄λ¦¬κ° νμλΌλ κ²μ΄λ©° μ΄ λ λ컀μ μ΄λ―Έμ§ Roll Back π κΈ°λ₯μ΄ μ λ°μ΄νΈ μ λ°μνλ λ¬Έμ λ₯Ό λΉ λ₯΄κ² λλλ € μμ€ν μ μμ μ±μ μ μ§ν΄μ£ΌκΈ°λ νκ³ , μ κ· μ λ°μ΄νΈλ₯Ό μ μ©νκΈ° μ μ λ€μν μ£Όν νκ²½μμ μΆ©λΆν ν μ€νΈ ν΄λ μλ μνλ‘ μ½κ² λλ릴 μ μλ€.
μ΄ μΈμλ λ€μν μ΄μ λ€μ΄ μκ² μ§λ§ μ΄μ λλ‘λ§ μ 리ν΄λ μμ¨μ£Όν μμ§λμ΄μκ² Dockerλ νμμΆ©λΆμ‘°κ±΄μ΄ μλκΉ μκ°νλ€.
μ΄λ² Docker study 6thμ λμΌλ‘ λ컀 μ리μ¦κ° λλ¬λ€. μ리μ¦κ° λλ¬λ€κ³ νλ€ λ΄κ° λ컀μ λν΄ λͺ¨λ κ±Έ μκ² λμλ€κ³ μ λλ‘ μ λλ‘ μκ°νμ§ μλλ€. μ€νλ € μ΄μ λ΄κ° μΆν λ컀μ μ΄λ€ μΈλΆμ μΈ μ리μ¦λ₯Ό μ€λΉν΄μΌ νλμ§ μκ² λμλ€κ³ λ§νλ κ² λ μ νν κ² κ°λ€.
Microsoft Certified: Azure AI Fundamentals AIμ λ¨Έμ λ¬λμ κΈ°λ³Έμ λ°νμΌλ‘ ν΄λΌμ°λ νκ²½μμ λ°°ν¬νλ κ³Όμ μ λ€λ£¬ μ격μ¦μ΄λ€. μκ° μ§λλ©΄ μμ΄λ²λ¦΄κ² λ»νλ Dockerμ λν΄ λ¨Έλ¦¬μμ μ‘°κΈμ΄λ λ¨μμ λ νλ² λμ ν΄λ³΄λ €κ³ νλ€.π«
Reference
What is the Principle of Least Privilege?_Google Cloud Tech
Fusion of Imaging Radar and Camera Sensors: Elevating Autonomous Vehicle Reliability
Tesla vs Waymo: The Battle for Autonomous Vehicle Leadership
Subscribe via RSS