Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Container Apps gör att programmet kan lagra känsliga konfigurationsvärden på ett säkert sätt. När hemligheter har definierats på programnivå är skyddade värden tillgängliga för revisioner i dina containerappar. Dessutom kan du referera till skyddade värden i skalningsregler. Information om hur du använder hemligheter med Dapr finns i Dapr-integrering.
- Hemligheter är begränsade till en applikation, utanför specifika versioner av en applikation.
- Nya revisioner genereras inte genom att lägga till, ta bort eller ändra hemligheter.
- Varje programrevision kan referera till en eller flera hemligheter.
- Flera revisioner kan referera till samma hemligheter.
En uppdaterad eller borttagen hemlighet påverkar inte automatiskt befintliga revisioner i din app. När en hemlighet uppdateras eller tas bort kan du hantera ändringar på något av två sätt:
- Distribuera en ny revision.
- Starta om en befintlig revision.
Innan du tar bort en hemlighet måste du distribuera en ny revision som inte längre refererar till den gamla hemligheten. Inaktivera sedan alla revisioner som refererar till hemligheten.
Behörigheter för att hantera hemligheter
Azure Container Apps exponerar separata listSecrets operationer för containerappar, jobb och Dapr-komponenter. Dessa operationer returnerar hemliga värden i klartext. Ge dessa behörigheter endast till identiteter som behöver läsa hemliga värden.
Flera inbyggda roller i Azure för Container Apps definierar behörigheter med hjälp av wildcard-mönster som en bekvämlighet. Följande exempel ger möjlighet att läsa hemliga värden via ett jokerkort eller uttrycklig listSecrets behörighet, även när rollnamnet eller beskrivningen antyder snävare åtkomst. Denna lista är inte uttömmande; granska de nuvarande Azure-inbyggda rollerna för containers innan du tilldelar en roll.
Följande roller ger tillgång till containerapp- eller jobbhemlighetsvärden:
| Fördefinierad roll | Relevanta behörigheter i rolldefinitionen | Matchning av hemligheter |
|---|---|---|
| Container Apps-bidragsgivare | Microsoft.App/containerApps/*/action |
Microsoft.App/containerApps/listSecrets/action |
| Container Apps-operatör | Microsoft.App/containerApps/*/action |
Microsoft.App/containerApps/listSecrets/action |
| Container Apps-jobbmedverkare | Microsoft.App/jobs/*/action |
Microsoft.App/jobs/listSecrets/action |
| Container Apps Jobs-operatör | Microsoft.App/jobs/*/action |
Microsoft.App/jobs/listSecrets/action |
Följande roller ger åtkomst till hemliga värden konfigurerade för Dapr-komponenter:
| Fördefinierad roll | Relevanta behörigheter i rolldefinitionen | Matchning av hemliga nycklar |
|---|---|---|
| Container Apps ManagedEnvironments-medverkare | Microsoft.App/managedEnvironments/*/action |
Microsoft.App/managedEnvironments/daprComponents/listSecrets/action |
| Container Apps ConnectedEnvironments-bidragsgivare |
Microsoft.App/connectedEnvironments/*, Microsoft.App/connectedEnvironments/daprComponents/listSecrets/action |
Microsoft.App/connectedEnvironments/daprComponents/listSecrets/action |
Den faktiska åtkomsten beror på rolltilldelningens omfattning. Till exempel ger en tilldelning i resursgruppens omfattning matchande behörighet för varje tillämplig resurs i den resursgruppen.
Important
Beskrivningarna av rollerna Container Apps Operator och Container Apps Jobs Operator betonar operativa uppgifter. Deras wildcard-handlingar ger dock också tillåtelse att lista hemligheter. Gå igenom hela behörighetslistan för en roll innan du tilldelar den.
Skapa en anpassad roll med snävare behörigheter
Inbyggda roller är en bekvämlighet, inte en begränsning. Om ingen inbyggd roll matchar den åtkomstnivå du vill ge, definiera en Azure-anpassad roll som bara listar de operationer du behöver och utelämnar åtgärdenlistSecrets.
Till exempel tillåter följande anpassade roll en användare att se jobb och exekveringar och stoppa körande exekveringar, utan att bevilja åtgärden listSecrets :
{
"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>"
]
}
Undvik jokermönster, som Microsoft.App/jobs/*/action i en anpassad rolldefinition. Detta jokertecken ger åtkomst till alla befintliga och framtida operationer som matchar mönstret, inklusive listSecrets.
Varning
För Container Apps-jobb räcker det inte att utelämna åtgärden listSecrets från en anpassad roll för att skydda hemliga värden om rollen också ger Microsoft.App/jobs/start/action.
Jobs - Start REST API accepterar en valfri exekveringsmall som kan åsidosätta huvud- och init-containerbilder, kommandon och miljövariabler. En användare som kan starta ett jobb och känner till namnet på en hemlighet kan hänvisa till den hemligheten i en valfri behållare och läsa dess värde i behållaren. Containern kan också använda vilken hanterad identitet som helst konfigurerad att vara tillgänglig för den. Behandla tillstånd att starta ett jobb som tillstånd att använda jobbets hemligheter och tillgängliga hanterade identiteter.
För mer information, se Anpassade Azure-roller.
Definiera hemligheter
Hemligheter definieras som en uppsättning namn/värde-par. Värdet för varje hemlighet anges direkt eller som en referens till en hemlighet som lagras i Azure Key Vault.
Anmärkning
Undvik att ange värdet för en hemlighet direkt i en produktionsmiljö. Använd i stället en referens till en hemlighet som lagras i Azure Key Vault, enligt beskrivningen i avsnittet Store secret i avsnittet Container Apps.
Lagra hemligt värde i Container Apps
Följande används när du definierar hemligheter via portalen eller via olika kommandoradsalternativ.
Gå till containerappen i Azure-portalen.
Under avsnittet Säkerhet väljer du Hemligheter.
Välj Lägg till.
I fönstret Lägg till hemlig kontext anger du följande information:
- Namn: Namnet på hemligheten.
- Typ: Välj Container Apps Secret.
- Värde: Värdet för hemligheten.
Välj Lägg till.
Referenshemlighet från Key Vault
När du definierar en hemlighet skapar du en referens till en hemlighet som lagras i Azure Key Vault. Container Apps hämtar automatiskt det hemliga värdet från Key Vault och gör det tillgängligt som en hemlighet i containerappen.
Om du vill referera till en hemlighet från Key Vault måste du först aktivera hanterad identitet i containerappen och ge identiteten åtkomst till Key Vault hemligheter.
Information om hur du aktiverar hanterad identitet i containerappen finns i Hanterade identiteter.
Om du vill ge åtkomst till Key Vault hemligheter beviljar du Azure RBAC-rollen Key Vault Secrets User till den hanterade identiteten.
Gå till containerappen i Azure-portalen.
Under avsnittet Säkerhet väljer du Identitet.
På fliken Systemtilldelat anger du Status till På.
Anmärkning
Du kan också använda en användartilldelad hanterad identitet som kan återanvändas över flera resurser och bevaras oberoende av appens livscykel. Om du vill använda den väljer du fliken Användartilldelad och väljer en befintlig identitet.
Välj Spara för att aktivera systemtilldelad hanterad identitet.
Ett popup-fönster visas för att bekräfta att du vill aktivera systemtilldelad hanterad identitet och registrera din containerapp med Microsoft Entra ID. Välj Ja.
Under avsnittet Säkerhet väljer du Hemligheter.
Välj Lägg till.
I fönstret Lägg till hemlig kontext anger du följande information:
- Namn: Namnet på hemligheten.
- Type: Välj Key Vault-referens.
-
Key Vault hemlig URL: URI:n för din hemlighet i Key Vault. Den här URI:n har följande formulär:
https://<YOUR_KEY_VAULT_NAME>.vault.azure.net/secrets/<YOUR_SECRET_NAME>/<32_DIGIT_HEX_ID> - Identitet: Välj Systemtilldelad.
Välj Lägg till.
Anmärkning
Om du använder UDR med Azure Firewall måste du lägga till tjänsttaggen AzureKeyVault och login.microsoft.com FQDN i listan över tillåtna för brandväggen. Se konfigurera UDR med Azure Firewall för att bestämma vilka ytterligare tjänsttaggar du behöver.
Key Vault hemlig URI och hemlig rotation
Den Key Vault hemliga URI:n måste ha något av följande format:
-
https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: Referera till en specifik version av en hemlighet. -
https://myvault.vault.azure.net/secrets/mysecret: Referera till den senaste versionen av en hemlighet.
Om en version inte anges i URI:n använder appen den senaste versionen som finns i nyckelvalvet. När nyare versioner blir tillgängliga hämtar appen automatiskt den senaste versionen inom 30 minuter. Alla aktiva revisioner som refererar till hemligheten i en miljövariabel startas automatiskt om för att hämta det nya värdet.
Om du vill ha fullständig kontroll över vilken version av en hemlighet som används anger du versionen i URI:n.
Referera till hemligheter i miljövariabler
När du har deklarerat hemligheter på programnivå enligt beskrivningen i avsnittet definiera hemligheter kan du referera till dem i miljövariabler när du skapar en ny revision i containerappen. När en miljövariabel refererar till en hemlighet fylls dess värde med det värde som definierats i hemligheten.
Exempel
I följande exempel visas ett program som deklarerar en reťazec pripojenia på programnivå. Den här anslutningen refereras i en containermiljövariabel och i en skalningsregel.
När du har definierat en hemlighet i containerappen kan du referera till den i en miljövariabel när du skapar en ny revision.
Gå till containerappen i Azure-portalen.
Under avsnittet Program väljer du Revisioner och repliker.
På sidan Revisioner och repliker väljer du Skapa ny revision.
På sidan Skapa och distribuera ny revision går du till fliken Container under avsnittet Containeravbildning och väljer en container.
Välj Redigera.
I fönstret Redigera en containerkontext väljer du fliken Miljövariabler .
Välj Lägg till.
Ange följande information:
- Namn: Namnet på miljövariabeln.
- Källa: Välj Referera till en hemlighet.
- Värde: Välj den hemlighet som du definierade tidigare.
Välj Spara.
På sidan Skapa och distribuera ny revision väljer du Skapa för att skapa den nya revisionen.
Montera hemligheter i en volym
När du har deklarerat hemligheter på programnivå enligt beskrivningen i avsnittet definiera hemligheter kan du referera till dem i volymmonteringar när du skapar en ny revision i containerappen. När du monterar hemligheter i en volym monteras varje hemlighet som en fil i volymen. Filnamnet är namnet på hemligheten och filinnehållet är värdet för hemligheten. Du kan läsa in alla hemligheter i en volymmontering eller läsa in specifika hemligheter.
Exempel
När du har definierat en hemlighet i containerappen kan du referera till den i en volymmontering när du skapar en ny revision.
Gå till containerappen i Azure-portalen.
Under avsnittet Program väljer du Revisioner och repliker.
På sidan Revisioner och repliker väljer du Skapa ny revision.
På sidan Skapa och distribuera ny revision går du till fliken Container under avsnittet Containeravbildning och väljer en container.
Välj Redigera.
I fönstret Redigera en containerkontext väljer du fliken Volymmonteringar .
Välj Skapa ny volym.
I fönstret Lägg till volymkontext anger du följande information:
-
Volymtyp: Välj
Secret. -
Namn:
mysecrets - Montera alla hemligheter: aktiverat
Anmärkning
Om du vill läsa in specifika hemligheter inaktiverar du Montera alla hemligheter och väljer de hemligheter som du vill läsa in.
-
Volymtyp: Välj
Välj Lägg till.
I fönstret Redigera en containerkontext går du till Volymnamn och väljer mysecrets.
Under Monteringssökväg ange
/mnt/secrets.Välj Spara.
På sidan Skapa och distribuera ny revision väljer du Skapa för att skapa den nya revisionen med volymmonteringen.
Felsöka Key Vault-referenser
När du refererar till hemligheter från Azure Key Vault kan det uppstå problem vid hemlig hämtning eller synkronisering. Här är vanliga fel och lösningar:
| Error | Orsak | Lösning |
|---|---|---|
| Hanterad identitet är inte aktiverad | Containerappen har ingen tilldelad hanterad identitet. | Aktivera systemtilldelad eller användartilldelad hanterad identitet i containerappen. Se Hanterade identiteter. |
| Det går inte att hitta identiteten | Den angivna hanterade identiteten finns inte eller är inte tilldelad till containerappen. | Kontrollera att identiteten har skapats och tilldelats containerappen i avsnittet Identitet . |
| Hemligheten har inaktiverats i Key Vault | Hemligheten är inaktiverad i den Key Vault resursen. | Gå till din Key Vault i Azure-portalen och aktivera hemligheten. |
| Autentiseringen misslyckades | Den hanterade identiteten saknar de behörigheter som krävs för att läsa hemligheten. | Ge rollen Key Vault Secrets User till den hanterade identiteten på din Key Vault. Se Key Vault Secrets User. |
| RBAC-behörighet nekad | Den hanterade identiteten har inte tillräcklig behörighet för att komma åt Key Vault. | Verifiera RBAC-rolltilldelningen på Key Vault och se till att den innehåller läsbehörigheter för hemligheter. |