rolleri ve izinleri Azure Container Registry

Azure Container Registry hizmeti, Bir Azure kapsayıcı kayıt defterine farklı düzeylerde izinler sağlayan bir dizi yerleşik Azure rolünü destekler. Kayıt defteriyle etkileşim kurması gereken kullanıcılara, hizmet sorumlularına veya diğer kimliklere (örneğin kapsayıcı görüntülerini çekmek veya göndermek için) belirli izinler atamak için Azure rol tabanlı erişim denetimini (Azure RBAC) kullanın. Ayrıca, farklı işlemler için kayıt defterinde ayrıntılı izinlere sahip özel roller tanımlayabilirsiniz.

Rol/İzin Erişim Resource Manager Kayıt defteri oluşturma/silme Anında iletme görüntüsü Çekme resmi Görüntü verilerini silme İlkeleri değiştirme Resimleri imzalama
Sahip X X X X X X
Katılımcı X X X X X X
Okuyucu X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Rolleri atama

Bkz. Mevcut bir kullanıcıya, gruba, hizmet sorumlusuna veya yönetilen kimliğe rol ataması eklemeye yönelik üst düzey adımlar için rol ataması ekleme adımları. Azure portal, Azure CLI, Azure PowerShell veya diğer Azure araçlarını kullanabilirsiniz.

Hizmet sorumlusu oluştururken, kapsayıcı kayıt defteri gibi Azure kaynaklarına erişimini ve izinlerini de yapılandırırsınız. Azure CLI kullanan örnek bir betik için bkz. hizmet sorumlularıyla kimlik doğrulaması Azure Container Registry.

Kullanıcıları ve hizmetleri ayırt etmek

İzinler her uygulandığında, en iyi yöntem bir görevi gerçekleştirmek için bir kişi veya hizmet için en sınırlı izin kümesini sağlamaktır. Aşağıdaki izin kümeleri, insanlar ve başsız hizmetler tarafından kullanılabilecek bir dizi özelliği temsil eder.

CI/CD çözümleri

CI/CD çözümlerinden komutları otomatikleştirdiğinizde docker build , özelliklere ihtiyacınız vardır docker push . Bu başsız hizmet senaryoları için AcrPush rolünü atamanızı öneririz. Bu rol, daha geniş katkıda bulunan rolünden farklı olarak hesabın diğer kayıt defteri işlemlerini gerçekleştirmesini veya Azure Resource Manager erişmesini engeller.

Kapsayıcı konak düğümleri

Benzer şekilde, kapsayıcılarınızı çalıştıran düğümler AcrPull rolüne ihtiyaç duyar, ancak Okuyucu özellikleri gerektirmez.

Docker uzantısını Visual Studio Code

Visual Studio Code Docker uzantısı gibi araçlar için, kullanılabilir Azure kapsayıcı kayıt defterlerini listelemek için ek kaynak sağlayıcısı erişimi gerekir. Bu durumda, kullanıcılarınızın Okuyucu veya Katkıda Bulunan rolüne erişmesini sağlayın. Bu roller , docker push, , az acr listaz acr buildve diğer özelliklere izin verirdocker pull.

Erişim Resource Manager

Azure CLI ile Azure portal ve kayıt defteri yönetimi için Azure Resource Manager erişimi gerekir. Örneğin, komutunu kullanarak az acr list kayıt defterlerinin listesini almak için bu izin kümesine ihtiyacınız vardır.

Kayıt defteri oluşturma ve silme

Azure kapsayıcı kayıt defterleri oluşturma ve silme özelliği.

Anında iletme görüntüsü

Bir görüntüye veya docker push Helm grafiği gibi desteklenen başka bir yapıtı kayıt defterine gönderme özelliği. Yetkili kimliği kullanarak kayıt defteriyle kimlik doğrulaması gerektirir.

Çekme resmi

Kayıt defterinden docker pull karantinaya alınamayan bir görüntü veya Helm grafiği gibi desteklenen başka bir yapıt çekme özelliği. Yetkili kimliği kullanarak kayıt defteriyle kimlik doğrulaması gerektirir.

Görüntü verilerini silme

Kayıt defterinden kapsayıcı görüntülerini silme veya Helm grafikleri gibi desteklenen diğer yapıtları silme olanağı.

İlkeleri değiştirme

Kayıt defterinde ilke yapılandırma özelliği. İlkeler görüntü temizlemeyi, karantinayı etkinleştirmeyi ve görüntü imzalamayı içerir.

Resimleri imzalama

Genellikle otomatik bir işleme atanan ve hizmet sorumlusu kullanan görüntüleri imzalama özelliği. Bu izin genellikle güvenilir bir görüntüyü kayıt defterine göndermeye izin vermek için anında iletme görüntüsüyle birleştirilir. Ayrıntılar için bkz. Azure Container Registry'da içerik güveni.

Özel roller

Diğer Azure kaynaklarında olduğu gibi, Azure Container Registry için ayrıntılı izinlere sahip özel roller oluşturabilirsiniz. Ardından, özel rolleri bir kayıt defteriyle etkileşim kurması gereken kullanıcılara, hizmet sorumlularına veya diğer kimliklere atayın.

Özel bir role hangi izinlerin uygulanacağını belirlemek için Microsoft.ContainerRegistry eylemleri listesine bakın, yerleşik ACR rollerinin izin verilen eylemlerini gözden geçirin veya aşağıdaki komutu çalıştırın:

az provider operation show --namespace Microsoft.ContainerRegistry

Özel rol tanımlamak için bkz. Özel rol oluşturma adımları.

Not

Azure Resource Manager özel bağlantısıyla yapılandırılan kiracılarda Azure Container Registry, özel roller gibi Microsoft.ContainerRegistry/*/read joker Microsoft.ContainerRegistry/registries/*/write karakter eylemlerini destekler ve eşleşen tüm eylemlere erişim verir. ARM özel bağlantısı olmayan bir kiracıda, gerekli tüm kayıt defteri eylemlerini özel bir rolde tek tek belirtin.

Örnek: Görüntüleri içeri aktarmak için özel rol

Örneğin aşağıdaki JSON, görüntülerin kayıt defterine aktarılmasına izin veren özel bir rol için en düşük eylemleri tanımlar.

{
   "assignableScopes": [
     "/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
   ],
   "description": "Can import images to registry",
   "Name": "AcrImport",
   "permissions": [
     {
       "actions": [
         "Microsoft.ContainerRegistry/registries/push/write",
         "Microsoft.ContainerRegistry/registries/pull/read",
         "Microsoft.ContainerRegistry/registries/read",
         "Microsoft.ContainerRegistry/registries/importImage/action"
       ],
       "dataActions": [],
       "notActions": [],
       "notDataActions": []
     }
   ],
   "roleType": "CustomRole"
 }

JSON açıklamasını kullanarak özel rol oluşturmak veya güncelleştirmek için Azure CLI, Azure Resource Manager şablonu, Azure PowerShell veya diğer Azure araçlarını kullanın. Yerleşik Azure rolleri için rol atamalarını yönettiğiniz şekilde özel bir rol için rol atamaları ekleyin veya kaldırın.

Sonraki adımlar