前幾篇提到了Kubernetes、Linux如何透過指派角色,藉此得到Key Vault的內容,但平常我們在操作Pipeline的時候也會有機會把重要的資訊放在裡面(?),剛好前面幾篇也有講到Pipeline的部分,學會了部署,接下來就需要學會如何控制安全性!
準備
建立Pipeline這邊就不贅述了,可以透過這篇的範例實作一次,就可以有一條Pipeline了
已經有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
接下來選擇你的一些資訊,訂用帳戶、Key Vault名稱...等等的
再來按下新增就可以看到出現在YAML了
再來可以驗證一下有沒有正確的輸出,之後把Pipeline Save
- script: echo $(MySecret) > secret.txt
- publish: secret.txt
然後跑了Pipeline之後發現有報錯,原來是要先去Key Vault授權
首先到Key Vault的資源,並且到存取原則,新增存取原則
秘密權限
之後選擇服務主體,搜尋你的Devops Projec的名稱,然後選擇即可,完成之後按下建立
回到Key Vault的時候就可以看到有一條新增的存取原則在上面了,但是,記得按下儲存!!
再來我們可以透過我們上面加入Pipeline的YAML程式區塊,將秘密貼到txt檔案裡面,切記: 要把$(mySecret)的地方改成你的Key Vault裡面的Secret名稱
接下來我們就可以看看我們有沒有取得成功,可以看到Pipeline的詳細資訊裡,有一個1 published的地方,點進去
就可以看到已經把secret.txt publish成功囉!!
那其實取得$(mySecret)的時候就可以拿來使用了,不一定要透過輸出到txt,那Pipeline整合Key Vautl的方式只需要這些步驟就可以完成了,是不是很簡單呢~!!