Bagikan melalui


Mengonfigurasi kredensial repositori untuk aplikasi Anda untuk mengunduh citra kontainer

Konfigurasikan autentikasi registri kontainer dengan menambahkan RepositoryCredentials ke ContainerHostPolicies bagian manifes aplikasi Anda. Tambahkan akun dan kata sandi untuk registri kontainer Anda (myregistry.azurecr.io dalam contoh di bawah), yang memungkinkan layanan mengunduh citra kontainer dari repositori.

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

Sebaiknya Anda mengenkripsi kata sandi repositori dengan menggunakan sertifikat penyandian data yang disebarkan ke semua node kluster. Ketika Service Fabric menyebarkan paket layanan ke kluster, sertifikat penyandian data digunakan untuk mendekripsi teks sandi. Cmdlet Invoke-ServiceFabricEncryptText digunakan untuk membuat teks sandi untuk kata sandi, yang ditambahkan ke file ApplicationManifest.xml Anda. Lihat Manajemen Rahasia untuk informasi selengkapnya tentang sertifikat dan semantik enkripsi.

Mengonfigurasi kredensial di seluruh kluster

Service Fabric memungkinkan Anda mengonfigurasi kredensial di seluruh kluster yang dapat digunakan sebagai kredensial repositori default oleh aplikasi.

Fitur ini dapat diaktifkan atau dinonaktifkan dengan menambahkan UseDefaultRepositoryCredentials atribut ContainerHostPolicies ke dalam ApplicationManifest.xml dengan true atau false nilai.

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

Service Fabric kemudian menggunakan kredensial repositori default yang dapat ditentukan dalam ClusterManifest di bawah Hosting bagian. Jika UseDefaultRepositoryCredentials demikian true, Service Fabric membaca nilai-nilai berikut dari ClusterManifest:

  • DefaultContainerRepositoryAccountName (string)
  • DefaultContainerRepositoryPassword (string)
  • IsDefaultContainerRepositoryPasswordEncrypted (bool)
  • DefaultContainerRepositoryPasswordType (string)

Berikut adalah contoh apa saja yang dapat ditambahkan di dalam Hosting bagian di file ClusterManifestTemplate.jspada. Bagian Hosting dapat ditambahkan pada pembuatan kluster atau nanti dalam peningkatan konfigurasi. Untuk informasi selengkapnya, lihat Mengubah pengaturan kluster Azure Service Fabric dan Mengelola rahasia aplikasi 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"
          }
        ]
      },
]

Gunakan token sebagai kredensial registri

Service Fabric mendukung penggunaan token sebagai kredensial untuk mengunduh citra untuk kontainer Anda. Fitur ini memanfaatkan identitas terkelola dari skala mesin virtual yang mendasarinya yang diatur untuk mengautentikasi ke registri, menghilangkan kebutuhan untuk mengelola kredensial pengguna. Untuk info selengkapnya, lihat Identitas Terkelola untuk Sumber Daya Azure. Menggunakan fitur ini memerlukan langkah-langkah berikut:

  1. Pastikan bahwa Identitas Terkelola yang Ditetapkan Sistem diaktifkan untuk VM.

    Portal Microsoft Azure: Membuat opsi identitas set skala mesin virtual

Catatan

Untuk identitas terkelola yang ditetapkan pengguna, lewati langkah ini. Langkah-langkah yang tersisa di bawah ini akan berfungsi sama, selama kumpulan skala hanya terkait dengan satu identitas terkelola yang ditetapkan pengguna.

  1. Berikan izin ke skala mesin virtual yang diatur untuk menarik/membaca citra dari registri. Dari bilah Access Control (IAM) Azure Container Registry Anda di portal Microsoft Azure, tambahkan penetapan peran untuk mesin virtual Anda:

    Menambahkan prinsipal VM ke ACR

  2. Selanjutnya, ubah manifes aplikasi Anda. Di ContainerHostPolicies bagian, tambahkan atribut ‘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>
    

    Catatan

    Bendera UseDefaultRepositoryCredentials yang diatur ke true sementara UseTokenAuthenticationCredentials true akan menyebabkan kesalahan selama penyebaran.

Langkah berikutnya