terngr
Posted on March 31, 2023
Azure Cloud Services มีบริการจัดเก็บและบริหารความลับเรียกว่า Azure Key vault โดยช่วยจัดเก็บ และเรียกใช้งาน Objects 3 ประเภท Keys, Secrets และ Certificates
- Keys เช่น Key-pairs
- Secrets เช่นรหัสผ่าน
- Certificates หรือ Certificate Authority(CA) โดยสามารถกำหนด Subjects, validation periods ได้
Objects ทั้ง 3 แบบใน Key vault
เราสามารถสร้าง Objects ทั้ง 3 นี้ขึ้นมาใหม่โดยใช้ Azure Portal หรือ Import เข้ามาก็ได้
การจัดการความลับเหล่านี้ โดยปกติแล้วจะถูกจัดการผ่าน Azure Portal, เช่นต้องการสร้าง Keys ใหม่ก็จะ Create ผ่าน Portal เมื่อใช้งานเสร็จต้องการลบ ก็สามารถทำได้ผ่าน Portal ซึ่งการบริหารจัดการเหล่านี้ HashiCorp Vault - Secrets as a service สามารถเข้ามาช่วยดูแลและยังครอบคลุม Secrets Lifecycle Management
Prerequisites
- Azure Key vaults Premium(with HSM Supported)
- HashiCorp Vault Enterprise
ส่วนที่ 1
เราจะทำการสร้าง Key Vaults และสร้าง Key-pairs ไว้ใช้งาน โดยทำผ่าน Azure Portal
ให้ Log in ไปยัง Azure Portal, เลือก Directory ที่ต้องการใช้งาน
ค้นหาคำว่า Key vaults และเข้าไปยัง Key vaults
กด + Create
ใส่รายละเอียดสำหรับสร้าง Key vaults
- Subscription: เลือก Subscription ที่ต้องการ
- Resource group: เลือก Resource group สำหรับ Key vaults, หากยังไม่มีสามารถกดสร้างใหม่ได้
- Key vault name: ชื่อ Key vault ที่ต้องการ เช่น "sukkarin-keyvault-3"
- Region: เลือกเป็น Southeast Asia
- Pricing tier: สามารถเลือกได้ทั้ง Standard และ Premium(HSM supported) ในกรณีนี้เราจะใช้งานร่วมกับ HashiCorp Vault โดยมีการใช้ HSM ด้วย ให้เลือก Premium
กด Review + Create
กด Create
รอจน Deploy สำเร็จ
Deploy สำเร็จแล้ว, เลือก Go to resource
ใต้แถบ Objects กดเลือก Keys
เลือก +Import/Generate เพื่อทำการสร้าง key-pairs
Name: ใช้ชื่อที่ต้องการ เช่น "my-keypair-1"
Key type: RSA-HSM
RSA key size: 2048
กด Create
จะเห็นได้ว่ามีการสร้าง my-keypair-1 สำเร็จ
กดที่ Key-pairs ที่เพิ่งสร้าง
เลือก Current version
จะพบว่าเราสามารถ Download Public Key ไปใช้งานได้
เมื่อไม่มีการใช้งาน Key-pairs นี้แล้ว สามารถลบออกได้โดยเข้าไปที่ Key vaults, my-keypair-1
เลือก Delete
กด Delete อีกครั้งเพื่อยืนยัน
จะมี Popup แสดงว่าลบคีย์สำเร็จ
จะไม่เห็น my-keypair-1 แล้ว
ส่วนที่สอง เราจะให้ HashiCorp Vault เป็นคนบริหารจัดการคีย์ โดยจะทำการสร้าง Key ขึ้นมาก่อน, จากนั้น Import Key ไปที่ Azure Key Vaults
Prerequisites มี Vault ติดตั้งไว้แล้วพร้อมใช้งาน
Install Vault
เปิดการใช้งาน Key management บน Vault
sukkarin@vault:~$ vault secrets enable keymgmt
Success! Enabled the keymgmt secrets engine at: keymgmt/
ให้ Vault ทำการสร้าง Key ใช้ชื่อว่า "example-key" กำหนดให้ใช้ Algorithm RSA-2048
sukkarin@vault:~$ vault write -f keymgmt/key/example-key type="rsa-2048"
Success! Data written to: keymgmt/key/example-key
Setup Azure Provider โดยระบุชื่อ Key vault, client_id, client_secret และ tenant_id
cliend_id และ client_secret จะต้องมีสิทธิ์ในการ Import key สามารถเพิ่มสิทธิ์ได้ที่หน้า Access Policy ของ Key Vaults ที่ต้องการเพิ่ม
sukkarin@vault:~$ vault write keymgmt/kms/example-key \
provider="azurekeyvault" \
key_collection="sukkarin-keyvault-3" \
credentials=client_id="<client-id>" \
credentials=client_secret="<client-secret>" \
credentials=tenant_id="<tenant-id>"
Success! Data written to: keymgmt/kms/example-key
Import Key ชื่อ example-key เข้าไปที่ Azure Key vault ชื่อ sukkarin-keyvault-3
sukkarin@vault:~$ vault write keymgmt/kms/sukkarin-keyvault-3/key/example-key \
purpose="sign,verify" \
protection="hsm"
Success! Data written to: keymgmt/kms/sukkarin-keyvault-3/key/example-key
เปิดดูที่ Azure portal ไปที่ Key vault, เลือก sukkarin-keyvault-3, เลือก Keys จะพบคีย์ example-key-1680172858 ถูก Import เข้ามาเรียบร้อยแล้ว
Posted on March 31, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.