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 역할 기반 액세스 제어)를 참조하세요.

개별 키, 비밀 및 인증서 역할 할당에 대한 모범 사례

Key Vault 범위에서 할당된 역할과 함께 환경별 애플리케이션당 자격 증명 모음(개발, 사전 프로덕션 및 프로덕션)을 사용하는 것이 좋습니다.

개별 키, 비밀 및 인증서에 대한 역할 할당은 피해야 합니다. 일반 지침에 대한 예외:

  • 여러 애플리케이션 간에 개별 비밀을 공유해야 하는 시나리오(예: 한 애플리케이션이 다른 애플리케이션의 데이터에 액세스해야 하는 경우)

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 인증서 책임자 권한 관리를 제외한 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 데이터 액세스 관리자, 사용자 액세스 관리자 또는 소유자와 같은 Microsoft.Authorization/roleAssignments/writeMicrosoft.Authorization/roleAssignments/delete 권한이 있어야 합니다.

키 자격 증명 모음에 대한 Azure RBAC 사용 권한 설정

참고 항목

권한 모델을 변경하려면 소유자사용자 액세스 관리자 역할의 일부인 'Microsoft.Authorization/roleAssignments/write' 권한이 있어야 합니다. '서비스 관리자' 및 '공동 관리자'와 같은 클래식 구독 관리자 역할은 지원되지 않습니다.

  1. 새 키 자격 증명 모음에 대한 Azure RBAC 사용 권한 설정:

    Azure RBAC 사용 권한 설정 - 새 자격 증명 모음

  2. 기존 키 자격 증명 모음에 대한 Azure RBAC 사용 권한 설정:

    Azure RBAC 사용 권한 설정 - 기존 자격 증명 모음

Important

Azure RBAC 권한 모델을 설정하면 모든 액세스 정책 권한이 무효화됩니다. 동일한 Azure 역할이 할당되지 않은 경우 중단될 수 있습니다.

역할 할당

참고 항목

스크립트에서 역할 이름 대신 고유한 역할 ID를 사용하는 것이 좋습니다. 따라서 역할의 이름을 바꾸면 스크립트는 계속 작동합니다. 이 문서에서 역할 이름은 가독성을 위해서만 사용됩니다.

역할 할당을 만들려면 다음 명령을 실행합니다.

az role assignment create --role <role_name_or_id> --assignee <assignee> --scope <scope>

자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.

Azure Portal을 사용하여 역할을 할당하려면 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요. Azure Portal에서 Azure 역할 할당 화면은 액세스 제어(IAM) 탭의 모든 리소스에 대해 사용할 수 있습니다.

리소스 그룹 범위 역할 할당

  1. 키 자격 증명 모음이 포함된 동일한 리소스 그룹으로 이동합니다.

    역할 할당 - 리소스 그룹

  2. 액세스 제어(IAM) 를 선택합니다.

  3. 역할 할당 추가>를 선택하여 역할 할당 추가 페이지를 엽니다.

  4. 다음 역할을 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

    설정
    역할 "Key Vault 읽기 권한자"
    다음에 대한 액세스 할당 현재 사용자
    멤버 이메일 주소로 검색

    Azure Portal에서 역할 할당 페이지 추가

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 범위 역할 할당

  1. Key Vault > Access control(IAM) 탭으로 이동

  2. 역할 할당 추가>를 선택하여 역할 할당 추가 페이지를 엽니다.

  3. 다음 역할을 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

    설정
    역할 "Key Vault 비밀 책임자"
    다음에 대한 액세스 할당 현재 사용자
    멤버 이메일 주소로 검색

    Azure Portal에서 역할 할당 페이지 추가

az role assignment create --role "Key Vault Secrets Officer" --assignee {i.e jalichwa@microsoft.com} --scope /subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}

자세한 내용은 Azure CLI를 사용하여 Azure 역할 할당을 참조하세요.

비밀 범위 역할 할당

참고 항목

키 자격 증명 모음 비밀, 인증서, 키 범위 역할 할당은 보안 모범 사례를 준수하기 위해 여기에 설명된 제한된 시나리오에만 사용해야 합니다.

  1. 이전에 만든 비밀을 엽니다.

  2. 액세스 제어(IAM) 탭을 클릭합니다.

    역할 할당 - 비밀

  3. 역할 할당 추가>를 선택하여 역할 할당 추가 페이지를 엽니다.

  4. 다음 역할을 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

    설정
    역할 "Key Vault 비밀 책임자"
    다음에 대한 액세스 할당 현재 사용자
    멤버 이메일 주소로 검색

    Azure Portal에서 역할 할당 페이지 추가

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 역할 할당을 참조하세요.

테스트 및 확인

참고 항목

브라우저는 캐싱을 사용하며 역할 할당을 제거한 후 페이지를 새로 고쳐야 합니다.
역할 할당을 새로 고칠 때까지 몇 분 정도 허용

  1. 키 자격 증명 모음 수준에서 "Key Vault 비밀 담당자" 역할 없이 새 비밀을 추가하는 유효성을 검사합니다.

    1. 키 자격 증명 모음 액세스 제어(IAM) 탭으로 이동하여 이 리소스에 대한 "Key Vault 비밀 담당자" 역할 할당을 제거합니다.

      할당 제거 - 키 자격 증명 모음

    2. 이전에 만든 비밀로 이동합니다. 모든 비밀 속성을 볼 수 있습니다.

      액세스 권한이 있는 비밀 보기

    3. 새 비밀 만들기(비밀 > +생성/가져오기)는 이 오류를 표시해야 합니다.

      새 비밀 만들기

  2. 비밀 수준에서 "Key Vault 비밀 책임자" 역할 없이 비밀 편집의 유효성을 검사합니다.

    1. 이전에 만든 비밀 Access Control(IAM) 탭으로 이동하여 이 리소스에 대한 "Key Vault 비밀 담당자" 역할 할당을 제거합니다.

    2. 이전에 만든 비밀로 이동합니다. 비밀 속성을 볼 수 있습니다.

      액세스 권한 없이 비밀 보기

  3. 키 자격 증명 모음 수준에서 읽기 권한자 역할 없이 읽은 비밀의 유효성을 검사합니다.

    1. 키 자격 증명 모음 리소스 그룹 액세스 제어(IAM) 탭으로 이동하여 "Key Vault 읽기 권한자" 역할 할당을 제거합니다.

    2. 키 자격 증명 모음의 비밀 탭으로 이동하면 이 오류가 표시됩니다.

      비밀 탭 - 오류

사용자 지정 역할 생성하기

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}"] \
}'

사용자 지정 역할을 만드는 방법에 대한 자세한 내용은 다음을 참조하세요.

Azure 사용자 지정 역할

질문과 대답:

Key Vault RBAC(역할 기반 액세스 제어) 권한 모델 개체 범위 할당을 사용하여 Key Vault 내에서 애플리케이션 팀을 격리할 수 있나요?

아니요. RBAC 권한 모델을 사용하면 Key Vault의 개별 개체에 대한 액세스 권한을 사용자 또는 애플리케이션에 할당할 수 있지만 네트워크 액세스 제어, 모니터링 및 개체 관리와 같은 관리 작업에는 자격 증명 모음 수준 권한이 필요하므로 애플리케이션 팀 전반의 운영자에게 보안 정보가 노출됩니다.

자세한 정보