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 wdroży pakiet usług w klastrze, zaszyfrowany tekst zostanie odszyfrowany za pomocą certyfikatu szyfrowania. Polecenie cmdlet Invoke-ServiceFabricEncryptText jest używane do utworzenia zaszyfrowanego tekstu dla hasła dodawanego do pliku ApplicationManifest.xml. Zobacz Zarządzanie wpisami tajnymi , 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 UseDefaultRepositoryCredentials atrybut do ContainerHostPolicies elementu w ApplicationManifest.xml z wartością true lub false .

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

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

  • DefaultContainerRepositoryAccountName (ciąg)
  • DefaultContainerRepositoryPassword (ciąg)
  • IsDefaultContainerRepositoryPasswordEncrypted (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.

    Witryna Azure Portal: opcja tworzenia tożsamości zestawu skalowania maszyn wirtualnych

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. Udziel uprawnień do zestawu skalowania maszyn wirtualnych w celu ściągania/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