Security & Compliance PowerShell에 연결

이 문서에는 MFA(다단계 인증)를 사용하거나 사용하지 않고 Exchange Online PowerShell 모듈을 사용하여 보안 & 준수 PowerShell에 연결하는 방법에 대한 지침이 포함되어 있습니다.

Exchange Online PowerShell 모듈은 최신 인증을 사용하여 Microsoft 365의 모든 Exchange 관련 PowerShell 환경(Exchange Online PowerShell, 보안 & 규정 준수 PowerShell 및 독립 실행형 Exchange Online Protection(EOP) PowerShell)에 연결합니다. Exchange Online PowerShell 모듈에 대한 자세한 내용은 Exchange Online PowerShell 모듈 정보를 참조하세요.

자동화를 위해 보안 & 준수 PowerShell에 연결하려면 무인 스크립트에 대한 앱 전용 인증을 참조하세요.

시작하기 전에 알아야 할 사항은 무엇인가요?

1단계: Exchange Online PowerShell 모듈 로드

참고

모듈이 이미 설치된 경우 일반적으로 이 단계를 건너뛰고 먼저 모듈을 수동으로 로드하지 않고 Connect-IPPSSession 을 실행할 수 있습니다.

모듈을 설치한 후 PowerShell 창을 열고 다음 명령을 실행하여 모듈을 로드합니다.

Import-Module ExchangeOnlineManagement

2단계: 연결 및 인증

참고

연결에 사용한 계정의 프로필 경로에 특수 PowerShell 문자(예 $: )가 포함된 경우 연결 명령이 실패할 수 있습니다. 해결 방법은 프로필 경로에 특수 문자가 없는 다른 계정을 사용하여 연결하는 것입니다.

실행해야 하는 명령은 다음 구문을 사용합니다.

Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndpointUri <URL>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]

구문과 매개 변수에 대한 자세한 내용은 Connect-IPPSSession을 참조합니다.

  • <UPN> 은 사용자 계정 이름 형식(예: navin@contoso.onmicrosoft.com)의 계정입니다.

  • 필요한 ConnectionUriAzureADAuthorizationEndpointUri 값은 Microsoft 365 organization 특성에 따라 달라집니다. 일반적인 값은 다음 목록에 설명되어 있습니다.

    • Microsoft 365 또는 Microsoft 365 GCC:
      • ConnectionUri: 없음. 필수 값 https://ps.compliance.protection.outlook.com/powershell-liveid/ 도 기본값이므로 Microsoft 365 또는 Microsoft 365 GCC 환경에서 ConnectionUri 매개 변수를 사용할 필요가 없습니다.
      • AzureADAuthorizationEndpointUri: None. 필수 값 https://login.microsoftonline.com/common 도 기본값이므로 Microsoft 365 또는 Microsoft 365 GCC 환경에서 AzureADAuthorizationEndpointUri 매개 변수를 사용할 필요가 없습니다.
    • Microsoft 365 GCC High:
      • ConnectionUri: https://ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUri: https://login.microsoftonline.us/common
    • Microsoft 365 DoD:
      • ConnectionUri: https://l5.ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUri: https://login.microsoftonline.us/common
    • 21Vianet에서 운영하는 Office 365:
      • ConnectionUri: https://ps.compliance.protection.partner.outlook.cn/powershell-liveid
      • AzureADAuthorizationEndpointUri: https://login.chinacloudapi.cn/common
  • 프록시 서버 뒤에 있는 경우 연결 명령에서 PSSessionOption 매개 변수를 사용할 수 있습니다. 먼저 다음 명령을 실행합니다$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>. 여기서 <Value>는 , WinHttpConfig또는 AutoDetect입니다IEConfig. 그런 다음 PSSessionOption 매개 변수의 값을 $ProxyOptions 사용합니다. 자세한 내용은 New-PSSessionOption을 참조하세요.

  • 조직의 특성에 따라 다음 단계에서 UserPrincipalName 매개 변수를 생략할 수 있습니다. 대신 사용자 이름과 암호를 입력하거나 Connect-IPPSSession 명령을 실행한 후 저장된 자격 증명을 선택합니다. 작동하지 않으면 UserPrincipalName 매개 변수를 사용해야 합니다.

  • MFA를 사용하지 않는 경우 UserPrincipalName 매개 변수 대신 Credential 매개 변수를 사용할 수 있습니다. 먼저 $Credential = Get-Credential 명령을 실행하고 사용자 이름과 암호를 입력한 다음 Credential 매개 변수(-Credential $Credential)에 대한 변수 이름을 사용합니다. 작동하지 않으면 UserPrincipalName 매개 변수를 사용해야 합니다.

대화형 로그인 프롬프트를 사용하여 보안 & 규정 준수 PowerShell에 연결

  1. 다음 예제는 MFA를 사용하거나 사용하지 않는 계정에 대해 Windows PowerShell 5.1 및 PowerShell 7에서 작동합니다.

    • 이 예제는 Microsoft 365 또는 Microsoft 365 GCC 조직의 보안 및 규정 준수 PowerShell에 연결됩니다.

      Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com
      
    • 이 예제는 Microsoft GCC High 조직의 보안 및 규정 준수 PowerShell에 연결됩니다.

      Connect-IPPSSession -UserPrincipalName chris@govt.us -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
      
    • 이 예제는 Microsoft 365 DoD 조직의 보안 및 규정 준수 PowerShell에 연결됩니다.

      Connect-IPPSSession -UserPrincipalName michelle@govt.mil -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
      
    • 이 예는 21Vianet 조직에서 운영하는 Office 365의 보안 및 규정 준수 PowerShell에 연결합니다.

      Connect-IPPSSession -UserPrincipalName li@fabrikam.cn -ConnectionUri https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -AzureADAuthorizationEndpointUri https://login.chinacloudapi.cn/common
      
  2. 로그인 창이 열리면 암호를 입력하고 로그인을 클릭합니다.

    계정에 로그인 창에 암호를 입력합니다.

    참고

    PowerShell 7에서는 기본적으로 브라우저 기반 SSO(Single Sign-On)가 사용되므로 독립 실행형 대화 상자 대신 기본 웹 브라우저에서 로그인 프롬프트가 열립니다.

  3. MFA만 해당: 계정에 대해 구성된 응답 옵션(예: 장치의 텍스트 메시지 또는 Microsoft Authenticator 앱)에 따라 확인 코드가 생성되어 제공됩니다.

    열리는 확인 창에서 확인 코드를 입력한 다음 확인을 클릭합니다.

    계정에 로그인 창에 확인 코드를 입력합니다.

로그인 프롬프트 없이 보안 & 준수 PowerShell에 연결(무인 스크립트)

전체 지침은 Exchange Online PowerShell 및 보안 & 준수 PowerShell의 무인 스크립트에 대한 앱 전용 인증을 참조하세요.

고객 조직의 보안 & 규정 준수 PowerShell에 연결

이 섹션의 절차에는 모듈 버전 3.0.0 이상이 필요합니다.

Security & Compliance PowerShell에서 DelegatedOrganization 매개 변수와 함께 AzureADAuthorizationEndpointUri를 사용해야 합니다.

파트너 및 고객 조직에 대한 자세한 내용은 다음 topics 참조하세요.

이 예제에서는 다음 시나리오에서 고객 조직에 연결합니다.

  • CSP 계정을 사용하여 고객 organization 연결합니다.

  • GDAP를 사용하여 고객 organization 연결합니다.

  • 고객 organization 게스트 사용자로 연결합니다.

    Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com -AzureADAuthorizationEndpointUri https://login.microsoftonline.com/adatum.onmicrosoft.com
    

3단계: 완료되면 연결 끊기

완료되면 세션의 연결을 끊어야 합니다. 세션 연결을 끊지 않고 PowerShell 창을 닫으면 사용 가능한 모든 세션을 사용할 수 있으며 세션이 만료되기를 기다려야 합니다. 세션의 연결을 끊려면 다음 명령을 실행합니다.

Disconnect-ExchangeOnline

확인 프롬프트 없이 자동으로 연결을 끊려면 다음 명령을 실행합니다.

Disconnect-ExchangeOnline -Confirm:$false

참고

연결 끊기 명령은 연결하는 데 사용한 계정의 프로필 경로에 특수 PowerShell 문자(예 $: )가 포함된 경우 실패할 수 있습니다. 해결 방법은 프로필 경로에 특수 문자가 없는 다른 계정을 사용하여 연결하는 것입니다.

성공적으로 연결되었음을 어떻게 알 수 있나요?

보안 및 준수 PowerShell cmdlet을 로컬 Windows PowerShell 세션으로 가져오게 되고 진행률 표시줄을 통해 추적됩니다. 오류가 발생하지 않으면 성공적으로 연결되었습니다. 연결을 간단하게 테스트하려면 Get-RetentionCompliancePolicy 등의 보안 및 규정 준수 PowerShell cmdlet을 실행하여 결과를 확인합니다.

오류가 발생하면 다음 요구 사항을 확인합니다.

  • 가장 흔한 문제는 암호를 잘못 입력한 경우입니다. 세 단계를 다시 실행하고 사용하는 사용자 이름과 암호를 주의해서 입력합니다.

  • 연결하는 데 사용하는 계정은 PowerShell에 사용하도록 설정해야 합니다. 자세한 내용은 Exchange Online PowerShell에 대한 액세스 설정 또는 해제를 참조하세요.

  • 로컬 컴퓨터와 Microsoft 365 간에 TCP 포트 80 트래픽이 열려 있어야 합니다. 이 포트는 이미 열려 있을 수도 있지만 조직에서 제한적인 인터넷 액세스 정책을 사용하는 경우에는 열려 있는지를 고려해야 합니다.

  • 보안 & 규정 준수 PowerShell에 대한 REST 기반 연결에는 PowerShellGet 모듈 및 종속성에 따라 PackageManagement 모듈이 필요하므로 설치하지 않고 연결하려고 하면 오류가 발생합니다. 예를 들어 다음 오류가 표시될 수 있습니다.

    'Update-ModuleManifest'라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다. 이름의 철자를 확인하거나 경로가 포함된 경우 경로가 올바른지 확인하고 다시 시도합니다.

    PowerShellGet 및 PackageManagement 모듈 요구 사항에 대한 자세한 내용은 Windows의 REST 기반 연결에 대한 PowerShellGet을 참조하세요.

  • 연결 요청 중에 클라이언트 IP 주소가 변경되면 연결에 실패할 수 있습니다. 조직에서 여러 IP 주소를 포함하는 원본 SNAT(Source Network Address Translation) 풀을 사용하는 경우 이 문제가 발생할 수 있습니다. 연결 오류는 다음과 같이 표시됩니다.

    서버에서 셸을 찾을 수 없어 ShellId <ID> 가 있는 Windows 원격 셸에 대한 요청이 실패했습니다. 가능한 원인: 지정된 ShellId이 올바르지 않거나 셸이 서버에 더 이상 존재하지 않습니다. 올바른 ShellId를 제공하거나 새 셸을 만든 후 작업을 다시 시도하세요.

    이 문제를 해결하려면 단일 IP 주소를 포함하는 SNAT 풀을 사용하거나 보안 및 규정 준수 PowerShell 끝점에 연결하는 데 특정 IP 주소를 사용합니다.