PowerShell Azure Module และ Cloud Shell

สวัสดีครับ ผม Chaba_OK! คราวนี้เป็นเรื่อง การใช้งาน Azure สำหรับผู้ทำหน้าที่เป็น Administrator ที่ต้องใช้ Portal มีวิธีสั่งงานได้หลายวิธีวิธี คือ ผ่านหน้า Web Page, Command-Line, REST API และ Visual Studio ที่ใช้สำหรับ Admin บ่อยๆ คือ Web และ Command-line  ขอแนะนำวิธีง่ายเพียง 2 วิธีคือ

1. Azure Portal –  Web Page (https://portal.zure.com) – ใช้งาน Web Application ที่เป็น GUI

image

2. PowerShell เป็นการใช้ Command-line หรือ Script เป็น PowerShell มี 2 แบบให้เลือก

2.1 PowerShell ที่ทำงานจากเครื่อง Computer ของเราเอง ก่อนใช้งานต้องติดตั้ง Azure Module ลงไปก่อน ซึ่งแน่นอนว่าเครื่องจะต้องต่อ Internet เพื่อ Connect กับ Azure

– ก่อนลงมือติดตั้ง ขอแนะนำให้ Update PowerShell เป็น Version 5 วิธีดู Version PowerShell ใช้คำสั่งนี้

image

– ปกติ PowerShell ในเครื่องของเรา ถูกกำหนดให้ชี้ไป Repository ซึ่งช่วยให้สะดวกเวลาที่ต้องติดตั้ง Module เพิ่มเติม การดูค่า Repository ทำตามนี้ ผลคือ Repository คือ http://www.powershellgallery.com

image

– ลงมือติดตั้ง Module Azure ด้วยคำสั่ง find-module azure*|install-module และกด Yes to All  หรือ download .msi จากที่นี่ https://github.com/Azure/azure-powershell/releases

image

image

image

2.2 Azure Cloud Shell เป็นการใช้ PowerShell Command-line บน Browser

– วิธีนี้การทำงานต้องจำคำสั่งที่คีย์ทีละ command หรือจะใช้วิธี Upload script ก็ได้  เทคนิคการสร้าง Azure PowerShell Console นี้น่าสนุก ผมเคยเล่าเรื่อง Windows Container มันถูกนำมาใช้ในงานนี้ ภาพด้านล่างแสดงให้เห็นว่า Console ถูก Run บน Windows Container ตามปกติใน Container มัน save file ลงไม่ได้ ทำให้ต้อง Mount ไปที่ Storage ดังนั้น การใช้ Console ต้องมี Cloud Storage ประกอบด้วย เมื่อเข้า Console ครั้งแรกจึงสร้าง Cloud Storage และ Azure File Share

AzurePowerShellConsole

การเข้าใช้งานครั้งแรกจะต้อง Create storage ตามภาพด้านล่าง

image

ด้านล่างเป็นหน้าจอ Console ใช้คำสั่ง  get-psdrive จะเห็น drive y: ที่เป็นที่เก็บ file AzurePowerShellDrive

ด้านล่าง ใน Azure Portal จะเห็น Storage Account ใน Resource Group “cloud-shell-storage-xx” ตามภาพ ได้สร้าง Directory-work เพื่อเก็บ Script

AzurePowerShellPortalUpload

สรุป การใช้สั่งงาน Azure ทำงานผ่าน PowerShell ได้ มีทั้งวิธีจากเครื่อง Computer เราเอง และวิธี Azure PowerShell Console

#https://www.facebook.com/groups/1912394935675514/

#AzureThailandUserGroup

 

 

Advertisement

Key Vault ตอนที่ 1 สวัสดี Azure Key Vault

สวัสดีครับ ผม Chaba_OK! คราวนี้เรามาทำความรู้จักกับ Azure key Vault กัน  ปกติ Application ที่ใช้งานกันทั่วไปมีส่วนประกอบสำคัญด้าน Software Infrastructure 3 ส่วนคือ Application, ค่า Configuration และ Data ในส่วนของ Configuration อาจเป็นค่าความลับ (Secret หรือ Key) ที่ใช้ในการเข้าหรือถอดรหัส (Crptographic Key) ที่มีความสำคัญและจำเป็นสำหรับการทำงานของ Application เช่น User ID และ Password เพื่อเรียกใช้งาน Database (Connection String) ถ้าเก็บความลับเหล่านี้ไม่ดี อาจหลุดออกไปทำให้เกิดความเสียหายได้ ดังนั้น ค่าเหล่านี้ควรเก็บไว้ในที่ปลอดภัยซึ่งมีคุณสมบัติเบื้องต้นของการที่ๆ จัดเก็บค่าลับๆ มี 3 ข้อดังนี้

  1. Authentication สามารถตรวจสอบตัวตนของผู้ที่จะมาดูค่าต่างๆ ที่เก็บไว้
  2. Authorization สามารถกำหนดสิทธิ เพื่อควบคุมการใช้งานและช่วยแบ่งหน้าที่ตามความรับผิดชอบของผู้ใช้งาน (Role Base Access Control)
  3. Audit สามารถตรวจสอบการใช้งานได้

สำหรับบางหน่วยงาน การเก็บ Cryptographic Key/Secret จะต้องปฏิบัติตามกฏที่วางไว้โดยหน่วยงานที่กำกับหรือตรวจสอบ เพื่อให้การปฏิบัติงานเข้ามาตราฐาน จึงต้องใช้อุปกรณ์เรียกว่า Hardware Security Management (HSM) เพื่อเป็นช่วยเก็บ Secret และยังใช้ HSM ทำงานเข้ารหัสข้อมูลได้อีกด้วย

Micrisoft Azure Key Vault คือ บริการ Internet HSM บนระบบ Cloud ของ Microsoft Azure ที่รับฝาก Cryptographic Key และ Secret มีความสามารถกำหนดสิทธิผู้ใช้งานตามหน้าที่ (Role Base Access Control) และตรวจสอบการใช้งาน (Audit) และมี API สำหรับผู้พัฒนา Application ใช้สั่งงาน

บริการของ Key Vault ที่เก็บ Cryptographic Key/Secret แบ่งการเก็บข้อมูลเป็น 3 ประเภทคือ

Certificate สร้าง Certificate ใน Format X509 จาก Certificate Authority (CA) หรืออาจทำเป็น Self-Signed ก็ได้
Key เก็บ Key ที่ใช้ Encryption หรือ Decryption
Secret เก็บค่าความลับ

สิ่งที่ต้องมีก่อนการใช้งาน Key Vault (Prerequisite)

ในบทความนี้ท่านจะต้องมี Resource ต่อไปนี้

  1. เป็นสมาชิก Microsoft Azure
  2. ติดตั้ง PowerShell module – Azure Key Vault

ลำดับการใช้งาน Azure Key Vault

การใช้งาน Azure Key Vault ในขั้นเริ่มต้นต้องทำตามขั้นตอนในภาพด้านล่าง AzureKeyVaultFlow

ทำความรู้จักกับ Key Vault แบบง่ายด้วยการฝาก password

1. เมื่อมี Account บน Azure แล้ว วิธีใช้งาน Key Vault สามารถทำงาน GUI หรือ Command-line ได้ ในตัวอย่างเป็นการใช้ GUI สร้าง Key Vault และเก็บข้อมูลใน Key Vault ตามภาพด้านล่าง การใช้ผ่าน Command-line (PowerShell) อยู่ตอนท้าย

CreateKeyVault

การสร้าง Key Vault ต้องเตรียม Parameter ตามนี้

Name ตั้งชื่อ ซึ่งต่อไปจะถูกนำไปใช้เป็น URL ในตัวอย่างใช้ชื่อ vm360degreekeyvault จะได้ URL คือ https://vm360degreekeyvault.vault.azure.net/
Subscription เลือก subscription
Resource Group เลือกว่าจะ เก็บ Resource Group อันไหน หรือจะสร้างใหม่ก็ได้
Location เลือก Azure Location
Pricing tier มี 2 ตัวเลือก สำหรับการเรียนรู้ใช้ A1 ได้
A1 – Standard (ประหยัดประมวลผลเข้ารหัสบน Virtual Machine)
P2 – Premium (จ่ายแพงกว่า แต่ปลอดภัยกว่า เข้ารหัสใน hardware HSM)

เมื่อสร้างเสร็จก็จะมี  Key Vault ต่อไปจะเป็นการนำ Password ไปเก็บใน Key Vault

KeyVault-AddSecret

จาก Clip ที่ 2 อันข้างบน เป็นการใช้งานของ Admin ของ Azure Portal

Login-AzureRmAccount
$MyKeyVaultName = 'vm360degreekeyvault'
$mySecretPasswordDB = 'passworddb'
New-AzureRmKeyVault -VaultName $MyKeyVaultName -ResourceGroupName 'rgWestUS2' -Location 'westus2'
Get-AzureRmKeyVault -VaultName $MyKeyVaultName
Set-AzureKeyVaultSecret -VaultName $MyKeyVaultName -Name 'passworddb' `
-SecretValue (ConvertTo-SecureString -String 'p@ssw0rd' -AsPlainText -Force)
get-AzureKeyVaultSecret -VaultName $MyKeyVaultName -Name $mySecretPasswordDB | fl *

สรุป ในตอนนี้เราได้รู้จักกับ Azure Key Vault เบื้องต้นและทดลองเก็บ Secret ในตอนต่อไป จะเป็นเรื่องการกำหนดสิทธิและการจัดเก็บ Audit Log

 

 

Azure VM ให้ drive D: มาทำไม?

เวลาที่สร้าง VM ใน Azure จะมี drive temporary มาให้พร้อมกับคำเตือนว่า “This temporary storage must not be used to store data that you are not willing to lose.”  จะมีมาให้ทำไม?

คำตอบ คือ จาก Understanding the temporary drive on windows azure VM ที่น่าสนใจคื Drive นี้เอาไว้ใช้เก็บ Page file และไม่คิดเงินครับ

#AzureThailandUserGroup