Auto Scaling, etiketleri kullanarak ölçeklendirme gruplarını kategorize etmenize ve bu gruplara erişimi kontrol etmenize olanak tanır. Belirli bir etiketi paylaşan tekil veya birden fazla ölçeklendirme grubuna ayrıntılı izinler verebilirsiniz. Bu konu, yönetim verimliliğini artırmak ve veri sızıntısı riskini azaltmak için RAM kullanıcı izinlerini yönetmede etiket tabanlı kimlik doğrulamanın nasıl kullanılacağını açıklar.
Arka plan
Etiket, bir cloud kaynağı için tanımlayıcıdır. Farklı boyutlardan aynı özelliklere sahip cloud kaynaklarını kategorize etmek, aramak ve toplamak için etiketleri kullanabilirsiniz. Daha fazla bilgi için bkz. Etiketler.
Resource Access Management (RAM), kullanıcı kimliklerini yönetmenize ve ilkeler temelinde cloud kaynaklarınıza erişimi ve üzerindeki işlemleri kontrol etmenize olanak tanır. Daha fazla bilgi için bkz. RAM nedir?.
Bir Resource Access Management (RAM) ilkesinde koşul olarak etiketleri kullanarak Auto Scaling üzerinde ayrıntılı kontrol uygulayabilirsiniz.
Aşağıdaki şekilde, RAM kullanıcılarının kaynak erişimini ve işlem izinlerini yönetmek için etiketlerin nasıl kullanılacağı (etiket tabanlı kimlik doğrulama olarak adlandırılır) gösterilmektedir.
Etiket kimlik doğrulamasını desteklemeyen API'ler
Bir RAM kullanıcısına etiket tabanlı kimlik doğrulama için bir ilke atadıktan sonra, söz konusu kullanıcı Auto Scaling'i yönetmek amacıyla aşağıdaki API işlemlerini çağırdığında etiket tabanlı kimlik doğrulama desteklenmez.
|
API |
Etiket kimlik doğrulama desteği |
|
DescribeRegions |
Hayır |
|
Bir ölçeklendirme grubuyla ilişkili olmayan zamanlanmış görevler için:
|
Hayır |
|
Bir ölçeklendirme grubuyla ilişkili olmayan olay tetiklemeli görevler için:
|
Hayır |
Örnek senaryo
Bu konuda, etiket tabanlı kimlik doğrulamanın nasıl uygulanacağı aşağıdaki senaryo kullanılarak gösterilmektedir.
Oyun geliştirme için iki ölçeklendirme grubu oluşturduğunuzu varsayalım. Her ölçeklendirme grubu ortam ve ekip bilgilerine göre etiketlenmiştir. Bir RAM kullanıcısına aşağıdaki ölçeklendirme grupları üzerinde belirli izinler vermeniz gerekmektedir:
|
Ölçeklendirme grubu |
Ad |
Etiket |
|
Ölçeklendirme grubu 1 |
asg-001 |
|
|
Ölçeklendirme grubu 2 |
asg-002 |
|
Belirli erişim kontrolü gereksinimleri şu şekildedir:
Senaryo 1: Etiketsiz ölçeklendirme grupları oluşturamazsınız. Oluşturma sırasında
environment:testveteam:game1etiketlerini eklerseniz Ölçeklendirme grubu 1 başarıyla oluşturulur.Senaryo 2: Ölçeklendirme gruplarını sorgularken yalnızca
environment:testveteam:game1etiketleriyle ilişkili olan Ölçeklendirme grubu 1'in kaynaklarını görüntüleyebilirsiniz.Senaryo 3: Yalnızca Ölçeklendirme grubu 1'deki (
environment:testveteam:game1etiketlerine sahip) kaynakları yönetebilir, ancak Ölçeklendirme grubu 2'deki (environment:devveteam:game2etiketlerine sahip) kaynakları yönetemezsiniz.
Yordam
Başlamadan önce bir RAM kullanıcısı oluşturduğunuzdan emin olun. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturun.
-
İki ölçeklendirme grubu oluşturun.
Daha fazla bilgi için bkz. Ölçeklendirme gruplarını yapılandırın. Ölçeklendirme gruplarıyla ilgili ayrıntılar için bkz. Örnek senaryo.
RAM konsolunda oturum açın.
-
Özel bir ilke oluşturun.
Daha fazla bilgi için bkz. Özel ilke oluşturun.
Auto Scaling kaynaklarında işlem gerçekleştirmek üzere izinleri kısıtlamak amacıyla bir ilkenin
Conditionbloğundaki cloud kaynakları için birden fazla etiket koşulu belirtebilirsiniz. Desteklenen etiket tabanlı kimlik doğrulama koşulları şunlardır:
Etiket tabanlı koşul
Açıklamaacs:RequestTagİsteğin belirli bir etiket içerip içermediğini denetler.
Bir API isteği herhangi bir etiket parametresi içermiyorsa
acs:RequestTagkullanılması kimlik doğrulamanın başarısız olmasına neden olur.acs:ResourceTagİstekte belirtilen kaynağın belirli bir etiket içerip içermediğini denetler.
Kaynak ID'si parametresi içermeyen bir API isteğinde
acs:ResourceTagkullanılırsa kimlik doğrulama başarısız olur.-
Senaryo 1: Ölçeklendirme grubu oluşturma sırasında belirli etiketleri zorunlu kılın
Bu, Ölçeklendirme grubu 1'in yalnızca oluşturma sırasında
environment:testveteam:game1etiketleriyle ilişkilendirilmesi durumunda başarıyla oluşturulabileceği anlamına gelir.Aşağıdaki ilke bu senaryoya karşılık gelmektedir:
{ "Effect": "Allow", "Action": "ess:Create*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/environment": "test", "acs:RequestTag/team": "game1" } } } -
Senaryo 2: Kullanıcıların yalnızca Ölçeklendirme grubu 1'i görüntülemesine izin verin
Bu, Ölçeklendirme grubu 1'e
environment:testveteam:game1etiketlerini atarsanız ölçeklendirme gruplarını sorguladığınızda yalnızca Ölçeklendirme grubu 1'in kaynaklarının döndürüleceği anlamına gelir.Aşağıdaki ilke bu senaryoya karşılık gelmektedir:
{ "Effect": "Allow", "Action": "ess:Describe*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/environment": "test", "acs:RequestTag/team": "game1" } } } -
Senaryo 3: Kullanıcıların yalnızca Ölçeklendirme grubu 1'i yönetmesine izin verin ve Ölçeklendirme grubu 2'ye erişimi reddedin
Örneğin, Ölçeklendirme grubu 1
environment:testveteam:game1etiketleriyle, Ölçeklendirme grubu 2 iseenvironment:devveteam:game2etiketleriyle ilişkilendirilmiştir.Aşağıdaki ilke bu senaryoya karşılık gelmektedir:
{ "Version": "1", "Statement": [ { "Action": "ess:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/environment": "test", "acs:ResourceTag/team": "game1" } } }, { "Action": "ess:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/environment": "dev", "acs:ResourceTag/team": "game2" } } }, { "Effect": "Allow", "Action": [ "ess:DescribeRegions", "ess:CreateScheduledTask", "ess:ModifyScheduledTask", "ess:DescribeScheduledTasks", "ess:DeleteScheduledTask", "ess:CreateAlarm", "ess:DescribeAlarms", "ess:ModifyAlarm", "ess:EnableAlarm", "ess:DeleteAlarm" ], "Resource": "*" } ] }
-
-
Özel ilkeyi RAM kullanıcısına atayın.
Daha fazla bilgi için bkz. RAM kullanıcısına izin verin.
-
İlkenin etkili olduğunu doğrulayın.
-
Ölçeklendirme grubu 1'i oluşturarak Senaryo 1'i doğrulayın
Ölçeklendirme Grubu 1,
environment:testveteam:game1etiketlerine sahip olduğundan başarıyla oluşturulabilir.Ölçeklendirme grubunu belirtilen etiketler olmadan oluşturursanız yetersiz izin nedeniyle oluşturma işlemi reddedilir. Auto Scaling gerekli OpenAPI izinlerine sahip değilse farklı bir hata oluşur: The user has not fully authorized the OpenAPI interface for ESS. Please authorize and try again. mesajıyla birlikte
Forbidden.Unauthorizedhatası döndürülür. Bu durumda gerekli izinleri verin ve işlemi yeniden deneyin.
-
Ölçeklendirme gruplarını sorgulayarak Senaryo 2'yi doğrulayın
environment:testveteam:game1etiketlerine sahip bir ölçeklendirme grubu için etiketlere göre filtreleme yapmadan sorgu gerçekleştirerek yine de bilgilerini alabilirsiniz.environment:testveteam:game1etiketleriyle etiketlenmemiş, Ölçeklendirme grubu 1 dışındaki bir ölçeklendirme grubunu sorgularsanız sorgu sonuç döndürmez.Bir ölçeklendirme grubu belirtmeden yalnızca
environment:testveteam:game1etiketlerini ararsanız sorgu bu etiketlere sahip tüm ölçeklendirme gruplarını döndürür.
-
Ölçeklendirme gruplarını silerek Senaryo 3'ü doğrulayın
Ölçeklendirme grubu 1,
environment:testveteam:game1etiketlerine sahipse ölçeklendirme grubunu silebilirsiniz.Bir ölçeklendirme grubu
environment:testveteam:game1etiketleriyle ilişkilendirilmemişse veya başka etiketlere sahipse ölçeklendirme grubunu silme izniniz olmadığına dair bir mesaj görüntülenir.
-
İlgili belgeler
Bir API işlemi çağırarak ölçeklendirme grubu oluşturmak, görüntülemek veya silmek için bkz. CreateScalingGroup, DescribeScalingGroups veya DeleteScalingGroup.
Bir API işlemi çağırarak özel bir ilke oluşturmak için bkz. CreatePolicy.
Bir API işlemi çağırarak RAM kullanıcısına izin vermek için bkz. AttachPolicyToUser.
Birden fazla ölçeklendirme grubunuz varsa bunları yönetmek için kaynak grubu kullanabilirsiniz. Daha fazla bilgi için bkz. Ölçeklendirme gruplarını yönetmek için kaynak gruplarını kullanın.
Auto Scaling'in yetkili yönetimi için kaynak düzeyinde kimlik doğrulama kullanmak istiyorsanız bkz. Kaynak düzeyinde kimlik doğrulama kullanarak Auto Scaling'i yönetin.