Udostępnij za pośrednictwem


Konfigurowanie poświadczeń repozytorium dla aplikacji w celu pobrania obrazów kontenerów

Skonfiguruj uwierzytelnianie rejestru kontenerów przez dodanie RepositoryCredentials do ContainerHostPolicies sekcji manifestu aplikacji. Dodaj konto i hasło dla rejestru kontenerów (myregistry.azurecr.io w poniższym przykładzie), co umożliwia usłudze pobranie obrazu kontenera z repozytorium.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code">
            <RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

Zaleca się szyfrowanie hasła repozytorium przy użyciu certyfikatu szyfrowania wdrożonego we wszystkich węzłach klastra. Gdy usługa Service Fabric wdraża pakiet usługi w klastrze, certyfikat szyfrowania jest używany do odszyfrowania tekstu. Polecenie cmdlet Invoke-ServiceFabricEncryptText służy do tworzenia tekstu szyfru dla hasła, który jest dodawany do pliku ApplicationManifest.xml. Zobacz Zarządzanie tajemnicami, aby uzyskać więcej informacji na temat certyfikatów i semantyki szyfrowania.

Konfigurowanie poświadczeń dla całego klastra

Usługa Service Fabric umożliwia konfigurowanie poświadczeń dla całego klastra, które mogą być używane jako domyślne poświadczenia repozytorium przez aplikacje.

Tę funkcję można włączyć lub wyłączyć, dodając atrybut UseDefaultRepositoryCredentials do elementu ContainerHostPolicies w ApplicationManifest.xml z wartością true lub false.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

Usługa Service Fabric następnie korzysta z domyślnych poświadczeń repozytorium, które można określić w pliku ClusterManifest w sekcji Hosting. Jeśli UseDefaultRepositoryCredentials to true, usługa Service Fabric odczytuje następujące wartości z pliku ClusterManifest:

  • DefaultContainerRepositoryAccountName (ciąg znaków)
  • DefaultContainerRepositoryPassword (ciąg)
  • CzyHasłoDomyślnegoRepozytoriumKonteneraJestSzyfrowane (wartość logiczna)
  • DefaultContainerRepositoryPasswordType (ciąg)

Oto przykład tego, co można dodać wewnątrz Hosting sekcji w pliku ClusterManifestTemplate.json. Sekcję Hosting można dodać podczas tworzenia klastra lub nowszej w ramach uaktualniania konfiguracji. Aby uzyskać więcej informacji, zobacz Zmienianie ustawień klastra usługi Azure Service Fabric i Zarządzanie wpisami tajnymi aplikacji usługi Azure 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"
          }
        ]
      },
]

Używanie tokenów jako poświadczeń rejestru

Usługa Service Fabric obsługuje używanie tokenów jako poświadczeń do pobierania obrazów dla kontenerów. Ta funkcja wykorzystuje tożsamość zarządzaną bazowego zestawu skalowania maszyn wirtualnych do uwierzytelniania w rejestrze, eliminując konieczność zarządzania poświadczeniami użytkownika. Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane dla zasobów platformy Azure. Korzystanie z tej funkcji wymaga wykonania następujących kroków:

  1. Upewnij się, że dla maszyny wirtualnej jest włączona tożsamość zarządzana przypisana przez system .

    Opcja tworzenia tożsamości w zestawie skalowania maszyn wirtualnych w Portalu Azure

Uwaga

W przypadku tożsamości zarządzanej przypisanej przez użytkownika pomiń ten krok. Pozostałe poniższe kroki będą działać tak samo, o ile zestaw skalowania jest skojarzony tylko z jedną tożsamością zarządzaną przypisaną przez użytkownika.

  1. Przyznaj uprawnienia zestawowi skalowania maszyn wirtualnych do pobierania/odczytywania obrazów z rejestru. W bloku Kontrola dostępu (IAM) usługi Azure Container Registry w witrynie Azure Portal dodaj przypisanie roli dla maszyny wirtualnej:

    Dodawanie podmiotu zabezpieczeń maszyny wirtualnej do usługi ACR

  2. Następnie zmodyfikuj manifest aplikacji. ContainerHostPolicies W sekcji dodaj atrybut ‘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>
    

    Uwaga

    Flaga UseDefaultRepositoryCredentials ustawiona na true, gdy UseTokenAuthenticationCredentials jest true, spowoduje błąd podczas wdrażania.

Następne kroki