Quantcast
Channel: 小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
Viewing all articles
Browse latest Browse all 325

Drone Secret 安全性管理

$
0
0
drone-logo_512 Drone 是一套以 Docker 容器技術為主的 CI/CD 開源專案,本篇來聊聊 Drone 如何管理專案內的 Secret 資料,首先先來定義什麼是 Secret,舉個簡單例子,如果你是透過 Drone 來完成基本打包+上傳到遠端伺服器,那一定會需要用到兩個 Plugin,就是 drone-scpdrone-ssh,而使用這兩個 plugin 需要有一組 Password 或是一把金鑰 (Public Key Authentication),在 Drone 裡面可以透過後台 UI 介面將密碼或者是金鑰內容儲存在 Secret 設定頁面。預覽圖如下: Screen Shot 2017-11-20 at 9.10.10 AM

安全性?

如果透過 Drone 後台新增的 Secret 資料都不是很安全,因為每個 Steps 都可以直接存取 Secret 資料。
pipeline:
  test1:
    image: mhart/alpine-node:9.1.0
    group: testing
    secrets: [ test46 ]
    commands:
      - echo "node.js"
      - echo $TEST46

  test2:
    image: appleboy/golang-testing
    group: testing
    secrets: [ test46, readme ]
    commands:
      - echo "golang"
      - echo $TEST46
      - echo $README
從上面可以得知,透過 appleboy/golang-testingmhart/alpine-node:9.1.0 都可以存取 test46 變數,這樣哪裡不安全?答案是,假設今天服務的是開源專案,這樣別人是不是可以發個 PR,內容新增一個步驟,將變數內容直接印出來即可。當然你可以把 Drone 的頁面關閉,只有管理者可以存取,但是這樣就失去開源專案的意義,因為貢獻者總該需要看到哪裡編譯錯誤,或者是測試失敗的地方。

透過 drone cli 管理

要解決安全性問題,必須要將 Secret 變數綁定只有特定 Image 才可以存取。而要做到此功能只能透過 drone cli 工具才可以完成。該如何使用 drone secret 指令呢?其實不會很難,drone cli 可以做的比 Web UI 還強大。所以關於 Secret 部分,我幾乎都是用 cli 來管理
$ drone secret -h
NAME:
   drone secret - manage secrets

USAGE:
   drone secret command [command options] [arguments...]

COMMANDS:
     add     adds a secret
     rm      remove a secret
     update  update a secret
     info    display secret info
     ls      list secrets

OPTIONS:
   --help, -h  show help
先假設 ssh-password 變數需要綁定在 appleboy/drone-ssh 映像檔上面,該如何下指令:
$ drone secret add \
  --name ssh-password \
  --value 1234567890 \
  --image appleboy/drone-ssh \
  --repository go-training/drone-workshop
上述例子可以用在存密碼欄位,如果是想存檔案類型呢?也就是把金鑰 public.pem 給存進變數。這邊可以透過 @檔案路徑 的方式來存取該檔案,並且直接寫入到 Drone 資料庫。注意只要是 @ 開頭,後面就必須接實體檔案路徑。
$ drone secret add \
  --name ssh-key \
  --value @/etc/server.pem \
  --image appleboy/drone-ssh \
  --repository go-training/drone-workshop

心得

將 Drone 安裝在公司內部,又想要防止團隊成員直接拿到 Pem 資料,就必須透過 drone cli 工具來達成此功能,否則當同事可以輕易拿到這把 Key 時,就可以隨時登入機器惡搞。如果你拿 Drone 管理開源專案,更是要這麼做了。上述教學,我已經錄製成影片檔放在 Udemy 線上課程,如果已經購買的朋友們,可以直接看線上教學。

Viewing all articles
Browse latest Browse all 325

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.