Hitelesítés a Go-hoz készült Azure SDK-val felügyelt identitás használatával
Ebben az oktatóanyagban egy felügyelt identitással rendelkező Azure-beli virtuális gépet fog konfigurálni az Azure-beli hitelesítéshez az Azure SDK for Go használatával.
A felügyelt identitások nem igénylik a hitelesítő adatok kezelését azáltal, hogy egy identitást közvetlenül egy Azure-erőforrásnak adnak meg. Az identitáshoz rendelt engedélyek hozzáférést biztosítanak az erőforrásnak a felügyelt identitásokat támogató egyéb Azure-erőforrásokhoz. Nem szükséges hitelesítő adatokat átadnia az alkalmazásnak.
Ezt az oktatóanyagot követve hozzárendelhet egy felügyelt identitást egy virtuális géphez, és felügyelt identitással hitelesítheti magát az Azure-ban.
Előfeltételek
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
- Telepítés: 1.18-es vagy újabb verzió
1. A környezet konfigurálása
A kezdés előtt konfigurálnia kell a környezetet.
Virtuális gép üzembe helyezése
Virtuális gép üzembe helyezése az Azure-ban. A Go-kódot futtatva létrehoz egy titkos kulcsot az Azure Key Vaultban a virtuális gépről.
Azure-erőforráscsoport létrehozása
az group create --name go-on-azure --location eastus
Módosítsa a paramétert
--location
a környezetének megfelelő értékre.Hozza létre az Azure-beli virtuális gépet.
az vm create \ --resource-group go-on-azure \ --name go-on-azure-vm \ --image canonical:ubuntuserver:19.04:latest \ --admin-username azureuser \ --admin-password <password>
Cserélje le a
<password>
jelszót.
A felügyelt identitásokat támogató egyéb szolgáltatásokról további információt az Azure-erőforrások felügyelt identitását támogató szolgáltatások című témakörben talál.
Key Vault-példány üzembe helyezése
Hozzon létre egy új Azure Key Vault-példányt az alábbi parancs futtatásával:
az keyvault create --location eastus --name `<keyVaultName>` --resource-group go-on-azure
Cserélje le <keyVaultName>
globálisan egyedi névre.
2. Felügyelt identitás létrehozása
Az Azure kétféle felügyelt identitást támogat; rendszer által hozzárendelt és felhasználó által hozzárendelt.
A rendszer által hozzárendelt identitások közvetlenül egy Azure-erőforráshoz vannak csatolva, és csak erre az erőforrásra korlátozódnak. A felhasználó által hozzárendelt identitások önálló erőforrások, amelyek egy vagy több Azure-erőforráshoz rendelhetők.
Ha többet szeretne megtudni a rendszer által hozzárendelt és a felhasználó által hozzárendelt identitástípusok közötti különbségről, tekintse meg a felügyelt identitástípusokat.
Válasszon az alábbi lehetőségek közül:
- 1. lehetőség: Rendszer által hozzárendelt identitás létrehozása
- 2. lehetőség: Felhasználó által hozzárendelt identitás létrehozása
1. lehetőség: Rendszer által hozzárendelt identitás létrehozása
Futtassa a következő parancsokat egy rendszer által hozzárendelt felügyelt identitás létrehozásához:
az vm identity assign -g go-on-azure -n go-on-azure-vm
2. lehetőség: Felhasználó által hozzárendelt identitás létrehozása
Futtassa a következő parancsokat egy felhasználó által hozzárendelt felügyelt identitás létrehozásához:
az identity create -g go-on-azure -n GoUserIdentity
az vm identity assign -g go-on-azure -n go-on-azure-vm --identities <UserIdentityId>
Cserélje le <UserIdentityId>
a felügyelt felhasználói identitás azonosítójára.
További információ: Felügyelt identitások konfigurálása Azure-erőforrásokhoz azure-beli virtuális gépen az Azure CLI használatával.
3. Szerepkör hozzárendelése a felügyelt identitáshoz
A felügyelt identitás létrehozása után szerepköröket rendel hozzá, hogy az identitásengedélyeket más Azure-erőforrásokhoz is elérhesse. Ebben az oktatóanyagban a felügyelt identitás beépített szerepkörét Key Vault Contributor
rendeli hozzá, hogy a Go-alkalmazás létrehozhasson egy titkos kulcsot a Key Vault-példányban.
Válasszon az alábbi lehetőségek közül:
- 1. lehetőség: Szerepkör hozzárendelése egy rendszer által hozzárendelt identitáshoz
- 2. lehetőség: Szerepkör hozzárendelése felhasználó által hozzárendelt identitáshoz
1. lehetőség: Szerepkör hozzárendelése egy rendszer által hozzárendelt identitáshoz
Futtassa a következő parancsokat a Key Vault Contributor
szerepkör a rendszer által hozzárendelt felügyelt identitáshoz való hozzárendeléséhez:
#output system identity principal ID
az vm identity show --name go-on-azure-vm --resource-group go-on-azure --query 'principalId' -o tsv
#output key vault ID
scope=$(az keyvault show --name go-on-azure-kv --query id -o tsv)
az role assignment create --assignee '<principalId>' --role 'Key Vault Contributor' --scope '<keyVaultId>'
2. lehetőség: Szerepkör hozzárendelése felhasználó által hozzárendelt identitáshoz
Futtassa a következő parancsokat a Key Vault Contributor
szerepkör felhasználó által hozzárendelt felügyelt identitáshoz való hozzárendeléséhez:
#output user identity principal ID
az identity show --resource-group go-on-azure --name GoUserIdentity --query 'principalId' -o tsv
#output key vault ID
az keyvault show --name go-on-azure-kv --query id -o tsv
az role assignment create --assignee '<principalId>' --role 'Key Vault Contributor' --scope '<keyVaultId>'
A beépített szerepkörökről az Azure beépített szerepköreiből tudhat meg többet.
4. Key Vault-titkos kulcs létrehozása a Go használatával
Következő SSH az Azure-beli virtuális gépre, telepítse a Go-t, és építette ki a Go-csomagot.
A Go telepítése az Azure-beli virtuális gépen
Kérje le az Azure-beli virtuális gép nyilvános IP-címét.
az vm show -d -g go-on-azure -n go-on-azure-vm --query publicIps -o tsv
SSH az Azure-beli virtuális gépre.
ssh azureuser@<public-ip>
Cserélje le
<public-ip>
az Azure-beli virtuális gép nyilvános IP-címére.A Go telepítése
sudo add-apt-repository ppa:longsleep/golang-backports; sudo apt update; sudo apt install golang-go -y
A Go-csomag létrehozása
Hozzon létre egy új könyvtárat a kezdőkönyvtárban lévő névvel
go-on-azure
.mkidr ~/go-on-azure
Váltson a könyvtárra
go-on-azure
.cd ~/go-on-azure
Futtassa
go mod init
ago.mod
fájl létrehozásához.go mod init go-on-azure
Futtassa
go get
a szükséges Go-modulok telepítéséhez.go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity" go get "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets"
Hozzon létre egy
main.go
fájlt, és másolja be a következő kódot.package main import ( "context" "fmt" "log" "os" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets" ) func createSecret() { keyVaultName := os.Getenv("KEY_VAULT_NAME") secretName := "quickstart-secret" secretValue := "createdWithGO" keyVaultUrl := fmt.Sprintf("https://%s.vault.azure.net/", keyVaultName) cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Fatalf("failed to obtain a credential: %v", err) } client, err := azsecrets.NewClient(keyVaultUrl, cred, nil) if err != nil { log.Fatalf("failed to create a client: %v", err) } resp, err := client.SetSecret(context.TODO(), secretName, secretValue, nil) if err != nil { log.Fatalf("failed to create a secret: %v", err) } fmt.Printf("Name: %s, Value: %s\n", *resp.ID, *resp.Value) } func main() { createSecret() }
A kód futtatása előtt hozzon létre egy környezeti változót .KEY_VAULT_NAME
Állítsa a környezeti változó értékét a korábban létrehozott Azure Key Vault nevére. Cserélje le <KeyVaultName>
az Azure Key Vault-példány nevére.
export KEY_VAULT_NAME=<KeyVaultName>
Ezután futtassa go run
a parancsot egy kulcstartó titkos kulcsának létrehozásához.
go run main.go
Ellenőrizze, hogy a kulcstartó titkos kódja az Azure PowerShell, az Azure CLI vagy az Azure Portal használatával lett-e létrehozva.
További lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: