Bir ACK kümesinde Kubernetes kaynaklarını yönetmek hem Resource Access Management (RAM) hem de Rol Tabanlı Erişim Kontrolü (RBAC) izinlerini gerektirir. Alibaba Cloud hesapları varsayılan olarak tüm RAM izinlerine sahiptir; ancak RAM kullanıcılarına ve rollerine her iki izin türünün de açıkça atanması gerekir. Bu izinleri atayarak ilgili RAM kullanıcısının veya rolünün kümedeki Kubernetes kaynaklarında işlem yapmasını sağlayabilirsiniz.
Çalışma Mantığı
ACK yetkilendirme sistemi iki katmandan oluşur: Alibaba Cloud RAM ve Kubernetes RBAC. Bu iki katman birlikte, cloud kaynaklarından küme içi kaynaklara kadar eksiksiz bir yetkilendirme zinciri oluşturur.
RAM: Bir kümeye kimlerin erişebileceğini kontrol eder. Cloud kaynak düzeyinde izinleri yönetir ve kullanıcının ACK kümeleri ile bağımlı cloud hizmetlerinde OpenAPI işlemlerini yürütme yetkisini belirler.
RBAC: Bir kullanıcının küme içinde neler yapabileceğini belirler. Küme içinde ayrıntılı yetkilendirme sağlar ve kullanıcının Podlar ve Dağıtımlar gibi belirli Kubernetes kaynaklarında oluşturma veya silme gibi hangi işlemleri gerçekleştirebileceğini tanımlar.
Adım 1: RAM izinlerini atayın
RAM izinleri, bir kullanıcının bir ACK kümesinin cloud kaynaklarına erişip erişemeyeceğini belirler. Bir Alibaba Cloud hesabı zaten tüm RAM izinlerine sahip olduğundan bu adımı atlayabilir. Bir RAM kullanıcısına veya rolüne RAM izinleri atamak için aşağıdaki yöntemlerden birini seçin.
Yöntem 1: Sistem ilkelerini kullanma
AliyunRAMReadOnlyAccess ve AliyunCSFullAccess sistem ilkeleri geniş kapsamlı izinler verir. Daha ayrıntılı kontrol için bkz. Yöntem 2: Ayrıntılı yetkilendirme için özel ilke kullanma.
-
Bir Alibaba Cloud hesabıyla RAM konsoluna giriş yapın ve yetkilendirmek istediğiniz RAM kullanıcısını veya rolünü bulun.
RAM kullanıcısı için: yolunu izleyin. Kullanıcı listesinde hedef kullanıcıyı bulun ve Actions sütununda Attach Policy seçeneğine tıklayın.
RAM rolü için: yolunu izleyin. Rol listesinde hedef rolü bulun ve Attach Policy sütununda Actions seçeneğine tıklayın.
Resource Scope değerini Account olarak ayarlayın. Policies bölümünde AliyunRAMReadOnlyAccess ve AliyunCSFullAccess sistem ilkelerini bulup seçin. Yetkilendirmeyi tamamlamak için ekrandaki talimatları uygulayın.
Yöntem 2: Özel ilke kullanma
Bir izin yöneticisinin aşağıdaki işlemleri yapabilmesi gerekir:
Diğer RAM kimlikleriyle ilgili bilgileri görüntüleme.
Küme listelerini ve ayrıntılarını görüntüleme.
Bir kümedeki mevcut RBAC yapılandırmalarını görüntüleme.
Bir kümede RBAC yetkilendirme işlemlerini gerçekleştirme.
RAM konsoluna giriş yapın ve gerekli RAM izinlerini hedef RAM kullanıcısına veya RAM rolüne atamak için aşağıdaki örnek ilkeyi kullanın. Daha fazla bilgi için bkz. İzin atamak için özel ilke kullanma.
{
"Statement": [{
"Action": [
"ram:Get*",
"ram:List*",
"cs:Get*",
"cs:Describe*",
"cs:List*",
"cs:GrantPermission"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}
Adım 2: RBAC izinlerini atayın
RBAC izinleri, bir kullanıcının bir küme içindeki Kubernetes kaynaklarında hangi işlemleri gerçekleştirebileceğini belirler.
(İsteğe bağlı) İzin yöneticisi ayarlama
Bir Alibaba Cloud hesabı varsayılan olarak RBAC izinlerini yönetebilir. Bu yetkiyi bir RAM kullanıcısına veya rolüne devretmek için öncelikle bunları izin yöneticisi olarak atayın. Zaten bir izin yöneticisi varsa veya Alibaba Cloud hesabınızı kullanıyorsanız bu adımı atlayabilirsiniz.
Alibaba Cloud hesabınızla ACK konsoluna giriş yapın ve hedef RAM kullanıcısına veya RAM rolüne küme düzeyinde önceden tanımlanmış Administrator rolünü atayın.
ACK konsoluna giriş yapın. Sol gezinme bölmesinde Authorizations seçeneğine tıklayın.
-
Authorizations sayfasında yönetim izinlerini yapılandırın.
Bir RAM kullanıcısını yetkilendirmek için: RAM Users sekmesine tıklayın, hedef RAM kullanıcısını bulun ve Modify Permissions sütununda Actions seçeneğine tıklayarak Permissions sayfasına gidin.
Bir RAM rolünü yetkilendirmek için: RAM Role sekmesine tıklayın, hedef RAM rolünü seçin ve Modify Permissions seçeneğine tıklayarak Permissions sayfasına gidin.
-
+ Add Permissions seçeneğine tıklayın. Küme düzeyi ve ad alanı düzeyi izinleri eklemek için ekrandaki talimatları uygulayın ve önceden tanımlanmış rol olarak Administrator seçeneğini belirleyin.
Bu yetkilendirmeyi tüm kümeler için verdiğinizde, izin yöneticisi rolü yeni kümelere otomatik olarak uygulanır ve tekrarlanan yetkilendirme ihtiyacı ortadan kalkar.
İşlemleri yetkilendirme
Hedef RAM kullanıcısına veya RAM rolüne RBAC izinleri atamak için bir Alibaba Cloud hesabı veya izin yöneticisi olarak konsola giriş yapın.
ACK konsoluna giriş yapın. Sol gezinme bölmesinde Authorizations seçeneğine tıklayın.
-
Authorizations sayfasında yönetim izinlerini yapılandırın.
Bir RAM kullanıcısını yetkilendirmek için: RAM Users sekmesine tıklayın, hedef RAM kullanıcısını bulun ve Actions sütununda Modify Permissions seçeneğine tıklayarak Permissions sayfasına gidin.
Bir RAM rolünü yetkilendirmek için: RAM Role sekmesine tıklayın, hedef RAM rolünü seçin ve Modify Permissions seçeneğine tıklayarak Permissions sayfasına gidin.
-
+ Add Permissions seçeneğine tıklayın. Hedef RAM kullanıcısı veya RAM rolü için küme düzeyi veya ad alanı düzeyi izinler eklemek üzere ekrandaki talimatları uygulayın ve ardından önceden tanımlanmış bir rol seçin.
Kullanıcının sorumluluklarına göre önceden tanımlanmış bir rol seçin. Her önceden tanımlanmış rolün izinleri hakkında daha fazla bilgi için bkz. Önceden tanımlanmış roller.
Yetkilendirme tamamlandığında, hedef RAM kullanıcısı veya RAM rolü kendilerine atanan izinlere göre kümedeki Kubernetes kaynaklarında işlem yapabilir.
Üretim ortamlarına uygulama
İzin yönetiminin güvenliğini ve sürdürülebilirliğini artırmak için aşağıdaki en iyi uygulamaları izleyin.
-
En az ayrıcalık ilkesini takip edin
RAM kullanıcıları ve RAM rolleri gibi asillere, görevlerini yerine getirmek için gereken minimum izin kümesini atayın. Administrator gibi yüksek ayrıcalıklı rolleri gelişigüzel atamaktan kaçının.
-
Ayrıntılı yetkilendirme uygulayın
Katmanlı yetkilendirme: Cloud kaynağı erişimi için RAM ile küme içi kaynak erişimi için RBAC arasında sorumluluk ayrımı yapın.
Kapsamlı erişim: Mümkün olduğunda, izinleri küme genelindeki
ClusterRoleBindingyerine belirli bir ad alanıyla sınırlamak içinRoleBindingkullanın.Doğru rol seçimi: Mümkün olduğunda ACK tarafından sağlanan önceden tanımlanmış rolleri kullanın. Özel bir rol oluşturmanız gerekirse izin kurallarını kesin olarak tanımlayın ve joker karakterlerden (
*) kaçının.
-
Sürekli yönetişim uygulayın
İzin yönetimi dinamik bir süreçtir. Gereksiz veya aşırı izinleri zamanında iptal etmek için düzenli bir denetim mekanizması oluşturun. İzin yöneticileri gibi yüksek ayrıcalıklı rollerin işlemlerini kaydedin ve izleyin.
Önceden tanımlanmış roller
İzin yönetimini basitleştirmek ve yaygın kullanım durumlarını hızlıca ele almak için ACK, RBAC mekanizmasına dayalı birkaç önceden tanımlanmış rol sunar.
|
Önceden ayarlanmış rol |
Küme içi RBAC izinleri |
|
Administrator |
Tam okuma/yazma erişimi tüm ad alanlarındaki tüm Kubernetes kaynaklarına yöneliktir; buna küme düğümleri, PV'ler, ad alanları ve kaynak kotaları dahildir. |
|
Read-only Administrator |
Yalnızca okuma erişimi tüm ad alanlarındaki tüm Kubernetes kaynaklarına yöneliktir; buna küme düğümleri, PV'ler, ad alanları ve kaynak kotaları dahildir. |
|
OM Engineer |
Okuma/yazma erişimi tüm ad alanlarında konsolda gösterilen kaynaklara yöneliktir. Küme düğümleri, PV'ler ve ad alanları için okuma/güncelleme erişimi ve diğer tüm kaynaklar için yalnızca okuma erişimi içerir. |
|
Developer |
Okuma/yazma erişimi kümenin tüm veya belirtilen ad alanlarında konsolda gösterilen kaynaklara yöneliktir. |
|
Restricted User |
Yalnızca okuma erişimi kümenin tüm veya belirtilen ad alanlarında konsolda gösterilen kaynaklara yöneliktir. |
|
Custom |
İzinler, belirtilen ClusterRole'a bağlıdır. Kimliklerin istenmeyen erişim kazanmasını önlemek için, ClusterRole'u atamadan önce izinlerini doğrulayın. Bkz. Özel RBAC ile kaynak işlemlerini kısıtlama. Önemli
|
SSS
İzin reddedildi hata koduyla karşılaşırsam ne yapmalıyım?
Konsol veya API aracılığıyla gerçekleştirilen bir işlem gerekli RBAC izinlerine sahip değilse bir izin hatası döndürülür. Aşağıdaki tabloda yaygın hatalar ve çözümleri listelenmiştir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Önceden tanımlanmış RBAC rolleri ihtiyaçlarımı karşılamıyorsa nasıl özel izinler oluşturabilirim?
Bir YAML manifestosu yazarak özel bir Rol veya ClusterRole oluşturun. Örneğin, kullanıcıların yalnızca Podları görüntülemesine izin veren bir ClusterRole oluşturabilir ve ardından yetkilendirme sırasında bu özel rolü seçebilirsiniz. Daha fazla bilgi için bkz. Özel RBAC rolü kullanarak küme içi kaynaklardaki işlemleri kısıtlama.
RBAC ilkeleri yalnızca 'Allow' kurallarını destekler. Açık 'Deny' kuralları desteklenmez.
İlgili belgeler
Önceden tanımlanmış roller ihtiyaçlarınızı karşılamıyorsa ve küme içi kaynaklara erişmek için özel RBAC izinleri kullanmak istiyorsanız bkz. Özel RBAC rolü kullanarak küme içi kaynaklardaki işlemleri kısıtlama.
-
Farklı operasyonel roller için hem RAM hem de RBAC yetkilendirmesini içeren eksiksiz yetkilendirme iş akışları hakkında bilgi edinmek için aşağıdaki konulara bakın:
ACK tarafından kullanılan hizmet bağlantılı roller hakkında daha fazla bilgi için bkz. ACK hizmet bağlantılı rolleri.
Yetkilendirme sırasında sorunlarla karşılaşırsanız bkz. Yetkilendirme yönetimiyle ilgili SSS.