Azure 역할 기반 액세스 제어를 사용하여 Key Vault 키, 인증서 및 비밀에 대한 액세스 제공
참고 항목
Key Vault 리소스 공급자는 자격 증명 모음과 관리되는 HSM이라는 두 가지 리소스 종류를 지원합니다. 이 문서에서 설명하는 액세스 제어는 자격 증명 모음에만 적용됩니다. 관리되는 HSM에 대한 액세스 제어에 대해 자세히 알아보려면 관리되는 HSM 액세스 제어를 참조하세요.
참고 항목
Azure Portal을 통한 Azure App Service Certificate 구성은 Key Vault RBAC 권한 모델을 지원하지 않습니다. Azure PowerShell, Azure CLI, ARM 템플릿 배포를 App Service 전역 ID에 대한 Key Vault 인증서 사용자 역할 할당(예: 퍼블릭 클라우드의 Microsoft Azure App Service)과 함께 사용할 수 있습니다.
Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure 리소스의 중앙 집중화된 액세스를 관리하는 Azure Resource Manager 기반의 권한 부여 시스템입니다.
Azure RBAC를 사용하면 사용자가 키, 비밀 및 인증서 권한을 관리할 수 있으며 모든 키 자격 증명 모음의 모든 권한을 한 곳에서 관리할 수 있습니다.
Azure RBAC 모델을 사용하면 사용자가 관리 그룹, 구독, 리소스 그룹 또는 개별 리소스의 다양한 범위 수준에서 사용 권한을 설정할 수 있습니다. 또한 키 자격 증명 모음용 Azure RBAC를 사용하면 사용자가 개별 키, 비밀 및 인증서에 대해 별도의 권한을 가질 수 있습니다.
자세한 내용은 Azure RBAC(Azure 역할 기반 액세스 제어)를 참조하세요.
개별 키, 비밀 및 인증서 역할 할당에 대한 모범 사례
키 자격 증명 모음 범위에서 할당된 역할과 함께 환경별 애플리케이션당 자격 증명 모음(개발, 사전 프로덕션 및 프로덕션)을 사용하는 것이 좋습니다.
개별 키, 비밀 및 인증서에 역할을 할당하는 것은 피해야 합니다. 여러 애플리케이션 간에 개별 비밀을 공유해야 하는 시나리오는 예외입니다. 예를 들어, 한 애플리케이션이 다른 애플리케이션의 데이터에 액세스해야 하는 경우입니다.
Azure Key Vault 관리 지침에 대한 자세한 내용은 다음을 참조하세요.
Key Vault 데이터 평면 작업을 위한 Azure 기본 제공 역할
참고 항목
Key Vault Contributor
역할은 관리 평면 작업에서 키 자격 증명 모음을 관리하는 데만 필요합니다. 키, 비밀 및 인증서에 대한 액세스를 허용하지 않습니다.
기본 제공 역할 | 설명 | ID |
---|---|---|
Key Vault 관리자 | 인증서, 키, 비밀을 포함하여 Key Vault 및 해당 Key Vault에 있는 모든 개체에 대한 모든 데이터 평면 작업을 수행합니다. Key Vault 리소스를 관리하거나 역할 할당을 관리할 수 없습니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | 00482a5a-887f-4fb3-b363-3b7fe8e74483 |
Key Vault 읽기 권한자 | Key Vault 및 해당 인증서, 키, 비밀의 메타데이터를 읽습니다. 비밀 콘텐츠 또는 키 자료와 같은 중요한 값을 읽을 수 없습니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | 21090545-7ca7-4776-b22c-e363652d74d2 |
Key Vault 제거 연산자 | 일시 삭제된 자격 증명 모음을 영구적으로 삭제할 수 있습니다. | a68e7c17-0ab2-4c09-9a58-125dae29748c |
Key Vault 인증서 책임자 | 비밀 및 키 부분 읽기 및 권한 관리를 제외하고 키 자격 증명 모음의 인증서에 대한 작업을 수행합니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | a4417e6f-fecd-4de8-b567-7b0420556985 |
Key Vault 인증서 사용자 | 비밀 및 키 부분을 포함하여 전체 인증서 콘텐츠를 읽습니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | db79e9a7-68ee-4b58-9aeb-b90e7c24fcba |
Key Vault 암호화 책임자 | 권한 관리를 제외한 Key Vault 키에 대한 작업을 수행합니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | 14b46e9e-c2b7-41b4-b07b-48a6ebf60603 |
Key Vault 암호화 서비스 암호화 사용자 | 키의 메타데이터를 읽고 래핑/래핑 해제 작업을 수행합니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | e147488a-f6f5-4113-8e2d-b22465e65bf6 |
Key Vault 암호화 사용자 | 키를 사용하여 암호화 작업을 수행합니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | 12338af0-0e69-4776-bea7-57ae8d297424 |
Key Vault 암호화 서비스 릴리스 사용자 | Azure 기밀 컴퓨팅 및 동급 환경에 대한 릴리스 키입니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | |
Key Vault 비밀 책임자 | 권한 관리를 제외한 Key Vault의 비밀에 대한 작업을 수행합니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | b86a8fe4-44ce-4948-aee5-eccb2c155cd7 |
Key Vault 비밀 사용자 | 프라이빗 키가 있는 인증서의 비밀 부분을 포함한 비밀 콘텐츠를 읽습니다. 'Azure 역할 기반 액세스 제어' 권한 모델을 사용하는 Key Vault에만 적용됩니다. | 4633458b-17de-408a-b874-0445c86b69e6 |
Azure 기본 제공 역할 정의에 대한 자세한 정보는 Azure 기본 제공 역할을 참조하세요.
기본 제공 Key Vault 데이터 평면 역할 할당 관리
기본 제공 역할 | 설명 | ID |
---|---|---|
Key Vault 데이터 액세스 관리자 | Key Vault 관리자, Key Vault 인증서 책임자, Key Vault 암호화 책임자, Key Vault 암호화 서비스 암호화 사용자, Key Vault 암호화 사용자, Key Vault 읽기 권한자, Key Vault 비밀 책임자 또는 Key Vault 비밀 사용자 역할에 대한 역할 할당을 추가하거나 제거하여 Azure Key Vault에 대한 액세스를 관리합니다. 역할 할당을 제한하는 ABAC 조건을 포함합니다. | 8b54135c-b56d-4d72-a534-26097cfdc8d8 |
Key Vault에서 Azure RBAC 비밀, 키 및 인증서 사용 권한 사용
키 자격 증명 모음에 대한 새 Azure RBAC 권한 모델은 자격 증명 모음 액세스 정책 권한 모델에 대한 대안을 제공합니다.
필수 조건
Azure 구독이 있어야 합니다. 그렇지 않은 경우 시작하기 전에 체험 계정을 만들 수 있습니다.
역할 할당을 관리하려면 Key Vault 데이터 액세스 관리자(특정 Key Vault 역할만 할당/제거할 수 있는 제한적인 권한이 부여된 상태), 사용자 액세스 관리자 또는 소유자 같은 Microsoft.Authorization/roleAssignments/write
권한과 Microsoft.Authorization/roleAssignments/delete
권한이 있어야 합니다.
키 자격 증명 모음에 대한 Azure RBAC 사용 권한 설정
참고 항목
권한 모델을 변경하려면 소유자 및 사용자 액세스 관리자 역할의 일부인 무제한 'Microsoft.Authorization/roleAssignments/write' 권한이 있어야 합니다. '서비스 관리자'와 '공동 관리자' 또는 제한된 'Key Vault 데이터 액세스 관리자' 같은 클래식 구독 관리자 역할은 사용 권한 모델을 변경하는 데 사용할 수 없습니다.
새 키 자격 증명 모음에 대한 Azure RBAC 사용 권한 설정:
기존 키 자격 증명 모음에 대한 Azure RBAC 사용 권한 설정:
Important
Azure RBAC 권한 모델을 설정하면 모든 액세스 정책 권한이 무효화됩니다. 동일한 Azure 역할이 할당되지 않은 경우 중단될 수 있습니다.
역할 할당
참고 항목
스크립트에서 역할 이름 대신 고유한 역할 ID를 사용하는 것이 좋습니다. 따라서 역할의 이름을 바꾸면 스크립트는 계속 작동합니다. 이 문서에서는 가독성을 위해 역할 이름이 사용됩니다.
Azure CLI를 사용하여 역할 할당을 만들려면 az role assignment 명령을 사용합니다.
az role assignment create --role {role-name-or-id} --assignee {assignee-upn}> --scope {scope}
자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.
리소스 그룹 범위 역할 할당
az role assignment create --role "Key Vault Reader" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}
자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.
위의 역할 할당은 키 자격 증명 모음에 키 자격 증명 모음 개체를 나열하는 기능을 제공합니다.
Key Vault 범위 역할 할당
az role assignment create --role "Key Vault Secrets Officer" --assignee {assignee-upn} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}
자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.
비밀 범위 역할 할당
참고 항목
키 자격 증명 모음 비밀, 인증서, 키 범위 역할 할당은 보안 모범 사례를 준수하기 위해 여기에 설명된 제한된 시나리오에만 사용해야 합니다.
az role assignment create --role "Key Vault Secrets Officer" --assignee {i.e user@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}/secrets/RBACSecret
자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.
테스트 및 확인
참고 항목
브라우저는 캐싱을 사용하며 역할 할당을 제거한 후 페이지를 새로 고쳐야 합니다. 역할 할당을 새로 고칠 때까지 몇 분 정도 허용
키 자격 증명 모음 수준에서 "Key Vault 비밀 담당자" 역할 없이 새 비밀을 추가하는 유효성을 검사합니다.
키 자격 증명 모음 액세스 제어(IAM) 탭으로 이동하여 이 리소스에 대한 "Key Vault 비밀 담당자" 역할 할당을 제거합니다.
이전에 만든 비밀로 이동합니다. 모든 비밀 속성을 볼 수 있습니다.
새 비밀 만들기(비밀 > +생성/가져오기)는 이 오류를 표시해야 합니다.
비밀 수준에서 "Key Vault 비밀 책임자" 역할 없이 비밀 편집의 유효성을 검사합니다.
이전에 만든 비밀 Access Control(IAM) 탭으로 이동하여 이 리소스에 대한 "Key Vault 비밀 담당자" 역할 할당을 제거합니다.
이전에 만든 비밀로 이동합니다. 비밀 속성을 볼 수 있습니다.
키 자격 증명 모음 수준에서 읽기 권한자 역할 없이 읽은 비밀의 유효성을 검사합니다.
키 자격 증명 모음 리소스 그룹 액세스 제어(IAM) 탭으로 이동하여 "Key Vault 읽기 권한자" 역할 할당을 제거합니다.
키 자격 증명 모음의 비밀 탭으로 이동하면 이 오류가 표시됩니다.
사용자 지정 역할 생성하기
az role definition create command
az role definition create --role-definition '{ \
"Name": "Backup Keys Operator", \
"Description": "Perform key backup/restore operations", \
"Actions": [
], \
"DataActions": [ \
"Microsoft.KeyVault/vaults/keys/read ", \
"Microsoft.KeyVault/vaults/keys/backup/action", \
"Microsoft.KeyVault/vaults/keys/restore/action" \
], \
"NotDataActions": [
], \
"AssignableScopes": ["/subscriptions/{subscriptionId}"] \
}'
사용자 지정 역할을 만드는 방법에 대한 자세한 내용은 다음을 참조하세요.
질문과 대답
Key Vault RBAC(역할 기반 액세스 제어) 권한 모델 개체 범위 할당을 사용하여 Key Vault 내에서 애플리케이션 팀을 격리할 수 있나요?
아니요. RBAC 권한 모델을 사용하면 Key Vault의 개별 개체에 대한 액세스 권한을 사용자 또는 애플리케이션에 할당할 수 있지만 네트워크 액세스 제어, 모니터링 및 개체 관리와 같은 관리 작업에는 자격 증명 모음 수준 권한이 필요하므로 애플리케이션 팀 전반의 운영자에게 보안 정보가 노출됩니다.