Alıştırma - BT operatörü perspektifinden Java uygulamasının güvenliğini sağlama
Bu ünitede, Java uygulamanıza Azure Key Vault gizli dizilerine erişim vermek için Azure CLI'yi kullanacaksınız.
Bu gizli dizileri yöneten ve bunlara erişim izni veren bir BT operatörünün rolünü oynarsınız.
Gizli dizileri Azure Key Vault'ta depolama
Uygulamanızda depolamanız gereken iki gizli dizi vardı:
-
${azureDatabaseName}, daha önce ortam değişkeninde yapılandırılan PostgreSQL veritabanınınAZ_DATABASE_NAMEadıdır. Görmek için yazınecho $AZ_DATABASE_NAME. -
${azureDatabaseUsername}, ortam değişkeninde daha önceAZ_DATABASE_USERNAMEyapılandırılan veritabanı kullanıcı adının adıdır. Görmek için yazınecho $AZ_DATABASE_USERNAME. -
${azureDatabasePassword}, ortam değişkeninde daha önce yapılandırılan veritabanı parolasınınAZ_DATABASE_PASSWORDadıdır. Görmek için yazınecho $AZ_DATABASE_PASSWORD.
Şimdi bir Azure Key Vault örneği oluşturalım ve bu gizli dizileri içinde depolayalım:
AZ_KEY_VAULT_NAME=kv-${AZ_RESOURCE_GROUP}
az keyvault create \
--name $AZ_KEY_VAULT_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
az keyvault secret set \
--vault-name $AZ_KEY_VAULT_NAME \
--name azureDatabaseName \
--value ${AZ_DATABASE_NAME}
az keyvault secret set \
--vault-name $AZ_KEY_VAULT_NAME \
--name azureDatabaseUsername \
--value ${AZ_DATABASE_USERNAME}
az keyvault secret set \
--vault-name $AZ_KEY_VAULT_NAME \
--name azureDatabasePassword \
--value ${AZ_DATABASE_PASSWORD}
Uygulamanıza Azure Key Vault erişimi verme
Azure Key Vault'a erişmek için Spring Boot uygulamanızın önce bir Azure kimliği atanmış olması gerekir.
az spring app identity assign \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--system-assigned
Spring Boot uygulamanızı iki ortam değişkeniyle de yapılandırmanız gerekir. İlk değişken Azure Key Vault'un etkinleştirilmesidir. İkinci değişken, Azure Key Vault örneğinizin URL'sini vermektir. Bu komutun çalıştırılması birkaç dakika sürebilir.
az spring app update \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--env \
AZURE_KEYVAULT_ENABLED=true \
AZURE_KEYVAULT_URI=https://$AZ_KEY_VAULT_NAME.vault.azure.net/
Ardından, uygulamanıza Azure Key Vault örneğine erişim vermeniz gerekir.
AZ_SPRING_CLOUD_PRINCIPAL_ID=$(az spring app identity show --resource-group $AZ_RESOURCE_GROUP --service $AZ_SPRING_CLOUD --name application | jq --raw-output '.principalId')
az keyvault set-policy \
--name $AZ_KEY_VAULT_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--object-id $AZ_SPRING_CLOUD_PRINCIPAL_ID \
--secret-permissions get list
Uygulamanızın artık Azure Key Vault'ta depolanan gizli dizilere erişme izinlerine sahip olması gerekir.