Azure Key Vault là gì?

by | Microsoft Kiến Thức, Security

Azure Key Vault là một dịch vụ đám mây để lưu trữ và truy cập các secret một cách an toàn. secret là bất kỳ thứ gì bạn muốn kiểm soát chặt chẽ quyền truy cập, chẳng hạn như API key, password, certificates hoặc cryptographic keys. Key Vault service hỗ trợ hai loại container: vault & managed HSM pool. Vault hỗ trợ lưu trữ phần mềm và HSM-backed keys, secrets, and certificates. Managed HSM pools chỉ hỗ trợ HSM-backed keys. Xem tổng quan về Azure Key Vault REST API overview để biết chi tiết đầy đủ.

Dưới đây là một số định nghĩa quan trọng khác:

  • Tenant: là tổ chức sở hữu và quản lý một phiên bản cụ thể của các dịch vụ đám mây của Microsoft, thường được dùng để chỉ tập hợp các dịch vụ Azure và Microsoft 365 cho một tổ chức/doanh nghiệp/công ty.
  • Vault owner: có thể tạo key vault và có toàn quyền truy cập và kiểm soát. Vault owner cũng có thể thiết lập audit để ghi lại những ai truy cập vào secrets & key. Quản trị viên có thể kiểm soát key lifecycle, có thể chuyển sang phiên bản mới của key, sao lưu và thực hiện các tác vụ liên quan.
  • Vault consumer: có thể thực hiện các hành động bên trong key vault khi vault owner cấp quyền truy cập cho Vault consumer. Các hành động sẽ phụ thuộc vào các quyền được cấp.
  • Managed HSM Administrators: Người dùng được chỉ định vai trò Administrator có toàn quyền kiểm soát Managed HSM pool, có thể tạo nhiều nhiệm vụ vai trò hơn để ủy quyền quyền truy cập có kiểm soát cho những người dùng khác.
  • Managed HSM Crypto Officer/User: Các vai trò tích hợp thường được chỉ định cho người dùng (user) hoặc  service principals sẽ thực hiện cryptographic operations bằng cách sử dụng các key trong Managed HSM. Crypto User có thể tạo key mới, nhưng không thể xóa key.
  • Managed HSM Crypto Service Encryption: Vai trò tích hợp thường được chỉ định cho service identity được quản lý bởi tài khoản dịch vụ (service account) (ví dụ: Storage account) để mã hóa dữ liệu bằng key do khách hàng quản lý.
  • Resource: có thể được quản lý thông qua Azure. Các ví dụ phổ biến là máy ảo, tài khoản lưu trữ, ứng dụng web, cơ sở dữ liệu và mạng ảo v.v…
  • Resource group: là một container chứa các tài nguyên liên quan cho giải pháp Azure. Resource group có thể bao gồm tất cả các tài nguyên/resource cho giải pháp hoặc chỉ những tài nguyên/resource mà bạn muốn quản lý như một nhóm/group.
  • Security principal: là security identity mà các ứng dụng, dịch vụ và công cụ tự động hóa do người dùng tạo sử dụng để truy cập các tài nguyên Azure cụ thể. Hãy coi đó là “danh tính người dùng” (tên người dùng và mật khẩu hoặc chứng chỉ) với vai trò cụ thể và các quyền được kiểm soát chặt chẽ. Security principal chỉ cần làm những việc cụ thể, không giống như danh tính người dùng chung (user identity). Security principal thực hiện bảo mật nếu bạn chỉ cấp mức quyền tối thiểu để thực hiện các nhiệm vụ quản lý. Security principal được sử dụng với một ứng dụng hoặc dịch vụ được gọi là service principal.
  • Azure Active Directory (Azure AD): Azure AD là Active Directory service cho tenant. Mỗi directory có một hoặc nhiều domain. một directory có thể có nhiều đăng ký/supscriptions được liên kết, nhưng chỉ có một tenant.
  • Azure tenant ID: một tenant ID là một cách duy nhất để xác định một phiên bản Azure AD trong đăng ký/ subscription Azure.
  • Managed identities: Azure Key Vault cung cấp một cách để lưu trữ an toàn thông tin đăng nhập (credentials) cũng như các key và secret, nhưng mã (code) của bạn cần phải xác thực với Key Vault để truy xuất chúng. Sử dụng managed identity giúp giải quyết vấn đề này đơn giản hơn bằng cách cung cấp cho các dịch vụ Azure (Azure services) một danh tính được quản lý (managed identity) tự động trong Azure AD. Bạn có thể sử dụng danh tính (identity) này để xác thực với Key Vault hoặc bất kỳ dịch vụ nào hỗ trợ xác thực Azure AD mà không cần có bất kỳ thông tin đăng nhập nào trong code của bạn. Để biết thêm thông tin, hãy tham khảo  overview of managed identities for Azure resource

Authentication

Để thực hiện bất kỳ thao tác nào với Key Vault, trước tiên bạn cần xác thực nó. Có ba cách để xác thực Key Vault:

  • Managed identities for Azure resources (Danh tính được quản lý cho tài nguyên Azure): Khi bạn triển khai ứng dụng trên máy ảo trong Azure, bạn có thể chỉ định danh tính (identity) cho máy ảo của mình có quyền truy cập vào Key Vault. Bạn cũng có thể gán danh tính cho các tài nguyên Azure khác. Lợi ích của phương pháp này là ứng dụng hoặc dịch vụ không quản lý vòng quay của secret đầu tiên (first secret). Azure tự động xoay (rotate) danh tính (identity). Microsoft đề xuất phương pháp này như một phương pháp hay nhất.
  • Service principal and certificate: Bạn có thể sử dụng service principal và chứng chỉ được liên kết (associated certificate) để có quyền truy cập vào Key Vault. Microsoft không khuyến khích phương pháp này vì chủ sở hữu hoặc nhà phát triển ứng dụng phải xoay certificate (rotate the certificate).
  • Service principal and secret: Mặc dù bạn có thể sử dụng service principal & secret để xác thực với Key Vault, nhưng Microsoft không khuyên bạn nên sử dụng cách này. Thật khó để tự động xoay (rotate) bootstrap secret được sử dụng để xác thực với Key Vault.

Key Vault roles

Sử dụng bảng sau để hiểu rõ hơn cách Key Vault có thể giúp đáp ứng nhu cầu của các nhà phát triển và quản trị viên bảo mật.

RoleVấn đềĐược giải quyết bởi Azure Key Vault
Developer cho Azure application“Tôi muốn viết một ứng dụng cho Azure sử dụng key để ký và mã hóa. Nhưng tôi muốn các key này nằm bên ngoài ứng dụng của mình để giải pháp phù hợp với ứng dụng được phân phối theo địa lý.
Tôi muốn các key và secret này được bảo vệ mà không cần phải tự viết code. Tôi cũng muốn các key và secret này để tôi dễ dàng sử dụng từ các ứng dụng của mình, với hiệu suất tối ưu.”
√ Các key được lưu trữ trong một vault và được gọi bởi URI khi cần thiết.
√ key được bảo vệ bởi Azure, sử dụng các thuật toán tiêu chuẩn ngành, độ dài key và mô-đun bảo mật phần cứng.

√ key được xử lý trong HSM nằm trong cùng trung tâm dữ liệu Azure với ứng dụng. Phương pháp này cung cấp độ tin cậy tốt hơn và giảm độ trễ so với các key nằm ở một vị trí riêng biệt, chẳng hạn như on-premises.
Developer cho= software as a service (SaaS)“Tôi không muốn có trách nhiệm hoặc trách nhiệm pháp lý tiềm ẩn đối với key và secret của khách hàng.
Tôi muốn khách hàng sở hữu và quản lý key của họ để tôi có thể tập trung làm những gì tôi giỏi nhất, đó là cung cấp các tính năng cốt lõi của phần mềm.”
√ Khách hàng có thể nhập các key của riêng họ vào Azure và quản lý chúng. Khi một ứng dụng SaaS cần thực hiện cryptographic operations bằng cách sử dụng key của khách hàng, Key Vault sẽ thực hiện các hoạt động này thay mặt cho ứng dụng. Ứng dụng không thấy key của khách hàng.
Chief security officer (CSO)“Tôi muốn biết rằng các ứng dụng của chúng tôi tuân thủ FIPS 140-2 Level 2 hoặc FIPS 140-2 Level 3 HSM để quản lý key an toàn.
Tôi muốn đảm bảo rằng công ty của tôi kiểm soát vòng đời của key và có thể giám sát việc sử dụng key.
Và mặc dù chúng tôi sử dụng nhiều dịch vụ và tài nguyên của Azure, tôi muốn quản lý các key từ một vị trí duy nhất trong Azure.”
√ Chọn vaults cho FIPS 140-2 Level 2 validated HSMs.
√ Chọn managed HSM pools cho FIPS 140-2 Level 3 validated HSMs.

√ Key Vault được thiết kế để Microsoft không nhìn thấy hoặc trích xuất các key của bạn.
√ Key usage được log gần với thời gian thực.

√ Vault cung cấp một giao diện duy nhất, bất kể bạn có bao nhiêu vault trong Azure, khu vực nào đang hỗ trợ và ứng dụng nào đang sử dụng.

Bất kỳ ai có đăng ký Azure (Azure subscription) đều có thể tạo và sử dụng key vaults. Mặc dù Key Vault mang lại lợi ích cho các nhà phát triển và quản trị viên bảo mật, nhưng cũng có thể được triển khai và quản lý bởi quản trị viên của tổ chức, người quản lý các dịch vụ Azure khác. Ví dụ: quản trị viên này có thể đăng nhập bằng đăng ký Azure, tạo một vault cho tổ chức để lưu trữ key và sau đó chịu trách nhiệm về các tác vụ hoạt động như sau:

  • Tạo hoặc nhập keyhoặc secret.
  • Thu hồi (Revoke) hoặc xóa (delete) key hoặc secret.
  • Cho phép người dùng hoặc ứng dụng truy cập key vault để sau đó họ có thể quản lý hoặc sử dụng các key và secret.
  • Định cấu hình việc sử dụng key (ví dụ: ký hoặc mã hóa/sign, encrypt)
  • Giám sát việc sử dụng key.

Quản trị viên này sau đó cung cấp cho các nhà phát triển URI để gọi từ các ứng dụng của họ. Quản trị viên này cũng cung cấp thông tin ghi log sử dụng cho quản trị viên bảo mật.

Azure Key Vault là gì

Các nhà phát triển cũng có thể quản lý các key trực tiếp bằng cách sử dụng các API. Để biết thêm thông tin vui lòng tham khảo link sau: the Key Vault developer’s guide

Nội dung liên quan:

Nếu bạn cần hỗ trợ, mua bản quyền vui lòng liên hệ VinSEP:

Công Ty TNHH Mục Tiêu Số (MST: 0316094847)

Tham khảo: Docs.microsoft.com

VinSEP
VinSEP

VinSEP (Công ty TNHH Mục Tiêu Số, mst: 0316094847)- chúng tôi là chuyên gia trong giải pháp/dịch vụ CNTT & phần mềm bản quyền. VinSEP giúp doanh nghiệp chuyển đổi thành nơi làm việc hiện đại (Modern Workplace) & phát triển trong thời đại công nghiệp 4.0.

VinSEP chỉ có một website Official chính thức là VinSEP.com.

Bài viết liên quan