Share via


Azure'da kiracılar arası özel uç nokta bağlantılarını sınırlama

Müşteriler, kiracılarında özel uç noktaları kullanarak azure hizmet olarak platform (PaaS) hizmetlerine özel ve güvenli bir şekilde bağlanmaya devam ediyor. Özel uç noktalar, Microsoft Entra kiracıları genelindeki hizmetlere bağlanabilir. Güvenlik ve uyumluluk için özel uç noktalarınızda Microsoft Entra kiracıları arası bağlantıları engellemeniz gerekebilir. Bu kılavuz, kiracılar arası özel uç nokta bağlantılarını sınırlamak veya engellemek için önerilen yapılandırma seçeneklerini gösterir. Bu seçenekler, Azure ortamınızda veri sızıntısı önleme (DLP) denetimleri oluşturmanıza yardımcı olur.

Özel uç noktalara giriş

Mevcut bir ağ çevresini kullanarak Azure ortamınızdaki trafiği denetlemek için özel uç noktaları kullanın. Ancak özel uç nokta bağlantılarını yalnızca kurumsal Microsoft Entra kiracısı içinde tutmanız gereken senaryolar vardır. Aşağıdaki örneklerde güvenlik riskleri oluşturabilecek bağlantılar gösterilmektedir.

  • Bağlan ion A: Düzenbaz bir yönetici, müşteri sanal ağında özel uç noktalar oluşturur. Bu uç noktalar, başka bir Microsoft Entra kiracısı gibi müşteri ortamı dışında barındırılan hizmetlere bağlanır.
  • Bağlan ion B: Düzenbaz bir yönetici, diğer Microsoft Entra kiracılarında müşterinin Microsoft Entra kiracısında barındırılan hizmetlere bağlanan özel uç noktalar oluşturur.

Diagram that shows cross-tenant private endpoint connection scenarios.

Şekil 1: Özel uç nokta kiracılar arası senaryoların çizimi.

Her iki senaryo için de hizmetin kaynak kimliğini belirtir ve özel uç nokta bağlantısını el ile onaylarsınız. Kullanıcılar ayrıca bu eylemleri çalıştırmak için rol tabanlı erişim denetimi (RBAC) erişimine de ihtiyaç duyar.

Şekil 1'deki C ve D Bağlan, müşterilerin genellikle izin vermek istediği senaryoları gösterir. Özel uç nokta bağlantıları kurumsal Microsoft Entra kiracısı içinde tutulur. Bunlar bir güvenlik riskini temsil etmediğinden, bu iki senaryo bu makalede ele alınmıyor.

Aşağıdaki bilgiler, Microsoft Entra kiracılarında özel uç noktaların sağlanmasını önlemeye yönelik seçenekler sunar.

Diğer kiracılardaki hizmetlere bağlı özel uç noktaları reddetme

Senaryo bir: Düzenbaz bir yönetici, müşterinin Microsoft Entra kiracısında bir abonelikte aşağıdaki hakları gerektirir.

  • PrivateEndpointNetworkPolicies ayarı Devre Dışı olarak ayarlanmış bir alt ağda Microsoft.Network/virtualNetworks/join/action hakları.
  • Microsoft.Network/privateEndpoints/müşteri ortamındaki bir kaynak grubuna yazma erişimi.

Bu haklarla, düzenbaz bir yönetici müşterinin Microsoft Entra kiracısında özel bir uç nokta oluşturabilir. Bu özel uç nokta, ayrı bir abonelikteki bir hizmete ve Microsoft Entra kiracısına bağlanır. Şekil 1'de bu senaryo A bağlantısı olarak gösterilmektedir.

Bu senaryo için kullanıcı bir dış Microsoft Entra kiracısı ve Azure aboneliği ayarlar. Ardından, hizmetin kaynak kimliğini el ile belirterek müşteri ortamında özel bir uç nokta oluşturur. Son olarak, düzenbaz yönetici bağlantı üzerinden trafiğe izin vermek için dış Microsoft Entra kiracısında barındırılan bağlı hizmette özel uç noktayı onaylar.

Düzenbaz yönetici özel uç nokta bağlantısını onayladıktan sonra, şirket verileri şirket sanal ağından dış Microsoft Entra kiracısı üzerindeki bir Azure hizmetine kopyalanabilir. Bu güvenlik riski yalnızca Azure RBAC kullanılarak erişim verildiyse oluşabilir.

Senaryo bir için azaltma

Şirket Microsoft Entra kiracısında bir dış Azure hizmetine bağlı özel uç nokta oluşturma özelliğini otomatik olarak engellemek için aşağıdaki Azure İlkesi kullanın.

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.Network/privateEndpoints"
        },
        {
            "anyOf": [
                {
                    "count": {
                        "field": "Microsoft.Network/privateEndpoints/manualprivateLinkServiceConnections[*]",
                        "where": {
                            "allOf": [
                                {
                                    "field": "Microsoft.Network/privateEndpoints/manualprivateLinkServiceConnections[*].privateLinkServiceId",
                                    "notEquals": ""
                                },
                                {
                                    "value": "[split(concat(first(field('Microsoft.Network/privateEndpoints/manualprivateLinkServiceConnections[*].privateLinkServiceId')), '//'), '/')[2]]",
                                    "notEquals": "[subscription().subscriptionId]"
                                }
                            ]
                        }
                    },
                    "greaterOrEquals": 1
                },
                {
                    "count": {
                        "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*]",
                        "where": {
                            "allOf": [
                                {
                                    "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].privateLinkServiceId",
                                    "notEquals": ""
                                },
                                {
                                    "value": "[split(concat(first(field('Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].privateLinkServiceId')), '//'), '/')[2]]",
                                    "notEquals": "[subscription().subscriptionId]"
                                }
                            ]
                        }
                    },
                    "greaterOrEquals": 1
                }
            ]
        }
    ]
},
"then": {
    "effect": "Deny"
}

Bu ilke, A ve D bağlantıları gibi bağlı hizmetin aboneliği dışında oluşturulan özel uç noktaları reddeder. İlke ayrıca ve privateLinkServiceConnectionskullanma manualPrivateLinkServiceConnections esnekliği sağlar.

Özel uç noktaların yalnızca belirli bir abonelik kümesinde oluşturulması için bu ilkeyi güncelleştirebilirsiniz. Bir parametre ekleyerek list ve yapısını kullanarak "notIn": "[parameters('allowedSubscriptions')]" bu değişikliği yapabilirsiniz. Ancak bu yaklaşım önerilmez, çünkü bu ilke için abonelik listesini sürekli olarak tutmanız gerekir. Kiracınızın içinde yeni bir abonelik oluşturulduğunda, abonelik kimliğinin parametresine eklenmesi gerekir.

Bunun yerine, ilkeyi en üst düzey yönetim grubuna atayın ve gerektiğinde muafiyetleri kullanın.

Senaryo bir için dikkat edilmesi gerekenler

Bu ilke, hizmetin kendisinden farklı bir abonelikte yer alan özel uç noktaların oluşturulmasını engeller. Bu uç noktalar belirli kullanım örnekleri için gerekliyse, ilke muafiyetlerini kullanın. Yönetilen sanal ağda barındırılan yönetilen özel uç noktaların yalnızca Microsoft Entra kiracınızda barındırılan hizmetlere bağlanabildiğinden emin olmak için Data Factory ve Azure Synapse için daha fazla ilke oluşturun.

Diğer kiracılarda oluşturulan özel uç noktalardan gelen bağlantıları reddetme

İkinci senaryo: Düzenbaz bir yönetici, özel uç noktanın oluşturulması gereken müşteri ortamında hizmete yazma erişimi gerektirir.

Bu hakla, düzenbaz bir yönetici dış Microsoft Entra kiracısında ve aboneliğinde özel bir uç nokta oluşturabilir. Bu uç nokta, müşterinin Microsoft Entra kiracısında bir hizmete bağlanır. Şekil 1'de bu senaryo B bağlantısı olarak gösterilmektedir.

Bu senaryoda, düzenbaz yöneticinin önce bir dış özel Microsoft Entra kiracısı ve Azure aboneliği yapılandırması gerekir. Ardından, şirket Microsoft Entra kiracısında hizmetin kaynak kimliğini ve grup kimliğini el ile belirterek ortamlarında özel bir uç nokta oluşturur. Son olarak, Microsoft Entra kiracıları arasında bağlantı üzerinden trafiğe izin vermek için bağlı hizmette özel uç noktayı onaylar.

Düzenbaz yönetici veya hizmet sahibi özel uç noktayı onayladıktan sonra verilere dış sanal ağdan erişilir.

senaryo iki için azaltma

Müşteri kiracısı genelinde bu senaryoyu önlemek için hizmete özgü ilkeleri kullanın. Özel uç nokta bağlantıları ilgili hizmetlerin alt kaynaklarıdır ve özellikleri bölümünde gösterilir. Aşağıdaki ilke tanımını kullanarak uyumsuz bağlantıları reddedin:

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts/privateEndpointConnections"
        },
        {
            "field": "Microsoft.Storage/storageAccounts/privateEndpointConnections/privateLinkServiceConnectionState.status",
            "equals": "Approved"
        },
        {
            "anyOf": [
                {
                    "field": "Microsoft.Storage/storageAccounts/privateEndpointConnections/privateEndpoint.id",
                    "exists": false
                },
                {
                    "value": "[split(concat(field('Microsoft.Storage/storageAccounts/privateEndpointConnections/privateEndpoint.id'), '//'), '/')[2]]",
                    "notEquals": "[subscription().subscriptionId]"
                }
            ]
        }
    ]
},
"then": {
    "effect": "Deny"
}

Bu ilke, Azure Depolama için bir örnek gösterir. Key Vault, bilişsel hizmetler ve SQL Server gibi diğer hizmetler için aynı ilke tanımını çoğaltın. Azure Uygulaması Hizmeti'nin şu anda bu azaltmayı desteklemediğini unutmayın.

Yönetilebilirliği daha da geliştirmek için hizmete özgü ilkeleri bir girişimde paket haline getirebilirsiniz. İlke, ilgili hizmetin aboneliği dışında barındırılan özel uç noktalara özel uç nokta bağlantılarının onayını reddeder. Müşterilerin istediği davranış olan özel uç nokta bağlantılarının reddedilmesini veya kaldırılmasını reddetmez. Bağlantı C gibi otomatik onay iş akışları bu ilkeden etkilenmez.

Ancak portaldaki uyumlu özel uç nokta bağlantılarının onayı bu yöntemle engellenir. Portal kullanıcı arabirimi, bağlı özel uç noktanın kaynak kimliğini yüklerinde göndermediğinden bu engelleme oluşur. Özel uç nokta bağlantısını onaylamak için Azure Resource Manager, Azure PowerShell veya Azure CLI kullanılması önerilir.

Ayrıca, ilkeyi üst düzey yönetim grubuna atayın ve gerektiğinde muafiyetleri kullanın.

senaryo iki için dikkat edilmesi gerekenler

Azure Synapse Analytics ve Azure Data Factory yönetilen sanal ağlar ve yönetilen özel uç noktalar sunar. Bu yeni özellikler nedeniyle ilke, bu hizmetlerin güvenli ve özel kullanımını engeller.

İki azaltma senaryosunda kullandığınız ilke tanımında Reddetme efekti yerine Denetim efekti kullanmanız önerilir. Bu değişiklik, ayrı aboneliklerde ve kiracılarda oluşturulan özel uç noktaları izlemenize yardımcı olur. İlgili veri platformu kapsamları için ilke muafiyetlerini de kullanabilirsiniz.

Azure Data Factory

Azure Data Factory'nin yönetilen sanal ağındaki senaryonun üstesinden gelmek için aşağıdaki ilke tanımını kullanın:

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints"
        },
        {
            "anyOf": [
                {
                    "field": "Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints/privateLinkResourceId",
                    "exists": false
                },
                {
                    "value": "[split(field('Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints/privateLinkResourceId'), '/')[2]]",
                    "notEquals": "[subscription().subscriptionId]"
                }
            ]
        }
    ]
},
"then": {
    "effect": "[parameters('effect')]"
}

Bu ilke, Data Factory aboneliği dışında barındırılan hizmetlere bağlı yönetilen özel uç noktaları reddeder. Bir parametre ekleyerek list ve yapısını kullanarak bir abonelik kümesinde barındırılan hizmetlere bağlantılara izin vermek için bu ilkeyi "notIn": "[parameters('allowedSubscriptions')]" değiştirebilirsiniz. Yönetilen sanal ağlara ve yönetilen özel uç noktalara sahip hizmetlerin yoğun olarak kullanıldığı kiracı veya ortamların içindeki veri platformu kapsamı için bu değişikliği öneririz.

Bu ilkeyi üst düzey yönetim grubuna atamanız ve gerektiğinde muafiyetler kullanmanız önerilir. Veri platformu için bu değişiklikleri yapın ve ilkeyi veri platformu abonelikleri kümesine atayın.

Azure Synapse

Azure Synapse yönetilen sanal ağları da kullanır. Senaryo 1 için Data Factory ilkesine benzer bir ilke uygulamanızı öneririz. Azure Synapse yönetilen özel uç noktalar için bir ilke diğer adı sağlamaz. Ancak aşağıdaki ilke kullanılarak çalışma alanları için zorunlu kılınabilen bir veri sızdırma önleme özelliği vardır:

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.Synapse/workspaces"
        },
        {
            "anyOf": [
                {
                    "field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.preventDataExfiltration",
                    "exists": false
                },
                {
                    "field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.preventDataExfiltration",
                    "notEquals": true
                },
                {
                    "count": {
                        "field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.allowedAadTenantIdsForLinking[*]",
                        "where": {
                            "field": "Microsoft.Synapse/workspaces/managedVirtualNetworkSettings.allowedAadTenantIdsForLinking[*]",
                            "notEquals": "[subscription().tenantId]"
                        }
                    },
                    "greaterOrEquals": 1
                }
            ]
        }
    ]
},
"then": {
    "effect": "Deny"
}

Bu ilke, Azure Synapse'in veri sızdırma özelliğinin kullanılmasını zorunlu kılır. Azure Synapse ile, müşteri kiracısının dışında barındırılan bir hizmetten gelen özel uç noktaları reddedebilirsiniz. Ayrıca, belirtilen kiracı kimlikleri kümesinin dışında barındırılan özel uç noktaları reddedebilirsiniz. Bu ilke yalnızca müşteri kiracısında barındırılan hizmetlere bağlı yönetilen özel uç noktaların oluşturulmasına izin verir.

Bu ilkeler artık yerleşik olarak kullanılabilir.

  • Azure Synapse çalışma alanları yalnızca onaylanan hedeflere giden veri trafiğine izin vermelidir.

    Tanım Kimliği: /providers/Microsoft.Authorization/policyDefinitions/3484ce98-c0c5-4c83-994b-c5ac24785218

  • Azure Synapse tarafından yönetilen özel uç noktaların yalnızca onaylı Microsoft Entra kiracılarındaki kaynaklara bağlanması gerekir.

    Tanım Kimliği: /providers/Microsoft.Authorization/policyDefinitions/3a003702-13d2-4679-941b-937e58c443f0

İlkeyi üst düzey yönetim grubuna atamanız ve gerektiğinde muafiyetler kullanmanız önerilir.

Sonraki adımlar

Genel İnternet'e ve genel İnternet'ten gelen ve giden bağlantı için önerilen bağlantı modellerini anlamak önemlidir. Sonraki makalede, daha fazla okuma için tasarımla ilgili önemli noktalar, tasarım önerileri ve önerilen içerik incelenmiştir.