Azure의 서비스 주체와 관리 ID 간의 차이
Azure에서 관리 ID를 사용하는 것이 항상 권장되는지 알고 싶습니다(대부분 시스템 할당 또는 서비스 책임자).관리되는 ID와 비교하여 Azure에서 서비스 주체를 사용해야 하는 경우, 서비스 주체의 장점은 무엇입니까?어떤 도움이라도 주시면 감사하겠습니다.
내부적으로 관리되는 ID는 특수 유형의 서비스 주체이며, Azure 리소스에서만 사용하도록 잠겨 있습니다.관리되는 ID가 삭제되면 해당 서비스 주체가 자동으로 제거됩니다.또한 사용자 할당 ID 또는 시스템 할당 ID가 생성되면 MSRP(Managed Identity Resource Provider)가 내부적으로 해당 ID에 대한 인증서를 발급합니다.
그리고.
그럼 뭐가 달라요?
즉, 관리되는 ID와 서비스 주체의 차이점은 관리되는 ID가 사용자를 대신하여 서비스 주체의 생성 및 자동 갱신을 관리한다는 것입니다.
관리되는 ID는 서비스 주체의 한 유형입니다.
서비스 주체는 애플리케이션, 관리되는 ID 및 레거시의 세 가지 유형 중 하나일 수 있습니다.사용 상황에 따라 유형을 구분합니다.따라서 그들의 구체적인 취급 또한 그들의 유형에 따라 다릅니다.
rickvdbosch는 서비스 주체의 관리되는 ID 유형에 대한 구체적인 내용을 설명하는 기사에 대한 링크를 제공했습니다.Service Principal 객체의 개념과 그 유형에 대해 알고 싶은 분들은 다음과 같이 다른 기사 링크를 참조하십시오.Azure Active Directory의 응용 프로그램 및 서비스 주체 개체입니다.
서비스 책임자
서비스 주체에서 가장 관련성이 높은 부분은 Azure Active Directory 아래의 엔터프라이즈 애플리케이션 섹션이라고 할 수 있습니다.이것은 기본적으로 사용자 앱이 RBAC를 기반으로 Azure 리소스를 인증하고 액세스할 수 있게 해주는 애플리케이션입니다.
기본적으로 Azure 리소스에 액세스해야 하는 응용 프로그램의 ID입니다.일반인의 관점에서 동료가 Azure 리소스에 액세스하고 필요한 작업을 수행할 수 있도록 특정 액세스 권한을 할당해야 하는 경우 이메일 ID를 사용자 인증 방법으로 사용할 수 있다고 상상해 보십시오.
관리되는 ID
관리되는 ID는 실제로 서비스 주체이며 서비스를 제공하는 기능과 목적이 동일하다고 할 수 있습니다.
유일한 차이점은 위에서 언급한 애플리케이션이나 타사 커넥터와 달리 관리되는 ID는 항상 Azure 리소스에 연결된다는 것입니다.자격 증명을 포함하여 자동으로 생성됩니다. 여기서 큰 이점은 아무도 자격 증명을 모른다는 것입니다.
관리되는 ID에는 두 가지 유형이 있습니다.
1.) 시스템 할당. 이 시나리오에서는 ID가 단일 Azure 리소스(예: 가상 시스템, 웹 애플리케이션, 기능 등)에 연결됩니다.다음으로, 그들은 또한 Azure 리소스와 함께 "살아있다"는 것은 Azure 리소스가 삭제될 때 삭제된다는 것을 의미합니다.
2.) User Assigned Managed Identity. 즉, 먼저 독립 실행형 Azure 리소스로 생성한 다음 여러 Azure 리소스에 연결해야 합니다.여기서는 동일한 애플리케이션 스택에 속한 서로 다른 워크로드 서비스가 Key Vault에서 정보를 읽어야 하는 Key Vault와 통합되지 않은 경우를 예로 들 수 있습니다.이 경우 "읽기 KV" 관리 ID를 생성하여 웹 앱, 스토리지 계정, 기능, 논리 앱 등을 모두 동일한 애플리케이션 아키텍처에 속한 것으로 연결할 수 있습니다.
Azure 서비스 원칙은 응용 프로그램과 유사하며, 토큰을 다른 Azure 리소스에서 사용하여 Azure 리소스를 인증하고 액세스 권한을 부여할 수 있습니다.
관리되는 ID는 특수 유형의 서비스 주체이며, Azure 리소스에만 사용하도록 잠겨 있습니다.
두 가지 주요 차이점은 관리되는 ID에서 Azure 리소스에 액세스하기 위한 토큰을 생성하기 위해 애플리케이션 ID, 클라이언트 ID 등을 지정해야 하는 서비스 원칙과 비교하여 코드에 자격 증명을 지정할 필요가 없다는 것입니다.사용하는 서비스가 관리 ID를 지원하지 않는 경우에만 서비스 주체를 선택하는 것이 좋습니다.
관리되는 ID는 리소스(VM, Logib App 등)에 연결됩니다.리소스에 CRUD(다른 리소스에 액세스할 수 있는 권한 및 권한을 부여하려면 관리 ID를 사용합니다.
Service Principal은 리소스에 연결될 필요가 없으며, 테넌트 및 가입 상태 이상으로 유지되며, 더 중요한 것은 어딘가에 저장할 수 있는 인증 토큰(Key Vault)이 있다는 것입니다.그것은 약간의 자격 증명과 토큰을 가진 가짜 사용자와 같습니다.
서비스 주체는 보다 전통적인 사내 애플리케이션 또는 서비스 시나리오에서 서비스 계정과 유사한 것으로 간주할 수 있습니다.관리 ID는 서비스 주체 보안 개체를 가상 시스템, 웹 애플리케이션, Logic App 등의 Azure 리소스에 "연결"하는 데 사용됩니다.
(찬성) 관리되는 ID는 서비스 주체와 어떻게 다릅니까?
응용 프로그램이나 타사 커넥터가 아닌 Azure 리소스에 항상 연결됩니다.
리소스 생성 시 자동으로 생성할 수 있습니다(관리되는 ID 사용을 지원하는 리소스의 경우).
사용자가 할당한 맛과 시스템이 할당한 맛의 두 가지가 있습니다.위의 문장은 후자를 가리키며, 리소스 생성에 대해 설정되지 않은 경우에도 클릭 한 번으로 활성화할 수 있습니다.
관리되는 ID가 액세스 토큰을 사용하므로 자격 증명이 필요하지 않습니다.
서비스 주체를 설정하려면 서비스에 대한 클라이언트 ID, 테넌트 ID 및 암호/비밀 정보(예: 환경 변수)를 제공해야 합니다.
(이 항목들은 원래 Demystyping Service Principals – Managed Identitys 기사에서 가져온 것이지만, 직접 인용하는 것은 해당되지 않을 정도로 충분히 강조되었습니다.)
단점
제 생각에 복잡함은 다음과 같습니다.
"정체성", "보안 주체", "서비스 주체", "역할" 등의 용어와 이들이 서로 어떻게 관련되어 있는지에 대해 철저하게 이해해야 합니다.
토큰은 사용하기가 쉽지 않습니다.
문서들은 도처에 널려 있고, 제가 한 일의 대부분은 시행착오를 겪었습니다. 그리고 온라인에서 수많은 오류 메시지를 찾아봅니다.
예를 들어 토큰을 요청하려면 루트 리소스 URI를 사용해야 합니다(키 볼트의 경우에는
https://vault.azure.net
), 특정 대상 리소스에 사용해야 합니다.후자는 간단하지만 전자는 아닙니다.문서에서 이것이 어디에 설명되어 있는지 확실하지 않지만, 그것은 저를 잠시 토끼굴 아래로 보냈습니다(예: 이 스레드 참조).다른 기괴한 일들
주의사항
이것들은 Azure CLI와 같은 다른 도구에서는 문제가 되지 않을 수도 있습니다. 또는 제가 간과했을 수도 있습니다.포털에서 MSI(Managed Identity) 찾기
사용자가 할당한 MSI에는 고유한 "관리되는 ID" 하위 범주가 있지만 시스템에서 할당한 MSI는 표시되지 않습니다.후자는 개별적으로 검색해야 합니다.
리소스 그룹 및 MSI
이는 포털에 대한 경험을 바탕으로 한 것일 뿐이지만 시스템에서 할당한 MSI가 리소스 그룹에 속하지 않거나 숨겨져 있는 것 같습니다.즉, 사용자가 할당한 MSI는 호출할 때 명확하게 표시되지만 시스템에서 할당한 MSI에 대해 이 정보를 찾을 수 없으며 이는 의미가 없습니다.후자는 MSI 리소스에 단단히 연결되어 있기 때문에 특정 리소스의 리소스 그룹에 가서 모든 구성원을 나열했지만 해당 구성원도 표시되지 않습니다.이상하다.
조건.
Azure ID에 대한 간단한 개요(여기서 "identity"는 Azure Active Directory ID를 나타냅니다)
│
├─► user
│
├─► group
│ managed
└─► service ────► identity
principal (MSI)
교장선생님
응용 프로그램 또는 서비스에서 특정 Azure 리소스에 액세스하는 데 사용되는 보안 ID입니다.응용 프로그램의 사용자 ID(사용자 이름 및 암호 또는 인증서)라고 생각할 수 있습니다.
(from Steps to assign an Azure role)또는
조직이 Azure Active Directory를 사용할 때 토큰을 사용하여 사용자 앱, 서비스 또는 자동화 도구에서 특정 Azure 리소스를 인증하고 액세스 권한을 부여할 수 있는 애플리케이션입니다.
기본적으로 서비스 주체를 사용하면 Azure AD에서 "가짜 사용자"(사내 Active Directory의 서비스 계정이라고 함)를 생성하여 Azure 리소스에 액세스해야 할 때 인증을 관리할 수 있습니다.
(서비스 담당자 설명 – 관리 ID에서)관리되는 ID(MSI)
MSI(Managed Identity)는 관리되는 ID를 사용하여 자격 증명 없이 다른 Azure 서비스/리소스에 액세스할 수 있도록 지원하는 Azure 리소스에 할당되는 특수한 유형의 서비스 주체입니다.
(이 답변에서)관리 ID는 기본적으로 서비스 주체와 기능 및 사용 사례가 100% 동일합니다.사실, 그들은 서비스 책임자입니다.
(서비스 담당자 설명 – 관리 ID에서)MSI 리소스: 관리되는 ID(또는 부여된 ID)를 지원하는 Azure 리소스
언급URL : https://stackoverflow.com/questions/61322079/difference-between-service-principal-and-managed-identities-in-azure
'it-source' 카테고리의 다른 글
python3와 python3m 실행 파일의 차이점 (0) | 2023.05.16 |
---|---|
VB에 있는 경우 한 줄.그물 (0) | 2023.05.16 |
분할 오류에서 Linux에서 코어 덤프를 생성하는 방법은 무엇입니까? (0) | 2023.05.16 |
ViewModel의 명령에 WPF 바인딩 UI 이벤트 (0) | 2023.05.16 |
문자열에서 스트림을 생성하려면 어떻게 해야 합니까? (0) | 2023.05.16 |