이 페이지에서는 IAP(Identity-Aware Proxy)를 사용하여 App Engine 인스턴스를 보호하는 방법을 설명합니다.
시작하기 전에
App Engine에 IAP를 사용 설정하려면 다음 단계를 따르세요.
결제가 사용 설정된 Google Cloud 콘솔 프로젝트를 사용합니다.
기본 Google 관리 OAuth 클라이언트를 사용하려면 프로젝트가 Google Cloud 조직에 속해야 합니다. 조직이 없는 경우 조직을 만들 수 있습니다. 커스텀 OAuth 클라이언트 사용의 이점을 알아보려면 App Engine용 커스텀 OAuth 클라이언트 구성을 참고하세요. Google 관리 OAuth 클라이언트는 내부 사용자만 액세스할 수 있도록 허용합니다.
아직 설정하지 않았다면 App Engine 인스턴스를 설정합니다. 전체 둘러보기는 App Engine에 배포를 참고하세요.
IAP 사용 설정
콘솔
프로젝트가 조직에 속하지 않는 경우 커스텀 OAuth 사용자 인증 정보를 사용해야 합니다.
如果您尚未配置项目的 OAuth 权限请求页面,系统会提示您进行配置。如需配置 OAuth 权限请求页面,请参阅设置 OAuth 权限请求页面。
设置 IAP 访问权限
-
转到 Identity-Aware Proxy 页面。
转到 Identity-Aware Proxy 页面 - 选择要使用 IAP 保护的项目。
- 选中您要授予访问权限的资源旁边的复选框。
- 在右侧面板上,点击添加主账号。
-
在显示的添加主账号对话框中,输入群组或个人(应拥有项目的 IAP-secured Web App User 角色)的电子邮件地址。
以下种类的主账号可以具有此角色:
- Google 账号:user@gmail.com
- Google 网站论坛:admins@googlegroups.com
- 服务账号:server@example.
- Google Workspace 网域:example.com
请务必添加您有权访问的 Google 账号。
- 从角色下拉列表中选择 Cloud IAP > 受 IAP 保护的网页应用用户。
- 点击保存。
启用 IAP
-
在 Identity-Aware Proxy 页面上的应用下,找到您要限制访问的应用。如需为某资源开启 IAP,请
-
在出现的开启 IAP 窗口中,点击开启以确认您想用 IAP 保护资源。 开启 IAP 后,对于与负载均衡器的所有连接,它都要求提供登录凭证。
只有在项目中具有 IAP-Secured Web 应用 User (
roles/iap.httpsResourceAccessor) 角色的主体才能获得访问权限。
gcloud
프로젝트와 IAP를 설정하려면 최신 버전의 gcloud CLI가 필요합니다. gcloud CLI 설치 방법에 대한 자세한 내용은 gcloud CLI 설치를 참고하세요.
-
인증하려면 Google Cloud CLI를 사용하고 다음 명령어를 실행합니다.
gcloud auth login - 표시되는 URL을 클릭하고 로그인합니다.
- 로그인한 후에는 표시된 확인 코드를 복사하고 이를 명령줄에 붙여넣습니다.
-
다음 명령어를 실행하여 IAP로 보호하려는 애플리케이션이 포함된 프로젝트를 지정합니다.
gcloud config set project PROJECT_ID -
IAP를 사용 설정하려면 다음 명령어를 실행하세요.
gcloud iap web enable --resource-type=app-engine --versions=version -
IAP 보안 웹 앱 사용자 역할이 있어야 하는 주 구성원을 프로젝트에 추가합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor- PROJECT_ID를 프로젝트 ID로 바꿉니다.
- PRINCIPAL_IDENTIFIER를 필요한 주 구성원으로 바꿉니다. 도메인, 그룹, serviceAccount 또는 사용자 유형일 수 있습니다. 예를 들면
user:myemail@example.com입니다.
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://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
IAP를 사용 설정한 후 Google Cloud CLI를 사용하여 IAM 역할 roles/iap.httpsResourceAccessor를 사용하여 IAP 액세스 정책을 수정할 수 있습니다. 역할 및 권한 관리에 대해 자세히 알아보세요.
프로젝트 내의 App Engine 서비스에서 IAP를 사용 설정할 수 있습니다. 일부 서비스는 공개적으로 액세스할 수 있도록 하고 다른 서비스는 인증이 필요하도록 하려면 서비스 전반에서 다양한 액세스 수준을 사용하면 됩니다.
자세한 내용은 IAP로 액세스 관리를 참고하세요.
서비스를 공개적으로 액세스할 수 있도록 하려면 allAuthenticatedUsers에 IAP 보안 웹 앱 사용자 역할을 부여하세요.
사용자 인증 테스트
역할이 부여되면 주 구성원은 IAP로 인증하여 앱에 액세스할 수 있습니다. IAP 보안 웹 앱 사용자(
roles/iap.httpsResourceAccessor) 역할이 부여된 Google 계정에서 앱 URL에 액세스합니다.액세스를 테스트하려면 Chrome에서 시크릿 창을 열고 앱 URL에 액세스한 후 메시지가 표시되면 로그인합니다. IAP 보안 웹 앱 사용자 (
roles/iap.httpsResourceAccessor) 역할이 부여되고 인증에 성공한 사용자는 앱에 액세스할 수 있습니다. 필요한 역할이 부여되지 않았거나 인증에 실패한 사용자는 앱에 액세스할 수 없습니다.