iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 18
0
Microsoft Azure

Azure 的奇幻之旅系列 第 18

Azure 系列文(18) - Key Vault 保護你的安全資訊 - (Pipeline)

前幾篇提到了Kubernetes、Linux如何透過指派角色,藉此得到Key Vault的內容,但平常我們在操作Pipeline的時候也會有機會把重要的資訊放在裡面(?),剛好前面幾篇也有講到Pipeline的部分,學會了部署,接下來就需要學會如何控制安全性!

準備

  • Azure 帳號
  • Pipeline
  • Azure Devops

建立Pipeline

建立Pipeline這邊就不贅述了,可以透過這篇的範例實作一次,就可以有一條Pipeline了

建立Key Vault

已經有Key Vault的資源可以先跳過本節

先透過Azure CLI登入

az login

接下來創立資源群組

az group create --name <your-resource-group>

建立Key Vault

az keyvault create --name <your-key-vault> --resource-group <your-resource-group>

新增Key

az keyvault secret set --name "MySecret" --value "mysecretpassword" --vault-name <your-key-vault>

Pipeline 整合Key Vault

首先到編輯Pipeline的地方,可以在右方的地方搜尋Key Vault
https://ithelp.ithome.com.tw/upload/images/20200927/20127994vzi5De8R6a.png

接下來選擇你的一些資訊,訂用帳戶、Key Vault名稱...等等的
https://ithelp.ithome.com.tw/upload/images/20200927/201279945DFws7Pqn2.png

再來按下新增就可以看到出現在YAML了
https://ithelp.ithome.com.tw/upload/images/20200927/20127994LebdFuryh5.png

再來可以驗證一下有沒有正確的輸出,之後把Pipeline Save

- script: echo $(MySecret) > secret.txt

- publish: secret.txt

然後跑了Pipeline之後發現有報錯,原來是要先去Key Vault授權
https://ithelp.ithome.com.tw/upload/images/20200927/20127994e7wFlRN37j.png

Key Vault授權

首先到Key Vault的資源,並且到存取原則,新增存取原則
https://ithelp.ithome.com.tw/upload/images/20200927/2012799442MvP3aqBt.png

秘密權限
https://ithelp.ithome.com.tw/upload/images/20200927/20127994cTGlK8ery2.png

之後選擇服務主體,搜尋你的Devops Projec的名稱,然後選擇即可,完成之後按下建立
https://ithelp.ithome.com.tw/upload/images/20200927/201279949i5Qd7NR1q.png

回到Key Vault的時候就可以看到有一條新增的存取原則在上面了,但是,記得按下儲存!!
https://ithelp.ithome.com.tw/upload/images/20200927/20127994P4ohDMUFyA.png

驗證Key Vault

再來我們可以透過我們上面加入Pipeline的YAML程式區塊,將秘密貼到txt檔案裡面,切記: 要把$(mySecret)的地方改成你的Key Vault裡面的Secret名稱
https://ithelp.ithome.com.tw/upload/images/20200927/20127994ydZFJZYWIl.png

接下來我們就可以看看我們有沒有取得成功,可以看到Pipeline的詳細資訊裡,有一個1 published的地方,點進去
https://ithelp.ithome.com.tw/upload/images/20200927/20127994HCL6ZQH2Zr.png

就可以看到已經把secret.txt publish成功囉!!
https://ithelp.ithome.com.tw/upload/images/20200927/20127994qm65H9JToy.png

那其實取得$(mySecret)的時候就可以拿來使用了,不一定要透過輸出到txt,那Pipeline整合Key Vautl的方式只需要這些步驟就可以完成了,是不是很簡單呢~!!


上一篇
Azure 系列文(17) - Key Vault 保護你的安全資訊 - (Kubernetes - 受控識別)
下一篇
Azure 系列文(19) - Azure Spring Cloud
系列文
Azure 的奇幻之旅30

尚未有邦友留言

立即登入留言