Bí mật Kho lưu trữ khóa Azure CLI

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>    
4

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 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.

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>    
5.
Nếu bạn gặp khó khăn với bất kỳ điều gì trong Azure CLI, hãy thử 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>    
6 [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.

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ố 8

PS 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>    
8

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>    
1

Bâ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>    
9

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>    
3

Lư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ậ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>    
5

Cá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>    
6

Quan 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>    
0

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>    
1

Cô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

az group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles' 
1 tác phẩm

az group create -l uksouth -g tomssl-key-vault-demo --tags Environment=Demo 'Reason=Blog Articles' 
2 không hoạt động

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>    
2

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>    
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ận

Bài viết gần đây

Tự động cập nhật Plex Server trên Ubuntu

14. tháng tư. 2022

Bỏ 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. 2021

Sửa lỗi trôi đồng hồ trong WSL2 bằng Windows Terminal

12. tháng 11. 2020

Cách cập nhật PowerShell Core bằng Windows Terminal

08. tháng 11. 2020

thẻ

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

Chủ Đề