이 페이지에서는 IAP(Identity-Aware Proxy)를 사용하여 Compute Engine 인스턴스를 보호하는 방법을 설명합니다.
Google Cloud에 없는 리소스를 보호하려면 온프레미스 앱 및 리소스 보호를 참조하세요.
시작하기 전에
Compute Engine에 IAP를 사용 설정하려면 다음이 필요합니다.
- 청구가 사용 설정된 Google Cloud Console 프로젝트
- 부하 분산기로 제공된 하나 이상의 Compute Engine 인스턴스 그룹
- 외부 HTTPS 부하 분산기 설정 알아보기
- 내부 HTTP 부하 분산기 설정 알아보기
- 부하 분산기 주소에 등록된 도메인 이름
- 모든 요청에 ID가 포함되었는지 확인하기 위한 애플리케이션 코드
- 사용자의 ID 가져오기에 대해 자세히 알아보세요.
Compute Engine 인스턴스를 아직 설정하지 않은 경우 전체적으로 둘러보려면 Compute Engine을 위한 IAP 설정을 참조하세요.
IAP는 Google 관리 OAuth 클라이언트를 사용하여 사용자를 인증합니다. 조직 내 사용자만 IAP가 사용 설정된 애플리케이션에 액세스할 수 있습니다. 조직 외부 사용자에게 액세스를 허용하려면 외부 애플리케이션에 IAP 사용 설정을 참조하세요.
IAP 사용 설정
콘솔
Google Cloud 콘솔을 사용하여 IAP를 사용 설정하면 Google 관리 OAuth 클라이언트를 사용할 수 없습니다.
프로젝트의 OAuth 동의 화면을 구성하지 않았으면, 구성하라는 메시지가 표시됩니다. OAuth 동의 화면을 구성하려면 OAuth 동의 화면 설정을 참조하세요.
IAP 액세스 설정
-
Identity-Aware Proxy 페이지로 이동합니다.
IAP(Identity-Aware Proxy) 페이지로 이동 - IAP로 보호하려는 프로젝트를 선택합니다.
-
액세스 권한을 부여할 리소스 옆에 있는 체크박스를 선택합니다.
리소스가 표시되지 않으면 리소스가 생성되었고 BackendConfig Compute Engine 인그레스 컨트롤러가 동기화되었는지 확인합니다.
백엔드 서비스를 사용할 수 있는지 확인하려면 다음 gcloud 명령어를 실행합니다.
gcloud compute backend-services list
- 오른쪽 패널에서 주 구성원 추가를 클릭합니다.
-
표시된 주 구성원 추가 대화상자에서 프로젝트에 대한 IAP 보안 웹 앱 사용자 역할이 있어야 하는 그룹 또는 개별 사용자의 이메일 주소를 입력합니다.
다음과 같은 종류의 주 구성원이 이 역할을 가질 수 있습니다.
- Google 계정: user@gmail.com
- Google Groups: admins@googlegroups.com
- 서비스 계정: server@example.gserviceaccount.com
- Google Workspace 도메인: example.com
액세스 권한이 있는 Google 계정을 추가해야 합니다.
- 역할 드롭다운 목록에서 Cloud IAP > IAP 보안 웹 앱 사용자를 선택합니다.
- 저장을 클릭합니다.
IAP 사용 설정 중
-
IAP(Identity-Aware Proxy) 페이지의 APPLICATIONS에서 액세스를 제한하려는 instance group 을 제공하는 부하 분산기를 찾습니다. 리소스에 IAP를 사용하려면
IAP를 사용 설정하려면 다음 안내를 따르세요.- 부하 분산기 프런트엔드 구성에서 하나 이상의 프로토콜이 HTTPS여야 합니다. 부하 분산기 설정에 대해 자세히 알아보세요.
-
compute.backendServices.update
,clientauthconfig.clients.create
,clientauthconfig.clients.getWithSecret
권한이 필요합니다. 이러한 권한은 프로젝트 편집자 역할과 같은 역할에서 부여합니다. 자세한 내용은 IAP 보안 리소스에 대한 액세스 관리를 참조하세요.
- 표시되는 IAP 사용 창에서 사용을 클릭하여 IAP가 리소스를 보호할 것임을 확인합니다. IAP를 사용하면 부하 분산기에 대한 모든 연결에 로그인 사용자 인증 정보가 필요합니다. 프로젝트에서 IAP 보안 웹 앱 사용자 역할이 있는 계정만 액세스할 수 있습니다.
gcloud
프로젝트와 IAP를 설정하려면 최신 버전의 gcloud CLI가 필요합니다. gcloud CLI 설치 방법에 대한 자세한 내용은 gcloud CLI 설치를 참조하세요.
-
인증하려면 Google Cloud CLI를 사용하고 다음 명령어를 실행합니다.
gcloud auth login
- 로그인하려면 표시되는 URL을 따릅니다.
- 로그인한 후에는 표시된 확인 코드를 복사하고 이를 명령줄에 붙여넣습니다.
-
다음 명령어를 실행하여 IAP로 보호하려는 리소스가 포함된 프로젝트를 지정합니다.
gcloud config set project PROJECT_ID
-
IAP를 사용 설정하려면 전역 또는 리전 범위 명령어를 실행합니다.
전역 범위 리전 범위gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled
IAP를 사용 설정한 후 gcloud CLI를 사용하여 IAM 역할 roles/iap.httpsResourceAccessor
를 사용하여 IAP 액세스 정책을 수정할 수 있습니다. 역할 및 권한 관리에 대해 자세히 알아보세요.
API
다음 명령어를 실행하여
settings.json
파일을 준비합니다.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
다음 명령어를 실행하여 IAP를 사용 설정합니다.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
IAP를 사용 설정한 후 Google Cloud CLI를 사용하여 IAM 역할 roles/iap.httpsResourceAccessor
를 사용하여 IAP 액세스 정책을 수정할 수 있습니다. 역할 및 권한 관리에 대해 자세히 알아보세요.
다음 단계
- 액세스 수준을 적용하여 더욱 다양한 컨텍스트 규칙 설정하기
- Cloud 감사 로그 사용 설정의 액세스 요청을 참조하기
- IAP 자세히 알아보기