Configurer les informations d’identification au référentiel de votre applications pour télécharger des images du registre de conteneurs
Configurez l’authentification du registre de conteneurs en ajoutant des RepositoryCredentials
à la section ContainerHostPolicies
du manifeste de votre application. Ajoutez le compte et le mot de passe de votre registre de conteneurs (myregistry.azurecr.io dans l’exemple ci-dessous). Cela permet au service de télécharger l’image conteneur à partir du référentiel.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Il est recommandé de chiffrer le mot de passe du référentiel à l’aide d’un certificat de chiffrement qui est déployé sur tous les nœuds du cluster. Lorsque Service Fabric déploie le package de service sur le cluster, le certificat de chiffrement est utilisé pour déchiffrer le texte chiffré. Le cmdlet Invoke-ServiceFabricEncryptText est utilisé pour créer le texte chiffré du mot de passe, qui est ensuite ajouté au fichier ApplicationManifest.xml. Pour plus d’informations sur les certificats et la sémantique du chiffrement, consultez Gestion des secrets.
Configurer les informations d’identification au niveau du cluster
Service Fabric vous permet de configurer des informations d’identification au niveau du cluster qui peuvent être utilisées comme informations d’identification de référentiel par défaut par les applications.
Cette fonctionnalité peut être activée ou désactivée en ajoutant l’attribut UseDefaultRepositoryCredentials
à ContainerHostPolicies
dans ApplicationManifest.xml avec une valeur true
ou false
.
<ServiceManifestImport>
...
<Policies>
<ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
...
</ServiceManifestImport>
Service Fabric utilise ensuite les informations d’identification de référentiel par défaut pouvant être spécifiées dans le manifeste de cluster sous la section Hosting
. Si UseDefaultRepositoryCredentials
est true
, Service Fabric lit les valeurs suivantes dans le manifeste de cluster :
- DefaultContainerRepositoryAccountName (chaîne)
- DefaultContainerRepositoryPassword (chaîne)
- IsDefaultContainerRepositoryPasswordEncrypted (valeur booléenne)
- DefaultContainerRepositoryPasswordType (chaîne)
Voici un exemple de ce qui peut être ajouté dans la section Hosting
du fichier ClusterManifestTemplate.json. La section Hosting
peut être ajoutée au moment de la création du cluster ou ultérieurement dans une mise à niveau de la configuration. Pour plus d’informations, consultez Personnaliser les paramètres de cluster Service Fabric et Gérer les secrets dans les applications Service Fabric.
"fabricSettings": [
...,
{
"name": "Hosting",
"parameters": [
{
"name": "EndpointProviderEnabled",
"value": "true"
},
{
"name": "DefaultContainerRepositoryAccountName",
"value": "someusername"
},
{
"name": "DefaultContainerRepositoryPassword",
"value": "somepassword"
},
{
"name": "IsDefaultContainerRepositoryPasswordEncrypted",
"value": "false"
},
{
"name": "DefaultContainerRepositoryPasswordType",
"value": "PlainText"
}
]
},
]
Utiliser des jetons en tant qu’informations d’identification du Registre
Service Fabric prend en charge l’utilisation de jetons en tant qu’informations d’identification pour télécharger des images pour vos conteneurs. Cette fonctionnalité tire parti de l’identité managée du groupe de machines virtuelles identiques sous-jacent pour s’authentifier auprès du registre, ce qui évite d’avoir à gérer les informations d’identification des utilisateurs. Pour plus d’informations, voir Identités managées pour les ressources Azure. L’utilisation de cette fonctionnalité requiert les étapes suivantes :
Vérifiez que l’option Identité managée affectée par le système est activée pour la machine virtuelle.
Notes
Pour une identité managée affectée par l’utilisateur, ignorez cette étape. Les étapes restantes ci-dessous fonctionnent de la même manière, à condition que le groupe identique ne soit associé qu’à une seule identité managée affectée par l’utilisateur.
Accordez au groupe de machines virtuelles identiques les autorisations nécessaires pour extraire/lire des images à partir du Registre. Dans le panneau Access Control (IAM) de votre Azure Container Registry sur le Portail Azure, ajoutez une attribution de rôle pour votre machine virtuelle :
Ensuite, modifiez le manifeste de votre application. Dans la section
ContainerHostPolicies
, ajoutez l’attribut‘UseTokenAuthenticationCredentials=”true”
.<ServiceManifestImport> <ServiceManifestRef ServiceManifestName="NodeServicePackage" ServiceManifestVersion="1.0"/> <Policies> <ContainerHostPolicies CodePackageRef="NodeService.Code" Isolation="process" UseTokenAuthenticationCredentials="true"> <PortBinding ContainerPort="8905" EndpointRef="Endpoint1"/> </ContainerHostPolicies> <ResourceGovernancePolicy CodePackageRef="NodeService.Code" MemoryInMB="256"/> </Policies> </ServiceManifestImport>
Notes
L’indicateur
UseDefaultRepositoryCredentials
défini sur true alors queUseTokenAuthenticationCredentials
a pour valeur true entraîne une erreur pendant le déploiement.
Étapes suivantes
- Apprenez-en davantage sur l’authentification au registre de conteneurs.