이 문서에서는 앱 등록, 보안 향상, 성능 최적화 및 유지 관리 전략을 포함하는 Microsoft Entra PowerShell 모범 사례를 구현하는 방법을 알아봅니다.
이러한 사례를 이해하는 것은 보안 위험을 최소화하고, 성능을 최적화하고, up-to-date 시스템을 유지하는 데 중요합니다. 중요한 데이터를 보호하고 모든 조직에서 원활한 운영을 보장하는 데 필수적입니다.
엔터프라이즈 앱을 사용하는 대신 앱 등록
마케팅 또는 지원 센터 팀과 같은 특정 사용 권한으로 다양한 사용 사례에 맞게 조정된 사용자 고유의 애플리케이션을 등록할 수 있습니다. 이 방법을 사용하면 보다 세분화된 권한 관리를 허용하고 앱이 손상된 경우 보안 영향을 최소화할 수 있습니다. 등록된 앱을 만들려면 사용자 지정 애플리케이션 만들기를 참조하세요.
다음을 실행하여 등록한 애플리케이션을 사용해 로그인하세요.
Connect-Entra -ClientId <your-custom-app-id> -TenantId <your-tenant-id>
ClientId 대신 별칭 AppId 또는 ApplicationId을 사용할 수도 있습니다.
Security
앱에서 다음 동의 및 권한 부여 모범 사례를 적용하여 보안을 강화합니다.
최소 권한 적용: 사용자 및 앱에 Microsoft Entra 리소스를 호출하는 데 필요한 가장 낮은 권한 권한만 부여합니다. 최소 권한 사용 권한을 선택합니다. 예를 들어, 앱이 현재 로그인한 사용자의 프로필만 읽는 경우
User.ReadBasic.All대신User.Read을 부여합니다. 사용 권한의 전체 목록은 사용 권한 참조를 참조하세요.Disconnect-Entra 사용: 항상 Disconnect-Entra 를 실행하여 계정과 연결된 모든 자격 증명 및 컨텍스트를 제거합니다. 이 cmdlet은 더 이상 필요하지 않을 때 연결을 제대로 정리하고 닫습니다. 세션이 열려 있거나 다른 사람이 PowerShell 환경에 액세스하는 경우 무단 액세스의 위험을 줄입니다.
시나리오에 따라 올바른 사용 권한 유형을 사용합니다. 동일한 앱에서 애플리케이션 및 위임된 권한을 모두 사용하지 않도록 합니다. 로그인한 사용자가 있는 대화형 애플리케이션을 빌드하는 경우 애플리케이션에서 위임된 권한을 사용해야 합니다. 그러나 애플리케이션이 백그라운드 서비스 또는 디먼과 같은 로그인한 사용자 없이 실행되는 경우 애플리케이션은 애플리케이션 권한을 사용해야 합니다.
애플리케이션 사용 권한에 주의: 의도치 않게 사용자의 권한을 상승시키고 관리자 정책을 무시할 수 있으므로 보안 및 규정 준수 위험을 방지하기 위해 대화형 시나리오에 애플리케이션 권한을 사용하지 마세요.
앱을 구성할 때 신중해야 합니다. 구성은 애플리케이션 채택 및 보안과 함께 최종 사용자 및 관리자 환경에 영향을 줍니다. 다음은 그 예입니다.
- 애플리케이션의 이름, 로고, 도메인, 게시자 확인 상태, 개인정보처리방침 및 사용 약관이 동의 및 기타 환경에 표시됩니다. 최종 사용자가 이해할 수 있도록 이러한 설정을 신중하게 구성합니다.
- 최종 사용자 또는 관리자 등 애플리케이션에 동의하는 사용자를 고려하고 권한을 적절하게 요청하도록 애플리케이션을 구성합니다.
- 정적, 동적 및 증분 동의의 차이를 이해해야 합니다.
권한 크리프에 주의 - 시간이 지남에 따라 등록된 앱에 대해 발생하는 사용 권한을 주시하세요.
보안 기본값 및 조건부 액세스 활용 - 조건부 액세스(허가된 조직의 경우) 및 보안 기본값(허가되지 않은 조직의 경우)을 사용하여 Microsoft Entra 다단계 인증으로 사용자를 보호합니다.
Microsoft Entra 권장 사항 - 활용Microsoft Entra 권장 사항 기능은 테넌트의 상태를 부지런히 모니터링하여 안전하고 정상 상태로 유지되도록 합니다. 사용 중인 앱, 만료 자격 증명, 권한이 초과된 애플리케이션 등에 대한 가시성이 있습니다.
앱 로그인을 할당된 ID로만 제한 - 이 속성은
Assignment Required할당된 사용자만 로그인할 수 있도록 하여 애플리케이션에 대한 액세스를 관리하는 데 도움이 됩니다.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraServicePrincipal -Filter "DisplayName eq 'Contoso Demo App'" | Set-EntraServicePrincipal -AppRoleAssignmentRequired $true
성능 최적화
다음 사례는 Microsoft Entra PowerShell로 작업할 때 성능을 최적화하는 데 도움이 될 수 있습니다.
필터 사용
필터링은 불필요한 네트워크 트래픽 및 데이터 처리를 줄이는 데 도움이 되는 컬렉션의 하위 집합을 검색하도록 선택을 제한하여 서버 쪽에서 수행됩니다.
Get-EntraUser -Filter "startsWith(DisplayName,'Ada')"
필수 속성만 선택
매개 변수를 사용하여 -Property 필수 속성만 가져와 필요한 속성을 선택합니다.
페이지 크기 정의
많은 개체를 반환하는 요청의 경우 매개 변수를 사용하여 페이지 크기를 최대값-top로 늘입니다.
Get-EntraUser -All -Top 999
Maintenance
다음 유지 관리 모범 사례를 적용하여 Microsoft Entra PowerShell 모듈 및 스크립트가 최신 상태이고 최적으로 작동하는지 확인합니다.
Microsoft Entra PowerShell 모듈을 최신 상태로 유지
모듈을 최신 상태로 유지하는 것은 여러 가지 이유로 중요합니다. 첫째, 최신 기능 및 향상된 기능을 활용할 수 있으므로 최신 cmdlet 및 기능에 액세스할 수 있습니다. 더 중요한 것은 정기 업데이트가 보안 상태를 향상시킨다는 점입니다. 우리 팀은 보안 수정 및 패치를 지속적으로 구현하여 취약성으로부터 시스템을 보호합니다.
팁 (조언)
Azure Automation Microsoft Entra PowerShell을 사용하는 경우 Azure Automation 계정에서도 PowerShell 모듈을 업데이트합니다.
Update-Module -Name Microsoft.Entra
모듈을 업데이트한 후 이전 버전을 제거합니다.
Get-Help 사용
Get-Help 는 명령줄에서 직접 포괄적인 설명서를 제공합니다. 사용 예제, 허용되는 매개 변수 및 출력을 포함하여 Microsoft Entra PowerShell cmdlet, 함수, 스크립트 및 개념에 대한 자세한 정보를 제공합니다. Get-Help 효율적인 스크립팅을 촉진하고 일반적인 실수를 방지하는 데 도움이 됩니다.
Get-Help Get-EntraUser -Detailed
디버그 옵션 사용
-Debug는 Microsoft Entra PowerShell과 상호 작용할 때 자세한 진단 정보를 제공하여 문제를 해결하는 데 도움이 됩니다. 스크립트가 작동하는 방식과 개발 및 테스트 단계에서 문제가 발생할 수 있는 위치를 정확하게 이해하는 데 도움이 될 수 있습니다.
Get-EntraUser -Top 1 -Debug
로그 파일에 디버그 출력 스트림을 보내려면 다음을 사용합니다.
Get-EntraUser -Top 1 -Debug 5>> <your-log-filepath>
-
5- 스트림 번호를Debug Stream나타냅니다. 스트림에 대한 자세한 내용은 출력 스트림을 참조하세요. -
>>- 리디렉션 연산자를 나타냅니다. 리디렉션 연산자에 대한 자세한 내용은 리디렉션 연산자를 참조하세요.