Private Endpoint tiltása más tenant-ból
Az előző post-ban azt írtam le, hogyan is lehet tiltani a Private Endpoint létrehozását külső tenant-ok felé. Most viszont az Én erőforrásaimnál fogom letiltani, hogy más tenant-ból felé lehessen Private Endpoint kapcsolatot létrehozni. Szerencsére ismét van már sok kész gyári megoldás, de itt már több dolgunk is lesz. Az előző megoldásnál a Private Endpoint-ot korlátoztuk, hogy merre mehet, tehát egy erőforrást érintettünk. Most viszont az összes erőforrásunkat érinteni fogjuk és persze mindnek más a felépítése, így minden olyan erőforrásra, amihez lehet Private Endpoint kapcsolatot létrehozni, egyedi szabályt kell írni. Az alábbi példa egy Storage Account-ra vonatkozik, de ez alapján könnyen meg lehet írni a többi szabályt is.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"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"
}
Ezzel a policy-val csak olyan Private Endpoint csatlakozást engedélyezünk, ami ugyanabban az előfizetésben van, mint a Storage Account. Ezzel nem csak a külső tenant-okat zárjuk ki, hanem a saját tenant-unkon belül is megakadályozzuk, hogy valaki olyan erőforráshoz csatlakozzon, amihez nem kellene. Pl. egy Dev-Prod környezet könnyen összeköthető egy ilyen megoldással.
Fontos, hogy néhány Azure Resource, mint pl. az Azure Data Factory, igazából egy másik tenant-ban van, így ezeket az erőforrásokat is érinti majd ez a fajta korlátozás.