Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğretici, Azure Key Vault Yönetilen HSM için erişim denetimine yönelik pratik bir uygulama örneği sağlar. Gerçekçi bir senaryo aracılığıyla Azure RBAC ve Yönetilen HSM yerel RBAC kullanarak görev ayrımı gerçekleştirmeyi öğreneceksiniz.
Önemli
Bu öğreticiye devam etmeden önce, denetim düzlemi ile veri düzlemi erişimi arasındaki farklar dahil olmak üzere Yönetilen HSM erişim denetimi modelini anladığınızdan emin olun. Bu kavramsal temel için bkz. Yönetilen HSM erişim denetimi.
Önkoşullar
- Microsoft Azure aboneliği. Hesabınız yoksa, ücretsiz deneme için kaydolabilirsiniz.
- Azure CLI sürüm 2.25.0 veya üzeri. Sürümü bulmak için
az --versionkomutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme. - Aboneliğinizde yönetilen bir HSM. Bakınız Quickstart Rehberi: Azure CLI kullanarak yönetilen bir HSM sağlama ve etkinleştirme konusuna yönetilen bir HSM'yi sağlamak ve etkinleştirmek için.
Azure Cloud Shell
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell'i başlatmak için:
| Seçenek | Örnek/Bağlantı |
|---|---|
| Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. |
|
| https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. | Azure Cloud Shell'i başlatmak için ![]() |
| Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
|
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
Kodu veya komutu Cloud Shell oturumuna yapıştırmak için Windows ve Linux'ta Ctrl+Shift+V'yi veya macOS'te Cmd+Shift+V'yi seçin.
Kodu veya komutu çalıştırmak için Enter'ı seçin.
Azure'da oturum açma
CLI kullanarak Azure'da oturum açmak için şunu yazabilirsiniz:
az login
CLI aracılığıyla oturum açma seçenekleri hakkında daha fazla bilgi için bkz. Azure CLI ile oturum açma
Örnek senaryoyu anlama
Bu örnekte, imzalama işlemleri için RSA 2.048 bit anahtar kullanan bir uygulama geliştiriyoruz. Uygulamamız yönetilen kimliğe sahip bir Azure sanal makinesinde (VM) çalışır. İmzalama için kullanılan RSA anahtarı yönetilen HSM'mizde depolanır.
Rolleri ve sorumlulukları tanımlama
Uygulamamızı yöneten, dağıtan ve denetleyen aşağıdaki rolleri belirledik:
- Güvenlik ekibi: CSO ofisinden (Güvenlik Sorumlusu) veya benzer katkıda bulunanlardan BT personeli. Güvenlik ekibi anahtarların düzgün bir şekilde güvende olmasıyla sorumludur. Anahtarlar, imzalama için RSA veya EC anahtarlarını ve veri şifrelemesi için RSA veya AES anahtarlarını içerir.
- Geliştiriciler ve operatörler: Uygulamayı geliştiren ve Azure'da dağıtan personel. Bu ekibin üyeleri güvenlik personelinin bir parçası değil. RSA anahtarları gibi hassas verilere erişimleri olmamalıdır. Yalnızca dağıttığı uygulamanın bu hassas verilere erişimi olmalıdır.
- Denetçiler: Bu rol, geliştirme veya genel BT personeline üye olmayan katkıda bulunanlara yöneliktir. Güvenlik standartlarıyla uyumluluğu sağlamak için sertifikaların, anahtarların ve gizli dizilerin kullanımını ve bakımını gözden geçirir.
Uygulamamızın kapsamı dışında olan başka bir rol daha var: abonelik (veya kaynak grubu) yöneticisi. Abonelik yöneticisi, güvenlik ekibi için ilk erişim izinlerini ayarlar. Uygulamanın gerektirdiği kaynaklara sahip bir kaynak grubu kullanarak güvenlik ekibine erişim verir.
Rol başına gerekli işlemleri tanımlama
Rollerimiz için aşağıdaki işlemleri yetkilendirmemiz gerekir:
Güvenlik ekibi
- Yönetilen HSM'yi oluşturma
- Yönetilen HSM güvenlik etki alanını indirme (olağanüstü durum kurtarma için)
- Günlüğe kaydetmeyi açma
- Anahtar oluşturma veya içeri aktarma
- Olağanüstü durum kurtarma için yönetilen HSM yedeklemelerini oluşturma
- Yönetilen HSM yerel RBAC'yi belirli işlemler için kullanıcılara ve uygulamalara izinler vermek üzere ayarlayın
- Anahtarları düzenli aralıklarla yuvarlayın
Geliştiriciler ve operatörler
- İmzalama için kullanılan RSA anahtarı için güvenlik ekibinden başvuru (anahtar URI'si) alma
- Anahtara program aracılığıyla erişen uygulamayı geliştirme ve dağıtma
Denetçiler
- Anahtarların güncel olduğundan emin olmak için anahtarların süre sonu tarihlerini gözden geçirin
- Anahtarlara yalnızca yetkili kullanıcılar/uygulamalar tarafından erişilebildiğini sağlamak için rol atamalarını izleme
- Anahtarların veri güvenliği standartlarına uygun şekilde kullanıldığını onaylamak için yönetilen HSM günlüklerini gözden geçirin
Uygun rolleri atama
Aşağıdaki tabloda, yönetilen HSM'ye erişmek için ekiplere ve kaynaklara yapılan rol atamaları özetlenmiştir.
| Rol | Kontrol düzlemi rolü | Veri düzlemi rolü |
|---|---|---|
| Güvenlik ekibi | Yönetilen HSM Katkıda Bulunanı | Yönetilen HSM Yöneticisi |
| Geliştiriciler ve operatörler | Hiç kimse | Hiç kimse |
| Denetçiler | Hiç kimse | Yönetilen HSM Şifreleme Denetçisi |
| Uygulama tarafından kullanılan VM'nin yönetilen kimliği | Hiç kimse | Yönetimli HSM Şifreleme Kullanıcısı |
| Uygulama tarafından kullanılan Depolama hesabının yönetilen kimliği | Hiç kimse | Yönetilen HSM Şifreleme Hizmeti Şifrelemesi |
Üç ekip rolünün, yönetilen HSM izinleriyle birlikte diğer kaynaklara erişmesi gerekir. VM'leri (veya Azure Uygulaması Hizmeti'nin Web Uygulamaları özelliğini) dağıtmak için geliştiricilerin ve operatörlerin bu kaynak türlerine erişmesi gerekirContributor. Denetçiler, yönetilen HSM günlüklerinin depolandığı Depolama hesabına okuma erişimine ihtiyaç duyar.
Azure CLI ile uygulama
Denetim düzlemi rollerini (Azure RBAC) atamak için Azure portalını veya Azure CLI veya Azure PowerShell gibi diğer yönetim arabirimlerinden herhangi birini kullanabilirsiniz. Yönetilen HSM veri düzlemi rollerini atamak için Azure CLI veya Azure REST API kullanmanız gerekir.
Kontrol düzlemi rolleri hakkında daha fazla bilgi için Azure yerleşik rolleri bölümüne göz atın. Yönetilen HSM veri düzlemi rolleri hakkında daha fazla bilgi için bkz. Yönetilen HSM için yönetilen HSM yerel RBAC yerleşik rolleri.
Aşağıdaki Azure CLI kod parçacıklarında yukarıda açıklanan rol atamalarının nasıl uygulandığı gösterilmektedir:
Varsayımlar
- Microsoft Entra yöneticisi üç rolü temsil eden güvenlik grupları oluşturmuştur: Contoso Güvenlik Ekibi, Contoso Uygulama DevOps ve Contoso Uygulama Denetçileri. Yönetici, ilgili gruplarına kullanıcı eklemiştir.
- Tüm kaynaklar ContosoAppRG kaynak grubunda bulunur.
- Yönetilen HSM günlükleri contosologstorage depolama hesabında saklanır.
- ContosoMHSM tarafından yönetilen HSM ve contosologstorage depolama hesabı aynı Azure konumundadır.
Denetim düzlemi rollerini atama
Abonelik yöneticisi rolü güvenlik ekibine atar Managed HSM Contributor . Bu rol, güvenlik ekibinin mevcut yönetilen HSM'leri yönetmesine ve yenilerini oluşturmasına olanak tanır.
# This role assignment allows Contoso Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"
Veri düzlemi rolleri atayın
Mevcut yönetilen HSM'ler için güvenlik ekibine bunları yönetmek için "Yönetilen HSM Yöneticisi" rolü atanması gerekir:
# This role assignment allows Contoso Security Team to become administrator of existing managed HSM
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"
Günlüğü yapılandırın ve ek roller atayın
Güvenlik ekibi günlüğe kaydetmeyi ayarlar ve denetçilere ve VM uygulamasına roller atar:
# Enable logging
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name contosologstorage --query id -o tsv)
az monitor diagnostic-settings create --name MHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource
# Assign the "Crypto Auditor" role to Contoso App Auditors group. It only allows them to read.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso App Auditors' --query 'id' -o tsv) --scope / --role "Managed HSM Crypto Auditor"
# Grant the "Crypto User" role to the VM's managed identity. It allows to use keys.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az vm identity show --name "vmname" --resource-group "ContosoAppRG" --query principalId -o tsv) --scope / --role "Managed HSM Crypto User"
# Assign "Managed HSM Crypto Service Encryption User" role to the Storage account identity
storage_account_principal=$(az storage account show --id $storageresource --query identity.principalId -o tsv)
# (if no identity exists), then assign a new one
[ "$storage_account_principal" ] || storage_account_principal=$(az storage account update --assign-identity --id $storageresource --query identity.principalId -o tsv)
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal
Üretim ortamları için dikkat edilmesi gerekenler
Bu öğretici, erişim denetimi uygulamasını göstermek için basitleştirilmiş bir senaryoyu gösterir.
Özel gereksinimlerinize göre yönetilen HSM'nize yönelik izinleri ayarlayın. Bu örnekte, güvenlik ekibinin DevOps personeline uygulamalarında kullanılmak üzere anahtar ve gizli dizi başvuruları (URI'ler ve parmak izleri) sağladığını varsaydık. Geliştiriciler ve operatörler doğrudan veri düzlemi erişimi gerektirmez. Bu öğretici, yönetilen HSM'nizin güvenliğini sağlamaya odaklansa da sanal makineler, depolama hesapları ve diğerleri gibi diğer Azure kaynaklarına benzer güvenlik önlemleri uygulayın.
Sonraki adımlar
- Yönetilen HSM erişim denetimi modelini kavramsal olarak anlamak için bkz. Yönetilen HSM erişim denetimi
- Yöneticiye yönelik başlangıç öğreticisi için bkz. Yönetilen HSM nedir?
- Yönetilen HSM günlüğü kullanımı hakkında daha fazla bilgi için bkz. Yönetilen HSM günlüğü
- Yönetilen HSM'de rolleri yönetme hakkında bilgi edinmek için Yönetilen HSM yerel RBAC'ye başvurun.
- Azure RBAC belgeleri
- Azure RBAC: Yerleşik roller
- Azure CLI ile Azure RBAC'leri yönetme
