Trong bài viết này, tôi sẽ hướng dẫn bạn cách sử dụng Azure CLI để tạo Azure Key Vault, điền vào đó một số bí mật [khắc phục một số vấn đề khó chịu liên quan đến việc thoát các ký tự đặc biệt] và sau đó truy xuất các bí mật đó
Đây là phần chuẩn bị cho bài viết tiếp theo, trong đó chúng ta sẽ tạo Ứng dụng Azure Functions, thay đổi quy tắc truy cập trên Key Vault để ứng dụng Azure Functions cụ thể đó có thể truy xuất các bí mật, đặt liên kết đến các bí mật đó vào Azure Functions . Khi bài viết đó được xuất bản [trong vài ngày tới], sẽ có một liên kết đến nó ở đây
Lần cuối cùng tôi viết về Azure CLI, tôi đã chạy nó trong một Docker container. Bạn có thể xem làm thế nào để làm điều đó ở đây
Lần này, tôi sẽ sử dụng PowerShell và cài đặt Azure CLI. Bạn có thể tìm thấy hướng dẫn tại. https. // tài liệu. Microsoft. com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest
Tiểu sử
Azure Key Vault về cơ bản là bộ lưu trữ đám mây an toàn, giá rẻ dành cho thông tin nhạy cảm như khóa, mật khẩu, chứng chỉ, v.v., được bảo vệ bằng thuật toán tiêu chuẩn ngành, độ dài khóa hoặc thậm chí là mô-đun bảo mật phần cứng [HSM được xác thực FIPS 140-2 Cấp 2]
Tất cả chúng ta đều đã thấy mã nguồn chứa một số dữ liệu nhạy cảm này [đôi khi nằm trong kho lưu trữ công khai trên GitHub]. Sử dụng hợp lý Key Vault là một cách tuyệt vời để ngăn điều này xảy ra. Quyền truy cập vào Kho lưu trữ khóa yêu cầu xác thực và ủy quyền thích hợp, đồng thời, trong phần tiếp theo của loạt bài này, chúng tôi sẽ cấp quyền truy cập vào kho lưu trữ khóa của mình cho một Ứng dụng chức năng Azure đơn giản mà chúng tôi sẽ tạo. Không chỉ vậy, chúng tôi sẽ không cần thay đổi bất kỳ mã hiện có nào của mình, do đó, theo nghĩa đen, sẽ chỉ mất vài phút để thêm tính năng truy xuất bí mật an toàn trong thời gian chạy cho ứng dụng của chúng tôi
Bắt đầu nào
Chạy Azure CLI và đăng nhập vào tài khoản của bạn
Trước tiên, chúng ta cần chạy bộ chứa Azure CLI Docker hoặc chạy PowerShell và cài đặt phiên bản Azure CLI mới nhất bằng cách chạy lệnh này
PS C:\dev\TomSSL> Invoke-WebRequest -Uri //aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'
Sau đó, chúng tôi đăng nhập vào Azure bằng lệnh
PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
4PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
Tạo Nhóm tài nguyên để lưu trữ Key Vault của bạn
Trước khi tiếp tục, chúng ta phải tạo một nhóm tài nguyên mới làm nơi chứa tất cả các tài nguyên cho bản trình diễn này
az group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles'
Lưu ý rằng chúng ta cần đặt thẻ tài nguyên trong dấu ngoặc kép nếu nó chứa khoảng trắng
PS C:\dev\TomSSL> az group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles' {
"id": "/subscriptions//resourceGroups/tomssl-key-vault-demo",
"location": "uksouth",
"managedBy": null,
"name": "tomssl-key-vault-demo",
"properties": {
"provisioningState": "Succeeded"
},
"tags": {
"Environment": "Demo",
"Reason": "Blog Articles"
},
"type": null
}
If you want to see a list of Azure locations, run this.
5.PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code" You have logged in. Now let us find all the subscriptions to which you have access... [ { "cloudName": "AzureCloud", "id": "", "isDefault": true, "name": "Tom Chantler", "state": "Enabled", "tenantId": "", "user": { "name": "", "type": "user" } } ] PS C:\dev\TomSSL>
Nếu bạn gặp khó khăn với bất kỳ điều gì trong Azure CLI, hãy thử thêm6 [hoặc đơn giản làPS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code" You have logged in. Now let us find all the subscriptions to which you have access... [ { "cloudName": "AzureCloud", "id": "", "isDefault": true, "name": "Tom Chantler", "state": "Enabled", "tenantId": "", "user": { "name": "", "type": "user" } } ] PS C:\dev\TomSSL>
7] vào lệnh của bạn. Trợ giúp theo ngữ cảnh thực sự tốt.PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code" You have logged in. Now let us find all the subscriptions to which you have access... [ { "cloudName": "AzureCloud", "id": "", "isDefault": true, "name": "Tom Chantler", "state": "Enabled", "tenantId": "", "user": { "name": "", "type": "user" } } ] PS C:\dev\TomSSL>
Tạo Kho lưu trữ khóa
Bây giờ chúng ta cần tạo một Key Vault trống để lưu trữ các bí mật của chúng ta. Quá trình này sẽ mất vài giây
________số 8PS C:\dev\TomSSL> az keyvault create -n tomssl-test-kv -g tomssl-key-vault-demo -l uksouth --tags Environment=Demo 'Reason=Blog Articles' {
"id": "/subscriptions//resourceGroups/tomssl-key-vault-demo/providers/Microsoft.KeyVault/vaults/tomssl-test-kv",
"location": "uksouth",
"name": "tomssl-test-kv",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "9e96dbed-e34a-4125-98f3-2cfa723f3f4a",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": ""
}
],
"createMode": null,
"enablePurgeProtection": null,
"enableSoftDelete": null,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"tenantId": "",
"vaultUri": "//tomssl-test-kv.vault.azure.net/"
},
"resourceGroup": "tomssl-key-vault-demo",
"tags": {
"Environment": "Demo",
"Reason": "Blog Articles"
},
"type": "Microsoft.KeyVault/vaults"
}
Bây giờ, hãy thêm một bí mật vào Key Vault của chúng ta
Trước tiên, chúng tôi sẽ đặt một số biến để làm cho nó dễ dàng hơn một chút. Chỉ cần cắt và dán bốn dòng tiếp theo và nó sẽ biểu thị rằng đó là một câu lệnh nhiều dòng bằng cách tự động thêm
PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
8PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
1Bây giờ hãy chạy lệnh sau để tạo bí mật Key Vault đầu tiên của bạn
PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
9PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
3Lưu ý giá trị
az group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles'
0, chứa URI cho phiên bản cụ thể này của bí mật cụ thể này. Vì chúng ta có thể muốn điều đó sau này [trong bài viết thứ hai của loạt bài này về Key Vault], hãy tạo và lấy nó để sử dụng trong tương lai trong cùng một bước. như vậyPS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
5Cái nào mang lại đầu ra này
PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
6Quan sát phần hướng dẫn dài của URI sau khi tên bí mật đã thay đổi. Đó là bởi vì, mặc dù chúng tôi đã đặt giá trị giống như lần trước, nhưng chúng tôi đã tạo một phiên bản mới của bí mật này, vì vậy hiện có hai phiên bản
Nếu bạn muốn lấy id mới nhất [là một URI] của một bí mật có tên [e. g. để bạn có thể phun nó vào đường dẫn CI/CD của mình, có lẽ], bạn có thể làm như thế này bằng Azure CLI
PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
0PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
1Công việc đang được tiến hành để cho phép bạn sử dụng một URI duy nhất sẽ luôn truy xuất phiên bản bí mật mới nhất, nhưng hiện tại, bạn cần chỉ định phiên bản trong URI [điều này hơi khó chịu và sẽ trở nên phù hợp khi chúng tôi'
Còn các ký tự đặc biệt thì sao?
Nếu bạn cố đặt một bí mật có chứa dấu và, nó sẽ sai. Bạn cần thoát dấu và bằng cách gói dấu và trong dấu ngoặc kép và phần còn lại của bí mật trong dấu ngoặc đơn. Nếu bạn đảo ngược dấu ngoặc kép, nó sẽ không hoạt động
1 tác phẩmaz group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles'
2 không hoạt độngaz group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles'
PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
2PS C:\dev\TomSSL> az login Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
{
"cloudName": "AzureCloud",
"id": "",
"isDefault": true,
"name": "Tom Chantler",
"state": "Enabled",
"tenantId": "",
"user": {
"name": "",
"type": "user"
}
}
]
PS C:\dev\TomSSL>
3Điều này khá khó giải quyết và có thể có cách tốt hơn để giải quyết vấn đề này, nhưng tôi chưa tìm ra cách nào. Đó không phải là ngày tận thế, chỉ là một điều cần lưu ý khi bạn sử dụng Key Vault
Sự kết luận
Azure Key Vault Secrets là một cách rẻ tiền và cực kỳ an toàn để lưu trữ dữ liệu nhạy cảm để sử dụng trong các ứng dụng khác nhau [chúng tôi sẽ điều tra trong các bài viết tiếp theo]. Key Vault Secrets rất dễ quản lý thông qua Azure CLI, nhưng bạn cần cẩn thận khi xử lý các ký tự đặc biệt, chẳng hạn như dấu và
Azure CLIKey Vault
Tham gia bản tin để nhận các bản cập nhật mới nhất trong hộp thư đến của bạn
Email của bạn Đăng ký
Vui lòng kiểm tra hộp thư đến của bạn và nhấp vào liên kết để xác nhận đăng ký của bạn
Vui lòng nhập địa chỉ email hợp lệ
Đã xảy ra lỗi. Vui lòng thử lại sau
Tải bình luậnBài viết gần đây
Tự động cập nhật Plex Server trên Ubuntu
14. tháng tư. 2022Bỏ qua Cloudflare cho các tác vụ chạy dài mà không để lộ địa chỉ IP của bạn
21. Tháng một. 2021Điểm nhấn năm 2020. Mục tiêu cho năm 2021
01. Tháng một. 2021Sửa lỗi trôi đồng hồ trong WSL2 bằng Windows Terminal
12. tháng 11. 2020Cách cập nhật PowerShell Core bằng Windows Terminal
08. tháng 11. 2020thẻ
NET lõi ASP. NET Core AWS Azure Active Directory Azure CLI Azure WebJobs Backdoor Bitcoin BitLocker Viết blog Bộ chứa CloudFlare Đa nền tảng CSP CUDA DD-WRT Docker Docker cho Windows Email Email Bảo mật email Hack đạo đức GDPR Ghost GPU Hapi. js Home Lab HPKP HSTS HTTP/2 Key Vault LINQPad Linux MacOS Mail-in-a-Box Microsoft Azure Microsoft Band NHibernate Node. js Dinh dưỡng Mật khẩu OpenCL Proxy quyền riêng tư PowerShell Mật mã khóa công khai Công thức RDS Tín hiệu Phương tiện truyền thông xã hội SQL SSL TLS Nền tảng Windows phổ biến VPN WhatsApp WiFi Windows Windows Terminal WSL2