Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Container Apps stelt uw toepassing in staat om veilig gevoelige configuratiewaarden op te slaan. Zodra geheimen op toepassingsniveau zijn gedefinieerd, zijn beveiligde waarden beschikbaar voor revisies in uw container-apps. Daarnaast kunt u verwijzen naar beveiligde waarden binnen schaalregels. Raadpleeg Dapr-integratie voor informatie over het gebruik van geheimen met Dapr.
- Geheimen zijn afgestemd op een toepassing, buiten een specifieke revisie van een toepassing.
- Nieuwe revisies worden niet gegenereerd door geheimen toe te voegen, te verwijderen of te wijzigen.
- Elke toepassingsrevisie kan naar een of meer geheimen verwijzen.
- Meerdere revisies kunnen verwijzen naar dezelfde geheimen.
Een bijgewerkt of verwijderd geheim heeft niet automatisch invloed op bestaande revisies in uw app. Wanneer een geheim wordt bijgewerkt of verwijderd, kunt u op twee manieren op wijzigingen reageren:
- Implementeer een nieuwe revisie.
- Start een bestaande revisie opnieuw.
Voordat u een geheim verwijdert, implementeert u een nieuwe revisie die niet meer naar het oude geheim verwijst. Schakel vervolgens alle revisies uit die verwijzen naar het geheim.
Rechten voor het beheren van geheimen
Azure Container Apps maakt aparte listSecrets bewerkingen beschikbaar voor container-apps, taken en Dapr-componenten. Deze bewerkingen geven geheime waarden in platte tekst terug. Verleen deze rechten alleen aan identiteiten die geheime waarden moeten lezen.
Verschillende ingebouwde Azure-rollen voor Container Apps definiëren permissies met behulp van wildcard-patronen als een gemak. De volgende voorbeelden geven de mogelijkheid om geheime waarden te lezen via een wildcard of expliciete listSecrets toestemming, zelfs als de rolnaam of beschrijving een smallere toegang suggereert. Deze lijst is niet uitputtend; bekijk de huidige ingebouwde Azure-rollen voor containers voordat je een rol toewijst.
De volgende rollen geven toegang tot container-app- of jobgeheimwaarden:
| Ingebouwde rol | Relevante permissies in de roldefinitie | Bewerking voor het vergelijken van geheimen |
|---|---|---|
| Inzender voor Container Apps | Microsoft.App/containerApps/*/action |
Microsoft.App/containerApps/listSecrets/action |
| Container Apps-beheerder | Microsoft.App/containerApps/*/action |
Microsoft.App/containerApps/listSecrets/action |
| Container Apps-functies Bijdrager | Microsoft.App/jobs/*/action |
Microsoft.App/jobs/listSecrets/action |
| Container Apps Jobs-operator | Microsoft.App/jobs/*/action |
Microsoft.App/jobs/listSecrets/action |
De volgende rollen geven toegang tot geheime waarden die zijn geconfigureerd voor Dapr-componenten:
| Ingebouwde rol | Relevante permissies in de roldefinitie | Bewerking voor overeenkomende geheimen |
|---|---|---|
| Bijdrager voor ManagedEnvironments voor Container Apps | Microsoft.App/managedEnvironments/*/action |
Microsoft.App/managedEnvironments/daprComponents/listSecrets/action |
| Inzender voor Container Apps ConnectedEnvironments |
Microsoft.App/connectedEnvironments/*, Microsoft.App/connectedEnvironments/daprComponents/listSecrets/action |
Microsoft.App/connectedEnvironments/daprComponents/listSecrets/action |
De effectieve toegang hangt af van het bereik van de roltoewijzing. Bijvoorbeeld, een toewijzing op het bereik van de resourcegroep verleent de overeenkomstige machtiging voor elke van toepassing zijnde resource in die resourcegroep.
Important
De beschrijvingen van de rollen Container Apps Operator en Container Apps Jobs Operator benadrukken operationele taken. Hun wildcard-acties geven echter ook toestemming om geheimen te vermelden. Bekijk de volledige toestemmingslijst van een functie voordat je deze toewijst.
Maak een aangepaste rol aan met smallere rechten
Ingebouwde rollen zijn een gemak, geen beperking. Als geen ingebouwde rol overeenkomt met het toegangsniveau dat je wilt geven, definieer dan een aangepaste Azure-rol die alleen de benodigde bewerkingen vermeldt en de listSecrets actie weglaat.
Bijvoorbeeld, de volgende aangepaste rol stelt een gebruiker in staat om taken en uitvoeringen te bekijken en uitvoeringen te stoppen, zonder de listSecrets actie toe te staan:
{
"Name": "Container Apps Jobs Execution Stopper",
"IsCustom": true,
"Description": "View Container Apps jobs and stop running executions.",
"Actions": [
"Microsoft.App/jobs/read",
"Microsoft.App/jobs/executions/read",
"Microsoft.App/jobs/execution/read",
"Microsoft.App/jobs/stop/action",
"Microsoft.App/jobs/stop/execution/action",
"Microsoft.App/managedEnvironments/read"
],
"NotActions": [],
"AssignableScopes": [
"/subscriptions/<SUBSCRIPTION_ID>"
]
}
Vermijd jokerpatronen zoals Microsoft.App/jobs/*/action in een aangepaste roldefinitie. Deze wildcard verleent alle huidige en toekomstige bewerkingen die overeenkomen met het patroon, inclusief listSecrets.
Warning
Voor Container Apps-taken is het weglaten van de actie listSecrets uit een aangepaste rol niet voldoende om geheime waarden te beschermen als de rol ook Microsoft.App/jobs/start/action verleent. De Jobs - Start REST API accepteert een optionele uitvoeringstemplate die de hoofd- en init-containerimages, commando's en omgevingsvariabelen kan overschrijven. Een gebruiker die een taak kan starten en de naam van een geheim kent, kan dat geheim uit een container van keuze raadplegen en de waarde ervan in de container lezen. De container kan ook elke beheerde identiteit gebruiken die zo is ingesteld dat deze beschikbaar is. Beschouw toestemming om met een baan te beginnen als toestemming om de geheimen van de baan en beschikbare beheerde identiteiten te gebruiken.
Zie aangepaste Azure-rollen voor meer informatie.
Geheimen definiëren
Geheimen worden gedefinieerd als een set naam-/waardeparen. De waarde van elk geheim wordt rechtstreeks opgegeven of als verwijzing naar een geheim dat is opgeslagen in Azure Key Vault.
Opmerking
Vermijd het opgeven van de waarde van een geheim rechtstreeks in een productieomgeving. Gebruik in plaats daarvan een verwijzing naar een geheim dat is opgeslagen in Azure Key Vault, zoals beschreven in de sectie Geheim opslaan in de sectie Container Apps.
Geheime waarde opslaan in Container Apps
Het volgende wordt gebruikt wanneer u geheimen definieert via de portal of via verschillende opdrachtregelopties.
Ga naar de container-app in de Azure portal.
Selecteer Geheimen in de sectie Beveiliging.
Selecteer Toevoegen.
Voer in het deelvenster Geheime context toevoegen de volgende gegevens in:
- Naam: De naam van het geheim.
- Type: Selecteer Container Apps Secret.
- Waarde: De waarde van het geheim.
Selecteer Toevoegen.
Referentiegeheim uit Key Vault
Wanneer u een geheim definieert, maakt u een verwijzing naar een geheim dat is opgeslagen in Azure Key Vault. Container Apps haalt automatisch de geheime waarde op uit Key Vault en maakt deze beschikbaar als een geheim in uw container-app.
Als u wilt verwijzen naar een geheim uit Key Vault, moet u eerst beheerde identiteit inschakelen in uw container-app en de identiteit toegang verlenen tot de Key Vault geheimen.
Raadpleeg Beheerde identiteiten om beheerde identiteiten in uw container-app in te schakelen.
Als u toegang wilt verlenen tot Key Vault geheimen, verleent u de Azure RBAC-rol Key Vault Geheimengebruiker aan de beheerde identiteit.
Ga naar de container-app in de Azure portal.
Selecteer Identiteit in de sectie Beveiliging.
Stel op het tabblad Systeem toegewezen de status in op Aan.
Opmerking
U kunt ook een door de gebruiker toegewezen beheerde identiteit gebruiken, die opnieuw kan worden gebruikt voor meerdere resources en onafhankelijk van de levenscyclus van de app blijft bestaan. Als u dit wilt gebruiken, selecteert u het tabblad Door de gebruiker toegewezen en kiest u een bestaande identiteit.
Selecteer Opslaan om door het systeem toegewezen beheerde identiteit in te schakelen.
Er verschijnt een pop-up om te bevestigen dat u door het systeem toegewezen beheerde identiteit wilt inschakelen en uw container-app wilt registreren bij Microsoft Entra ID. Selecteer Ja.
Selecteer Geheimen in de sectie Beveiliging.
Selecteer Toevoegen.
Voer in het deelvenster Geheime context toevoegen de volgende gegevens in:
- Naam: De naam van het geheim.
- Type: Selecteer Sleutelkluisverwijzing.
-
Key Vault geheime URL: de URI van uw geheim in Key Vault. Deze URI heeft de volgende vorm:
https://<YOUR_KEY_VAULT_NAME>.vault.azure.net/secrets/<YOUR_SECRET_NAME>/<32_DIGIT_HEX_ID> - Identiteit: Selecteer Systeem toegewezen.
Selecteer Toevoegen.
Opmerking
Als u UDR met Azure Firewall gebruikt, moet u de AzureKeyVault-servicetag en de login.microsoft.com FQDN toevoegen aan de acceptatielijst voor uw firewall. Raadpleeg UDR configureren met Azure Firewall om te bepalen welke extra servicetags u nodig hebt.
Key Vault-geheim-URI en geheime rotatie
De Key Vault geheime URI moet een van de volgende indelingen hebben:
-
https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: Verwijs naar een specifieke versie van een geheim. -
https://myvault.vault.azure.net/secrets/mysecret: Verwijs naar de nieuwste versie van een geheim.
Als een versie niet is opgegeven in de URI, gebruikt de app de nieuwste versie die in de sleutelkluis aanwezig is. Wanneer nieuwere versies beschikbaar komen, haalt de app binnen 30 minuten automatisch de nieuwste versie op. Actieve revisies die verwijzen naar het geheim in een omgevingsvariabele, worden automatisch opnieuw opgestart om de nieuwe waarde op te halen.
Geef de versie in de URI op voor volledig beheer van welke versie van een geheim wordt gebruikt.
Verwijzen naar geheimen in omgevingsvariabelen
Nadat u geheimen op toepassingsniveau hebt declareren zoals beschreven in de sectie Geheimen definiëren , kunt u ernaar verwijzen in omgevingsvariabelen wanneer u een nieuwe revisie in uw container-app maakt. Wanneer een omgevingsvariabele verwijst naar een geheim, wordt de waarde gevuld met de waarde die in het geheim is gedefinieerd.
Voorbeeld
In het volgende voorbeeld ziet u een toepassing die een verbindingsreeks declareert op toepassingsniveau. Naar deze verbinding wordt verwezen in een containeromgevingsvariabele en in een schaalregel.
Nadat u een geheim in uw container-app hebt gedefinieerd, kunt u ernaar verwijzen in een omgevingsvariabele wanneer u een nieuwe revisie maakt.
Ga naar de container-app in de Azure portal.
In de sectie Toepassing, selecteer Revisies en replica's.
Selecteer op de pagina Revisies en replica'sde optie Nieuwe revisie maken.
Selecteer op de pagina Nieuwe revisie maken en implementeren op het tabblad Container , onder de sectie Containerinstallatiekopieën , een container.
Kies Bewerken.
Selecteer in het deelvenster Een containercontext bewerken het tabblad Omgevingsvariabelen .
Selecteer Toevoegen.
Voer de volgende gegevens in:
- Naam: De naam van de omgevingsvariabele.
- Bron: Selecteer Verwijzing naar een geheim.
- Waarde: Selecteer het geheim dat u eerder hebt gedefinieerd.
Selecteer Opslaan.
Selecteer Op de pagina Nieuwe revisie maken en implementeren de optie Maken om de nieuwe revisie te maken.
Het monteren van geheimen in een volume
Nadat u geheimen op toepassingsniveau hebt gedeclareerd zoals beschreven in de sectie Geheimen definiëren, kunt u ze gebruiken in volume mounts wanneer u een nieuwe revisie in uw container-app maakt. Wanneer u geheimen in een volume koppelt, wordt elk geheim gekoppeld als een bestand in het volume. De bestandsnaam is de naam van het geheim en de bestandsinhoud is de waarde van het geheim. U kunt alle geheimen gegevens in een volume-aankoppeling laden, of specifieke geheimen gegevens laden.
Voorbeeld
Nadat u een geheim in uw container-app hebt gedefinieerd, kunt u ernaar verwijzen via een volume mount bij het maken van een nieuwe revisie.
Ga naar de container-app in de Azure portal.
In de sectie Toepassing, selecteer Revisies en replica's.
Selecteer op de pagina Revisies en replica'sde optie Nieuwe revisie maken.
Selecteer op de pagina Nieuwe revisie maken en implementeren op het tabblad Container , onder de sectie Containerinstallatiekopieën , een container.
Kies Bewerken.
Selecteer in het deelvenster Container bewerken het tabblad Volumemounts.
Selecteer Nieuw volume maken.
Voer in het deelvenster Volume toevoegen de volgende gegevens in:
-
Volumetype: Selecteer
Secret. -
Naam:
mysecrets - Alle geheimen koppelen: ingeschakeld
Opmerking
Als u specifieke geheimen wilt laden, schakelt u Alle geheimen mounten uit en selecteert u de geheimen die u wilt laden.
-
Volumetype: Selecteer
Selecteer Toevoegen.
Selecteer mysecrets in het deelvenster Een containercontext bewerken onder Volumenaam.
Voer onder Mountpad het in
/mnt/secrets.Selecteer Opslaan.
Klik op de pagina Nieuwe revisie maken en implementeren op Maken om de nieuwe revisie met de volumekoppeling te maken.
Problemen met Key Vault verwijzingen oplossen
Wanneer u verwijst naar geheimen uit Azure Key Vault, kunnen er problemen optreden tijdens het ophalen of synchroniseren van geheimen. Hier volgen veelvoorkomende fouten en oplossingen:
| Fout | Oorzaak | Resolutie / Besluit |
|---|---|---|
| Beheerde identiteit niet ingeschakeld | Aan de container-app is geen beheerde identiteit toegewezen. | Schakel door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in uw container-app in. Raadpleeg Beheerde identiteiten. |
| Identiteit niet gevonden | De opgegeven beheerde identiteit bestaat niet of is niet toegewezen aan de container-app. | Controleer of de identiteit is gemaakt en toegewezen aan de container-app in de sectie Identiteit . |
| Secret uitgeschakeld in Key Vault | Het geheim is uitgeschakeld in de Key Vault resource. | Ga naar uw Key Vault in de Azure-portal en schakel het geheim in. |
| Verificatie is mislukt | De beheerde identiteit beschikt niet over de vereiste machtigingen om het geheim te lezen. | Verdeel de rol Key Vault Secrets User toe aan de beheerde identiteit op uw Key Vault. Zie Key Vault Secrets User. |
| RBAC-machtiging geweigerd | De beheerde identiteit heeft onvoldoende machtigingen voor toegang tot de Key Vault. | Controleer de RBAC-roltoewijzing op de Key Vault en zorg ervoor dat deze leesmachtigingen voor geheimen bevat. |