Azure kaynakları için rol tabanlı erişim denetimi (RBAC) nedir?What is role-based access control (RBAC) for Azure resources?

Bulut kaynakları için erişim yönetimi, bulutu kullanan tüm kuruluşlar için kritik öneme sahip bir işlevdir.Access management for cloud resources is a critical function for any organization that is using the cloud. Rol tabanlı erişim denetimi (RBAC) Azure kaynaklarına erişebilen kişileri, bu kişilerin bu kaynaklarla yapabileceklerini ve erişebildikleri alanları yönetmenize yardımcı olur.Role-based access control (RBAC) helps you manage who has access to Azure resources, what they can do with those resources, and what areas they have access to.

RBAC, üzerinde oluşturulmuş bir yetkilendirme sistemidir Azure Resource Manager , Azure kaynaklarının ayrıntılı erişim yönetimi sağlar.RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

RBAC ile ne yapabilirim?What can I do with RBAC?

Aşağıda RBAC ile gerçekleştirebileceğiniz işlemlere örnekler verilmiştir:Here are some examples of what you can do with RBAC:

  • Bir kullanıcıya abonelikteki sanal makineleri yönetme, başka bir kullanıcıya ise sanal ağları yönetme izni vermeAllow one user to manage virtual machines in a subscription and another user to manage virtual networks
  • Bir DBA grubuna abonelikteki SQL veritabanlarını yönetme izni vermeAllow a DBA group to manage SQL databases in a subscription
  • Bir kullanıcının sanal makineler, web siteleri ve alt ağlar gibi bir kaynak grubundaki tüm kaynakları yönetmesine izin vermeAllow a user to manage all resources in a resource group, such as virtual machines, websites, and subnets
  • Bir uygulamaya bir kaynak grubundaki tüm kaynaklara erişim izni vermeAllow an application to access all resources in a resource group

RBAC kullanımı için en iyi yöntemBest practice for using RBAC

RBAC kullanarak ekibiniz içinde görevleri ayırabilir, bu işlere gerek duyan kişilere sadece erişim miktarını verebilirsiniz.Using RBAC, you can segregate duties within your team and grant only the amount of access to users that they need to perform their jobs. Herkese Azure aboneliğiniz veya kaynaklarınızda sınırsız izin vermek yerine belirli eylemlere yalnızca belirli kapsamlarda izin verebilirsiniz.Instead of giving everybody unrestricted permissions in your Azure subscription or resources, you can allow only certain actions at a particular scope.

Erişim denetimi stratejinizi planlarken en iyi yöntem, kullanıcılara yalnızca işlerini yapmak için gerekli olan ayrıcalığı tanımaktır.When planning your access control strategy, it's a best practice to grant users the least privilege to get their work done. Aşağıdaki diyagramda RBAC kullanımı için önerilen model gösterilmiştir.The following diagram shows a suggested pattern for using RBAC.

RBAC ve en düşük öncelik

RBAC nasıl çalışır?How RBAC works

RBAC özelliğini kullanarak kaynaklara erişimi denetlemek için rol ataması oluşturmanız gerekir.The way you control access to resources using RBAC is to create role assignments. Bu kavram izinlerin uygulanma şeklini belirlediğinden oldukça önemlidir.This is a key concept to understand – it’s how permissions are enforced. Rol ataması üç öğeden oluşur: güvenlik sorumlusu, rol tanımı ve kapsam.A role assignment consists of three elements: security principal, role definition, and scope.

Güvenlik sorumlusuSecurity principal

A güvenlik sorumlusu bir kullanıcı, Grup, hizmet sorumlusu veya Azure kaynaklarına erişmek isteyen yönetilen kimlik temsil eden bir nesnedir.A security principal is an object that represents a user, group, service principal, or managed identity that is requesting access to Azure resources.

Rol ataması için güvenlik sorumlusu

  • Kullanıcı: Azure Active Directory'de bir profile sahip olan kişidir.User - An individual who has a profile in Azure Active Directory. Diğer kiracılardaki kullanıcılara da rol atayabilirsiniz.You can also assign roles to users in other tenants. Diğer kuruluşlardaki kullanıcılar hakkında bilgi almak için bkz. Azure Active Directory B2B.For information about users in other organizations, see Azure Active Directory B2B.
  • Grup: Azure Active Directory'de oluşturulan kullanıcı kümesidir.Group - A set of users created in Azure Active Directory. Bir gruba rol atadığınızda ilgili gruptaki tüm kullanıcılar o role sahip olur.When you assign a role to a group, all users within that group have that role.
  • Hizmet sorumlusu: Uygulamalar veya hizmetler tarafından belirli Azure kaynaklarına erişmek için kullanılan güvenlik kimliğidir.Service principal - A security identity used by applications or services to access specific Azure resources. Bunu bir uygulamanın kullanıcı kimliği (kullanıcı adı ve parola veya sertifika) olarak düşünebilirsiniz.You can think of it as a user identity (username and password or certificate) for an application.
  • Yönetilen kimlik - Azure Active Directory'de otomatik olarak Azure tarafından yönetilen bir kimlik.Managed identity - An identity in Azure Active Directory that is automatically managed by Azure. Tipik olarak kullandığınız yönetilen kimlikleri Azure Hizmetleri için kimlik doğrulaması için kimlik bilgilerini yönetmek için bulut uygulamaları geliştirirken.You typically use managed identities when developing cloud applications to manage the credentials for authenticating to Azure services.

Rol tanımıRole definition

Rol tanımı, izinlerden oluşan bir koleksiyondur.A role definition is a collection of permissions. Bazen yalnızca rol olarak da adlandırılır.It's sometimes just called a role. Rol tanımı; okuma, yazma ve silme gibi gerçekleştirilebilecek işlemleri listeler.A role definition lists the operations that can be performed, such as read, write, and delete. Roller sahip gibi üst düzey veya sanal makine okuyucusu gibi sınırlı olabilir.Roles can be high-level, like owner, or specific, like virtual machine reader.

Rol ataması için rol tanımı

Azure'da kullanabileceğiniz birçok yerleşik rol bulunur.Azure includes several built-in roles that you can use. Dört temel yerleşik rol aşağıda listelenmiştir.The following lists four fundamental built-in roles. İlk üçü tüm kaynak türleri için geçerlidir.The first three apply to all resource types.

  • Sahip: Erişimi başkalarına verme hakkı dahil olmak üzere tüm kaynaklara tam erişime sahiptir.Owner - Has full access to all resources including the right to delegate access to others.
  • Katkıda bulunan: Her türlü Azure kaynağını oluşturup yönetebilir ancak başkalarına erişim izni veremez.Contributor - Can create and manage all types of Azure resources but can’t grant access to others.
  • Okuyucu: Var olan Azure kaynaklarını görüntüleyebilirsiniz.Reader - Can view existing Azure resources.
  • Kullanıcı Erişimi Yöneticisi: Azure kaynaklarına kullanıcı erişimini yönetmenizi sağlar.User Access Administrator - Lets you manage user access to Azure resources.

Yerleşik rollerin diğerleri belirli Azure kaynakları için yönetim özellikleri sunar.The rest of the built-in roles allow management of specific Azure resources. Örneğin Sanal Makine Katılımcısı rolü, kullanıcının sanal makine oluşturmasını ve yönetmesini sağlar.For example, the Virtual Machine Contributor role allows a user to create and manage virtual machines. Yerleşik roller, kuruluşunuzun özel ihtiyaçlarını karşılamıyorsa, kendi oluşturabileceğiniz Azure kaynakları için özel roller.If the built-in roles don't meet the specific needs of your organization, you can create your own custom roles for Azure resources.

Azure, bir nesne içindeki verilerine erişim izni sağlayan veri işlemleri sahiptir.Azure has data operations that enable you to grant access to data within an object. Örneğin kullanıcının bir depolama hesabında verileri okuma erişimi varsa bu kullanıcı ilgili depolama hesabındaki blobları veya iletileri okuyabilir.For example, if a user has read data access to a storage account, then they can read the blobs or messages within that storage account. Daha fazla bilgi için Azure kaynakları için rol tanımlarını anlamak.For more information, see Understand role definitions for Azure resources.

ScopeScope

Kapsam erişim uygulanacağı kaynak kümesidir.Scope is the set of resources that the access applies to. Bir rol atadığınızda kapsam tanımlayarak izin verilen eylemleri sınırlandırabilirsiniz.When you assign a role, you can further limit the actions allowed by defining a scope. Bu özellik bir kullanıcıyı yalnızca bir kaynak grubu için Web Sitesi Katılımcısı yapmak istediğiniz durumlarda kullanışlıdır.This is helpful if you want to make someone a Website Contributor, but only for one resource group.

Azure'da yönetim grubu, abonelik, kaynak grubu veya kaynak olmak üzere birden fazla seviyede kapsam belirtebilirsiniz.In Azure, you can specify a scope at multiple levels: management group, subscription, resource group, or resource. Kapsamlar üst-alt öğe ilişkisiyle yapılandırılmıştır.Scopes are structured in a parent-child relationship.

Rol ataması kapsamı

Üst kapsamda verdiğiniz erişim izinleri alt kapsamlar tarafından devralınır.When you grant access at a parent scope, those permissions are inherited to the child scopes. Örneğin:For example:

  • Sahip rolünü yönetim grubu kapsamında bir kullanıcıya atarsanız bu kullanıcı yönetim grubundaki tüm aboneliklerde bulunan nesneleri yönetebilir.If you assign the Owner role to a user at the management group scope, that user can manage everything in all subscriptions in the management group.
  • Okuyucu rolünü bir gruba abonelik kapsamında atadığınızda grubun üyeleri aboneliğin içindeki tüm kaynak gruplarını ve kaynakları görüntüleyebilir.If you assign the Reader role to a group at the subscription scope, the members of that group can view every resource group and resource in the subscription.
  • Katkıda bulunan rolünü bir uygulamaya kaynak grubu kapsamında atadığınızda ilgili grup bu kaynak grubundaki her türlü kaynağı yönetebilir ancak abonelikteki diğer kaynak gruplarını yönetemez.If you assign the Contributor role to an application at the resource group scope, it can manage resources of all types in that resource group, but not other resource groups in the subscription.

Rol atamalarıRole assignments

A rol ataması bir kullanıcı, Grup, hizmet sorumlusu veya yönetilen kimlik erişim verme amacıyla belirli bir kapsamda bir rol tanımı ekleme işlemidir.A role assignment is the process of attaching a role definition to a user, group, service principal, or managed identity at a particular scope for the purpose of granting access. Erişim, rol ataması oluşturularak sağlanır ve rol ataması kaldırıldığında iptal edilir.Access is granted by creating a role assignment, and access is revoked by removing a role assignment.

Aşağıdaki diyagramda rol ataması örneği gösterilmektedir.The following diagram shows an example of a role assignment. Bu örnekte Marketing grubuna pharma-sales kaynak grubu için Katkıda bulunan rolü atanmıştır.In this example, the Marketing group has been assigned the Contributor role for the pharma-sales resource group. Bu da Marketing grubundaki kullanıcıların pharma-sales kaynak grubunda tüm Azure kaynaklarını oluşturma veya yönetme işlemlerini gerçekleştirebileceği anlamına gelir.This means that users in the Marketing group can create or manage any Azure resource in the pharma-sales resource group. Başka bir rol atamasına sahip olmayan Marketing kullanıcılarının pharma-sales kaynak grubu dışındaki kaynaklara erişimi yoktur.Marketing users do not have access to resources outside the pharma-sales resource group, unless they are part of another role assignment.

Erişim denetimi için rol ataması

Rol atamalarını oluşturmak için Azure portal, Azure CLI, Azure PowerShell, Azure SDK'ları veya REST API'lerini kullanabilirsiniz.You can create role assignments using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs. Her abonelikte en fazla 2000 rol ataması gerçekleştirebilirsiniz.You can have up to 2000 role assignments in each subscription. Rol ataması oluşturmak ve kaldırmak için Microsoft.Authorization/roleAssignments/* iznine sahip olmanız gerekir.To create and remove role assignments, you must have Microsoft.Authorization/roleAssignments/* permission. Bu izin, Sahip veya Kullanıcı Erişimi Yöneticisi rolleriyle verilir.This permission is granted through the Owner or User Access Administrator roles.

Birden çok rol atamalarıMultiple role assignments

Bu nedenle, birden çok çakışan rol atamaları varsa ne olur?So what happens if you have multiple overlapping role assignments? RBAC eklenebilir bir modeli olduğundan rol atamalarınızı eklenmesi, etkili izinlerdir.RBAC is an additive model, so your effective permissions are the addition of your role assignments. Bir kullanıcı abonelik kapsamında katılımcı rolü ve okuyucu rolünün bir kaynak grubu üzerinde burada verilen aşağıdaki örneği inceleyin.Consider the following example where a user is granted the Contributor role at the subscription scope and the Reader role on a resource group. Katkıda bulunan izinleri ve okuyucu izinler etkili bir şekilde kaynak grubu için katkıda bulunan rolü ektir.The addition of the Contributor permissions and the Reader permissions is effectively the Contributor role for the resource group. Bu nedenle, bu durumda, okuyucu rol ataması herhangi bir etkisi yoktur.Therefore, in this case, the Reader role assignment has no impact.

Birden çok rol atamaları

Reddetme atamalarıDeny assignments

Daha önce, RBAC reddetme seçeneği olmayan yalnızca izin verme modeliydi ama şimdi RBAC sınırlı bir yoldan reddetme atamalarını da destekliyor.Previously, RBAC was an allow-only model with no deny, but now RBAC supports deny assignments in a limited way. Bir rol ataması için benzer bir atamasını Reddet kümesini ekler Reddetme eylemleri bir kullanıcı, Grup, hizmet sorumlusu veya erişimi engelleme amacıyla belirli bir kapsamda yönetilen kimlik.Similar to a role assignment, a deny assignment attaches a set of deny actions to a user, group, service principal, or managed identity at a particular scope for the purpose of denying access. Bir rol ataması eylemler kümesini tanımlayan izinReddet atama eylemler kümesini tanımlayan korurken izin.A role assignment defines a set of actions that are allowed, while a deny assignment defines a set of actions that are not allowed. Başka bir deyişle, reddetme atamaları kullanıcıların belirtilen eylemleri gerçekleştirmesini (rol ataması izin vermiş olsa bile) engeller.In other words, deny assignments block users from performing specified actions even if a role assignment grants them access. Reddetme atamaları rol atamalarından daha önceliklidir.Deny assignments take precedence over role assignments. Daha fazla bilgi için anlayın atamaları Azure kaynakları için reddetme.For more information, see Understand deny assignments for Azure resources.

RBAC kullanıcının bir kaynağa erişimi olduğunu nasıl saptar?How RBAC determines if a user has access to a resource

Aşağıdakiler, RBAC'nin yönetim düzleminde bir kaynağa erişiminizin olup olmadığını saptamak için kullandığı üst düzey adımlardır.The following are the high-level steps that RBAC uses to determine if you have access to a resource on the management plane. Bunları anlamak, bir erişim sorununu gidermeye çalışırken işinize yarayabilir.This is helpful to understand if you are trying to troubleshoot an access issue.

  1. Kullanıcı (veya hizmet sorumlusu) Azure Resource Manager için bir belirteç alır.A user (or service principal) acquires a token for Azure Resource Manager.

    Belirteç kullanıcının grup üyeliğini (geçişli grup üyelikleri de dahil) içerir.The token includes the user's group memberships (including transitive group memberships).

  2. Kullanıcı, belirteci de ekleyerek Azure Resource Manager'a bir REST API çağrısı yapar.The user makes a REST API call to Azure Resource Manager with the token attached.

  3. Azure Resource Manager, üzerinde eylem gerçekleştirilen kaynak için geçerli olan tüm rol atamalarını ve reddetme atamalarını alır.Azure Resource Manager retrieves all the role assignments and deny assignments that apply to the resource upon which the action is being taken.

  4. Azure Resource Manager, rol atamalarını bu kullanıcıya veya onun grubuna uygulananlarla daraltır ve kullanıcının bu kaynak için hangi role sahip olduğunu saptar.Azure Resource Manager narrows the role assignments that apply to this user or their group and determines what roles the user has for this resource.

  5. Azure Resource Manager, API çağrısındaki eylemin bu kaynak için kullanıcının sahip olduğu rollere eklenip eklenmediğini saptar.Azure Resource Manager determines if the action in the API call is included in the roles the user has for this resource.

  6. Kullanıcının istenen kapsamda eylemi içeren rolü yoksa, erişim verilmez.If the user doesn’t have a role with the action at the requested scope, access is not granted. Aksi takdirde, Azure Resource Manager bir reddetme atamasının geçerli olup olmadığını denetler.Otherwise, Azure Resource Manager checks if a deny assignment applies.

  7. Reddetme ataması geçerliyse, erişim engellenir.If a deny assignment applies, access is blocked. Aksi takdirde erişim izni verilir.Otherwise access is granted.

Lisans gereksinimleriLicense requirements

Bu özelliği kullanarak, ücretsiz ve Azure aboneliğinize dahil.Using this feature is free and included in your Azure subscription.

Sonraki adımlarNext steps