2.5. Azure 리소스에 액세스하기 위해 지원되는 ID
OpenShift Container Platform 클러스터에는 Azure 리소스를 생성하고 관리하기 위해 Azure ID가 필요합니다. 따라서 설치를 완료하려면 다음 ID 유형 중 하나가 필요합니다.
- 서비스 주체
- 시스템이 할당한 관리 ID
- 사용자가 할당한 관리 ID
2.5.1. 필수 Azure 역할
OpenShift Container Platform 클러스터에는 Azure 리소스를 생성하고 관리하기 위해 Azure ID가 필요합니다. ID를 생성하기 전에 환경이 다음 요구 사항을 충족하는지 확인합니다.
ID를 생성하는 데 사용하는 Azure 계정에는
User Access Administrator
및Contributor
역할이 할당됩니다. 이러한 역할은 다음과 같은 경우 필요합니다.- 서비스 주체 또는 사용자가 할당한 관리 ID 생성
- 가상 머신에서 시스템이 할당한 관리 ID를 활성화합니다.
-
서비스 주체를 사용하여 설치를 완료하려는 경우 ID를 생성하는 데 사용하는 Azure 계정에 Microsoft Entra ID에서 Cryostat
.directory/servicePrincipals/createAsOwner
권한이 할당되었는지 확인합니다.
Azure 포털에서 역할을 설정하려면 Azure 문서의 RBAC 및 Azure 포털을 사용하여 Azure 리소스에 대한 액세스 관리를 참조하십시오.
2.5.2. 설치 관리자 프로비저닝 인프라에 필요한 Azure 권한
설치 프로그램은 클러스터를 배포하고 일상적인 작업을 유지하기 위해 필요한 권한으로 Azure 서비스 주체 또는 관리 ID에 액세스해야 합니다. 이러한 권한은 ID와 연결된 Azure 서브스크립션에 부여되어야 합니다.
다음 옵션을 사용할 수 있습니다.
Contributor
및User Access Administrator
역할을 ID에 할당할 수 있습니다. 이러한 역할을 할당하는 것이 필요한 모든 권한을 부여하는 가장 빠른 방법입니다.역할 할당에 대한 자세한 내용은 Azure 포털을 사용하여 Azure 리소스에 대한 액세스를 관리하는 Azure 설명서를 참조하십시오.
- 조직의 보안 정책에 보다 제한적인 권한 세트가 필요한 경우 필요한 권한으로 사용자 지정 역할을 생성할 수 있습니다.
Microsoft Azure에서 OpenShift Container Platform 클러스터를 생성하려면 다음 권한이 필요합니다.
예 2.1. 권한 부여 리소스 생성에 필요한 권한
-
Microsoft.Authorization/policies/audit/action
-
Microsoft.Authorization/policies/auditIfNotExists/action
-
Microsoft.Authorization/roleAssignments/read
-
Microsoft.Authorization/roleAssignments/write
예 2.2. 컴퓨팅 리소스 생성에 필요한 권한
-
Microsoft.Compute/availabilitySets/read
-
Microsoft.Compute/availabilitySets/write
-
Microsoft.Compute/disks/beginGetAccess/action
-
Microsoft.Compute/disks/delete
-
Microsoft.Compute/disks/read
-
Microsoft.Compute/disks/write
-
Microsoft.Compute/galleries/images/read
-
Microsoft.Compute/galleries/images/versions/read
-
Microsoft.Compute/galleries/images/versions/write
-
Microsoft.Compute/galleries/images/write
-
Microsoft.Compute/galleries/read
-
Microsoft.Compute/galleries/write
-
Microsoft.Compute/snapshots/read
-
Microsoft.Compute/snapshots/write
-
Microsoft.Compute/snapshots/delete
-
Microsoft.Compute/virtualMachines/delete
-
Microsoft.Compute/virtualMachines/powerOff/action
-
Microsoft.Compute/virtualMachines/read
-
Microsoft.Compute/virtualMachines/write
예 2.3. ID 관리 리소스를 생성하는 데 필요한 권한
-
Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
-
Microsoft.ManagedIdentity/userAssignedIdentities/read
-
Microsoft.ManagedIdentity/userAssignedIdentities/write
예 2.4. 네트워크 리소스 생성에 필요한 권한
-
Microsoft.Network/dnsZones/A/write
-
Microsoft.Network/dnsZones/CNAME/write
-
Microsoft.Network/dnszones/CNAME/read
-
Microsoft.Network/dnszones/read
-
Microsoft.Network/loadBalancers/backendAddressPools/join/action
-
Microsoft.Network/loadBalancers/backendAddressPools/read
-
Microsoft.Network/loadBalancers/backendAddressPools/write
-
Microsoft.Network/loadBalancers/read
-
Microsoft.Network/loadBalancers/write
-
Microsoft.Network/networkInterfaces/delete
-
Microsoft.Network/networkInterfaces/join/action
-
Microsoft.Network/networkInterfaces/read
-
Microsoft.Network/networkInterfaces/write
-
Microsoft.Network/networkSecurityGroups/join/action
-
Microsoft.Network/networkSecurityGroups/read
-
Microsoft.Network/networkSecurityGroups/securityRules/delete
-
Microsoft.Network/networkSecurityGroups/securityRules/read
-
Microsoft.Network/networkSecurityGroups/securityRules/write
-
Microsoft.Network/networkSecurityGroups/write
-
Microsoft.Network/privateDnsZones/A/read
-
Microsoft.Network/privateDnsZones/A/write
-
Microsoft.Network/privateDnsZones/A/delete
-
Microsoft.Network/privateDnsZones/SOA/read
-
Microsoft.Network/privateDnsZones/read
-
Microsoft.Network/privateDnsZones/virtualNetworkLinks/read
-
Microsoft.Network/privateDnsZones/virtualNetworkLinks/write
-
Microsoft.Network/privateDnsZones/write
-
Microsoft.Network/publicIPAddresses/delete
-
Microsoft.Network/publicIPAddresses/join/action
-
Microsoft.Network/publicIPAddresses/read
-
Microsoft.Network/publicIPAddresses/write
-
Microsoft.Network/virtualNetworks/join/action
-
Microsoft.Network/virtualNetworks/read
-
Microsoft.Network/virtualNetworks/subnets/join/action
-
Microsoft.Network/virtualNetworks/subnets/read
-
Microsoft.Network/virtualNetworks/subnets/write
-
Microsoft.Network/virtualNetworks/write
Azure에서 프라이빗 OpenShift Container Platform 클러스터를 생성하는 데 다음 권한이 필요하지 않습니다.
-
Microsoft.Network/dnsZones/A/write
-
Microsoft.Network/dnsZones/CNAME/write
-
Microsoft.Network/dnszones/CNAME/read
-
Microsoft.Network/dnszones/read
예 2.5. 리소스 상태를 확인하는 데 필요한 권한
-
Microsoft.Resourcehealth/healthevent/Activated/action
-
Microsoft.Resourcehealth/healthevent/InProgress/action
-
Microsoft.Resourcehealth/healthevent/Pending/action
-
Microsoft.Resourcehealth/healthevent/Resolved/action
-
Microsoft.Resourcehealth/healthevent/Updated/action
예 2.6. 리소스 그룹을 생성하는 데 필요한 권한
-
Microsoft.Resources/subscriptions/resourceGroups/read
-
Microsoft.Resources/subscriptions/resourcegroups/write
예 2.7. 리소스 태그를 생성하는 데 필요한 권한
-
Microsoft.Resources/tags/write
예 2.8. 스토리지 리소스 생성에 필요한 권한
-
Microsoft.Storage/storageAccounts/blobServices/read
-
Microsoft.Storage/storageAccounts/blobServices/containers/write
-
Microsoft.Storage/storageAccounts/fileServices/read
-
Microsoft.Storage/storageAccounts/fileServices/shares/read
-
Microsoft.Storage/storageAccounts/fileServices/shares/write
-
Microsoft.Storage/storageAccounts/fileServices/shares/delete
-
Microsoft.Storage/storageAccounts/listKeys/action
-
Microsoft.Storage/storageAccounts/read
-
Microsoft.Storage/storageAccounts/write
예 2.9. Marketplace 가상 머신 리소스 생성을 위한 선택적 권한
-
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read
-
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write
예 2.10. 컴퓨팅 리소스 생성을 위한 선택적 권한
-
Microsoft.Compute/availabilitySets/delete
-
Microsoft.Compute/images/read
-
Microsoft.Compute/images/write
-
Microsoft.Compute/images/delete
예 2.11. 사용자 관리 암호화를 활성화하는 선택적 권한
-
Microsoft.Compute/diskEncryptionSets/read
-
Microsoft.Compute/diskEncryptionSets/write
-
Microsoft.Compute/diskEncryptionSets/delete
-
Microsoft.KeyVault/vaults/read
-
Microsoft.KeyVault/vaults/write
-
Microsoft.KeyVault/vaults/delete
-
Microsoft.KeyVault/vaults/deploy/action
-
Microsoft.KeyVault/vaults/keys/read
-
Microsoft.KeyVault/vaults/keys/write
-
Microsoft.Features/providers/features/register/action
예 2.12. NatGateway
아웃바운드 유형을 사용하여 클러스터를 설치하기 위한 선택적 권한
-
Microsoft.Network/natGateways/read
-
Microsoft.Network/natGateways/write
예 2.13. NAT(Azure Network Address Translation)를 사용하여 프라이빗 클러스터를 설치하기 위한 선택적 권한
-
Microsoft.Network/natGateways/join/action
-
Microsoft.Network/natGateways/read
-
Microsoft.Network/natGateways/write
예 2.14. Azure 방화벽으로 프라이빗 클러스터를 설치하기 위한 선택적 권한
-
Microsoft.Network/azureFirewalls/applicationRuleCollections/write
-
Microsoft.Network/azureFirewalls/read
-
Microsoft.Network/azureFirewalls/write
-
Microsoft.Network/routeTables/join/action
-
Microsoft.Network/routeTables/read
-
Microsoft.Network/routeTables/routes/read
-
Microsoft.Network/routeTables/routes/write
-
Microsoft.Network/routeTables/write
-
Microsoft.Network/virtualNetworks/peer/action
-
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read
-
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
예 2.15. 수집 부트스트랩을 실행하기 위한 선택적 권한
-
Microsoft.Compute/virtualMachines/retrieveBootDiagnosticsData/action
Microsoft Azure에서 OpenShift Container Platform 클러스터를 삭제하려면 다음 권한이 필요합니다. 동일한 권한을 사용하여 Azure에서 프라이빗 OpenShift Container Platform 클러스터를 삭제할 수 있습니다.
예 2.16. 권한 부여 리소스 삭제에 필요한 권한
-
Microsoft.Authorization/roleAssignments/delete
예 2.17. 컴퓨팅 리소스 삭제에 필요한 권한
-
Microsoft.Compute/disks/delete
-
Microsoft.Compute/galleries/delete
-
Microsoft.Compute/galleries/images/delete
-
Microsoft.Compute/galleries/images/versions/delete
-
Microsoft.Compute/virtualMachines/delete
예 2.18. ID 관리 리소스 삭제에 필요한 권한
-
Microsoft.ManagedIdentity/userAssignedIdentities/delete
예 2.19. 네트워크 리소스 삭제에 필요한 권한
-
Microsoft.Network/dnszones/read
-
Microsoft.Network/dnsZones/A/read
-
Microsoft.Network/dnsZones/A/delete
-
Microsoft.Network/dnsZones/CNAME/read
-
Microsoft.Network/dnsZones/CNAME/delete
-
Microsoft.Network/loadBalancers/delete
-
Microsoft.Network/networkInterfaces/delete
-
Microsoft.Network/networkSecurityGroups/delete
-
Microsoft.Network/privateDnsZones/read
-
Microsoft.Network/privateDnsZones/A/read
-
Microsoft.Network/privateDnsZones/delete
-
Microsoft.Network/privateDnsZones/virtualNetworkLinks/delete
-
Microsoft.Network/publicIPAddresses/delete
-
Microsoft.Network/virtualNetworks/delete
Azure에서 프라이빗 OpenShift Container Platform 클러스터를 삭제하는 데 다음 권한이 필요하지 않습니다.
-
Microsoft.Network/dnszones/read
-
Microsoft.Network/dnsZones/A/read
-
Microsoft.Network/dnsZones/A/delete
-
Microsoft.Network/dnsZones/CNAME/read
-
Microsoft.Network/dnsZones/CNAME/delete
예 2.20. 리소스 상태를 확인하는 데 필요한 권한
-
Microsoft.Resourcehealth/healthevent/Activated/action
-
Microsoft.Resourcehealth/healthevent/Resolved/action
-
Microsoft.Resourcehealth/healthevent/Updated/action
예 2.21. 리소스 그룹 삭제에 필요한 권한
-
Microsoft.Resources/subscriptions/resourcegroups/delete
예 2.22. 스토리지 리소스 삭제에 필요한 권한
-
Microsoft.Storage/storageAccounts/delete
-
Microsoft.Storage/storageAccounts/listKeys/action
Azure에 OpenShift Container Platform을 설치하려면 서브스크립션의 권한 범위를 지정해야 합니다. 나중에 설치 프로그램에서 생성한 리소스 그룹에 대해 이러한 권한의 범위를 다시 지정할 수 있습니다. 퍼블릭 DNS 영역이 다른 리소스 그룹에 있는 경우 항상 네트워크 DNS 영역 관련 권한을 서브스크립션에 적용해야 합니다. 기본적으로 OpenShift Container Platform 설치 프로그램에서 Azure ID를 Contributor
역할을 할당합니다.
OpenShift Container Platform 클러스터를 삭제할 때 서브스크립션에 대한 모든 권한의 범위를 지정할 수 있습니다.
2.5.3. Azure 관리 ID 사용
설치 프로그램에서 설치를 완료하려면 Azure ID가 필요합니다. 시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 사용할 수 있습니다.
관리 ID를 사용할 수 없는 경우 서비스 주체를 사용할 수 있습니다.
프로세스
- 시스템이 할당한 관리 ID를 사용하는 경우 설치 프로그램을 실행할 가상 머신에서 활성화합니다.
사용자가 할당한 관리 ID를 사용하는 경우:
- 설치 프로그램을 실행할 가상 머신에 할당합니다.
클라이언트 ID를 기록합니다. 클러스터를 설치할 때 이 값이 필요합니다.
사용자가 할당한 관리 ID의 세부 정보를 보는 방법에 대한 자세한 내용은 사용자가 할당한 관리 ID를 나열하는 Microsoft Azure 설명서를 참조하십시오.
- 필요한 권한이 관리 ID에 할당되었는지 확인합니다.
2.5.4. 서비스 주체 생성
설치 프로그램에서 설치를 완료하려면 Azure ID가 필요합니다. 서비스 주체를 사용할 수 있습니다.
서비스 주체를 사용할 수 없는 경우 관리 ID를 사용할 수 있습니다.
사전 요구 사항
- Azure CLI 를 설치하거나 업데이트했습니다.
- Azure 서브스크립션 ID가 있어야 합니다.
-
Contributor
및User Administrator Access
역할을 서비스 주체에 할당하지 않으려면 필요한 Azure 권한으로 사용자 지정 역할을 생성했습니다.
프로세스
다음 명령을 실행하여 계정에 대한 서비스 주체를 생성합니다.
$ az ad sp create-for-rbac --role <role_name> \1 --name <service_principal> \2 --scopes /subscriptions/<subscription_id> 3
출력 예
Creating 'Contributor' role assignment under scope '/subscriptions/<subscription_id>' The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli { "appId": "axxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": <service_principal>", "password": "00000000-0000-0000-0000-000000000000", "tenantId": "8xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
-
출력에서
appId
및password
매개변수 값을 기록합니다. 클러스터를 설치할 때 이러한 값이 필요합니다. Contributor
역할을 서비스 주체에 적용한 경우 다음 명령을 실행하여사용자 관리자 액세스
역할을 할당합니다.$ az role assignment create --role "User Access Administrator" \ --assignee-object-id $(az ad sp show --id <appId> --query id -o tsv) 1 --scope /subscriptions/<subscription_id> 2
추가 리소스