Amazon Web Services 한국 블로그

AWS Verified Access 미리 보기 — 기업 애플리케이션에 대한 VPN 없는 보안 네트워크

오늘은 기업에서 VPN 없이 사내 애플리케이션에 로컬 또는 원격으로 안전하게 액세스할 수 있는 새로운 보안 연결 서비스인 AWS Verified Access의 평가판을 공개합니다.

기존에는 이동 중이거나 재택근무를 하면서 애플리케이션에 원격으로 액세스하려면 VPN을 사용해야 했습니다. 원격 근무자는 VPN에서 인증을 받은 후에, 사일로화된 시스템(예: VPN 게이트웨이, 방화벽, ID 제공자, 엔터프라이즈 디바이스 관리 솔루션)에서 정의된 여러 정책에 따라 다양한 애플리케이션에 액세스합니다. 일반적으로 이러한 정책은 서로 다른 팀이 관리하기 때문에 중첩이 발생할 가능성이 있어 애플리케이션 액세스 문제를 진단하기 어렵습니다. 내부 애플리케이션은 현대적 엔터프라이즈 패턴에 더욱 잘 맞는 최신 프로토콜(예: OIDC) 대신 LAN을 염두에 두고 구축한 오래된 인증 프로토콜(예: Kerberos)을 사용하는 경우가 많습니다. 고객분들로부터 정책 업데이트를 출시하는 데 몇 개월씩 걸린다는 이야기를 듣기도 했습니다.

Verified Access는 AWS 제로 트러스트 보안 원칙을 기반으로 합니다. 제로 트러스트는 개념적 모델로 기존 네트워크 제어나 네트워크 경계에만 단독 또는 근본적으로 의존하지 않고 디지털 자산과 관련된 보안 제어를 제공하는 데 초점을 맞춘 메커니즘의 관련 집합입니다.

Verified Access는 여러 보안 입력값을 활용하여 애플리케이션에 액세스 권한을 부여함으로써 조직의 보안 태세를 개선합니다. 사용자와 디바이스가 지정된 보안 요구 사항에 맞을 경우에만 애플리케이션에 액세스 권한을 부여합니다. 입력값의 예시로는 사용자 ID와 역할, 디바이스 보안 태세 등이 있습니다. Verified Access는 사용자나 네트워크와 관계없이 액세스 권한을 부여하기 전에 각 애플리케이션 요청을 검증합니다. 각 애플리케이션 액세스 요청을 평가한 후에는 Verified Access가 변경되는 조건에 따라 보안 태세를 조정합니다. 예를 들어, 디바이스 보안에서 디바이스 보안 태세가 규정을 위반했다는 신호를 확인할 경우 Verified Access는 그 이후부터 애플리케이션 액세스를 차단합니다.

Verified Access를 도입하는 장점에는 크게 3가지가 있다고 봅니다.

IT 관리자가 사용하기 쉽습니다. IT 관리자가 애플리케이션에 안전한 원격 액세스를 쉽게 설정할 수 있습니다. 이를 도입하면 회사 애플리케이션에 대한 액세스를 허용하거나 거부하는 여러 시스템에 걸친 보안 정책을 관리 및 적용할 수 있는 단일 구성 지점이 제공됩니다.

기존 ID 공급자와 디바이스 관리 시스템을 유지할 수 있는 개방적 에코시스템을 제공됩니다. 이 게시물 끝부분에서 모든 파트너 목록을 확인할 수 있습니다.

최종 사용자가 쉽게 사용할 수 있습니다. 가장 마음에 드는 장점입니다. 직원들이 더 이상 VPN 클라이언트를 사용하지 않아도 됩니다. 사용자 및 디바이스가 식별되고 인증되었을 때 간단한 브라우저 플러그인만으로 안전하게 액세스 권한을 부여할 수 있습니다. 현재는 Chrome 및 Firefox 웹 브라우저를 지원하고 있습니다. 이와 관련해서 여러분께 공유할 만한 개인적인 경험이 있습니다. Amazon은 몇 년 전에 VPN을 사용하지 않는 전략을 도입했습니다. 덕분에 저와 동료들은 VPN 클라이언트를 시작하기 않고도 내부 웹 애플리케이션 대부분에 액세스할 수 있었고, 종일 연결을 유지할 수 있어서 무척 편안했습니다.

실제 작동 모습 살펴보기
사설 VPC에 웹 서버를 배포하고 프라이빗 Application Load Balancer(https://demo.seb.go-aws.com)를 통해 최종 사용자에게 공개했습니다. 애플리케이션 외부 엔드포인트(secured.seb.go-aws.com)에 대한 TLS 인증서를 생성했습니다. AWS Identity Center(AWS SSO의 변경된 이름)도 설정했습니다. 이 데모에서는 이를 사용자 ID의 소스로 사용하려 합니다. 이제 이 애플리케이션을 원격 근무 직원에게 공개할 수 있습니다.

Verified Access - 데모 애플리케이션

Verified Access 엔드포인트는 4단계를 거쳐 만듭니다. 시작하려면 먼저 AWS Management Console의 VPC 페이지로 이동합니다. 우선, 트러스트 공급자를 만듭니다. 트러스트 공급자는 사용자와 디바이스의 ID 정보를 유지하고 관리합니다. 애플리케이션 요청이 전송되면, 트러스트 공급자가 보낸 ID 정보를 Verified Access에서 평가한 다음, 해당 애플리케이션 요청을 허용하거나 거부합니다. 왼쪽 탐색 창에서 Verified Access 트러스트 공급자(Verified Access trust provider)를 선택합니다.

Verified Access 탐색 메뉴

Verfied Access 트러스트 공급자 만들기(Create Verified Access trust provider) 페이지에 이름(Name)과 선택적 설명(Description)을 입력합니다. 정책 규칙을 만들 때 사용할 식별자인 정책 참조 이름(Policy reference name)을 입력합니다. 트러스트의 출처로 사용자 트러스트 공급자(User trust provider)를 선택합니다. 이 데모에서는 사용자 ID의 트러스트 소스로 IAM Identity Center를 선택하겠습니다. Verified Access는 다른 OpenID Connect 준수 공급자와도 호환됩니다. 마지막으로 Verified Access 트러스트 공급자 만들기(Create Verified Access trust provider)를 선택합니다.

Verified Access - 트러스트 공급자 만들기

트러스트 공급자가 여러 개 있으면 이 작업을 반복합니다. 예를 들어, 최종 사용자의 ID를 검증하는 ID 기반 트러스트 공급자가 있고 디바이스의 보안 태세를 검증하는 디바이스 기반 트러스트 공급자가 있을 수 있습니다.

그런 다음, Verified Identity 인스턴스를 만듭니다. Verified Access 인스턴스는 리전 AWS 엔터티로 애플리케이션 요청을 평가하여 보안 요구 사항을 충족할 경우에만 액세스 권한을 부여합니다.

Verified Access 인스턴스 만들기(Create Verified Access instance) 페이지에 이름(Name)과 선택적 설명(Description)을 입력합니다. 조금 전에 만든 트러스트 공급자를 선택합니다. Verified Access 인스턴스가 만들어지고 나면 다른 트러스트 공급자 유형을 추가할 수 있습니다.

Verified Access - 인스턴스 만들기

세 번째로는 Verified Access 그룹을 만듭니다.

Verified Access 그룹은 보안 요구 사항이 유사한 애플리케이션의 모음입니다. Verified Access 그룹 내의 각 애플리케이션은 그룹 수준 정책을 공유합니다. 예를 들어, ‘금융’ 사용자에 대한 모든 애플리케이션을 그룹화하고 하나의 공통적 정책을 사용할 수 있습니다. 이렇게 하면 정책 관리가 단순해집니다. 액세스 요구 사항이 유사한 애플리케이션 그룹에 하나의 정책을 사용할 수 있습니다.

Verified Access 그룹 만들기(Create Verified Access group) 페이지에 이름(Name)만 입력합니다. 정책은 나중에 입력할 것입니다.

Verified Access - 액세스 그룹 만들기설정을 테스트하기 전의 네 번째이자 마지막 단계는 엔드포인트를 만드는 것입니다.

Verified Access 엔드포인트는 Verified Access가 액세스 권한을 제공할 애플리케이션을 지정하는 리전 리소스입니다. 여기에 최종 사용자를 연결합니다. 각 엔드포인트는 자체적인 DNS 이름과 TLS 인증서가 있습니다. 수신되는 요청을 평가하고 나면, 엔드포인트가 내부 로드 밸런서 또는 네트워크 인터페이스를 통해 승인된 요청을 내부 애플리케이션으로 전달합니다. Verified Access는 네트워크 수준애플리케이션 수준 로드 밸런서를 지원합니다.

Verfied Access 엔드포인트 만들기(Create Verified Access endpoint) 페이지에 이름(Name)과 설명(Description)을 입력합니다. 조금 전에 만든 Verified Access 그룹(Verified Access group)을 참조합니다.

애플리케이션 세부 정보(Application details) 섹션의 애플리케이션 도메인(Application domain)에 최종 사용자가 애플리케이션에 액세스하는 데 사용할 DNS 이름을 입력합니다. 이 데모에서는 secured.seb.go-aws.com을 사용합니다. 도메인 인증서 ARN(Domain certificate ARN)에서 DNS 이름과 일치하는 TLS 인증서를 선택합니다. AWS Certificate Manager를 사용하여 인증서를 만들었습니다 .

Verified Access - 엔드포인트 만들기 - 1부

엔드포인트 세부 정보(Endpoint details) 섹션에서 VPC첨부 유형(Attachment type)으로 선택합니다. 이 엔드포인트에 연결할 보안 그룹(Security groups)을 하나 또는 여러 개 선택합니다. awsnewsblog엔드포인트 도메인 접두사(Endpoint domain prefix)로 입력합니다. 로드 밸런서를 엔드포인트 유형(Endpoint type)으로 선택합니다. 프로토콜(Protocol)(HTTP)을 선택한 다음, 포트(port) (80)을 입력합니다. 로드 밸런서 ARN(Load balancer ARN)과 로드 밸런서를 배포할 프라이빗 서브넷(Subnets)을 선택합니다.

Verified Access - 엔드포인트 만들기 - 2부

이번에도 정책 세부 정보(Policy details) 섹션은 비워둡니다. 대신 그룹에서 정책을 정의합니다. 이 작업이 끝나면 Verified Access 엔드포인트 만들기(Create Verified Access endpoint)를 선택합니다. 생성하는 데는 몇 분이 걸릴 수 있습니다.

Verified Access - 엔드포인트 만들기 - 3부

이제 커피를 한 잔 마시고 다리 스트레칭을 하고 있으면 됩니다. 자리로 돌아오면 Verified Access 엔드포인트가 ✅ 활성(Active) 상태가 되어 있습니다. 엔드포인트 도메인(Endpoint domain)을 복사하여 애플리케이션 DNS 이름(secured.seb.go-aws.com)에 CNAME 레코드로 추가합니다. 여기에서는 Amazon Route 53을 사용했지만, 여러분께서는 기존 DNS 서버를 사용하셔도 됩니다.

Verified Access - 엔드포인트 세부 정보그런 다음, 자주 사용하는 브라우저를 통해 https://secured.seb.go-aws.com으로 이동합니다. 브라우저는 IAM Identity Center(구 AWS SSO)로 리디렉션됩니다. 테스트 사용자의 사용자 이름 및 비밀번호를 입력합니다. 이 스크린샷은 추가하지 않겠습니다. 리디렉션이 끝나면 Unauthorized라는 오류 메시지를 받습니다. Verified Access 엔드포인트에 정책이 정의되지 않았으므로 이는 정상입니다. 기본적으로 모든 요청이 거부됩니다.

Verified Access 그룹(Verified Access groups) 페이지에서 정책(Policy) 탭을 선택합니다. 그런 다음, Verified Access 엔드포인트 정책 수정(Modify Verified Access endpoint policy) 버튼을 선택하여 액세스 정책을 만듭니다.

Verified Access - 그룹 정책 탭

이메일 주소가 @amazon.com으로 끝나는 사람이라면 누구나 인증을 받을 수 있는 정책을 입력합니다. 이는 AWS Identity Center에 정의된 사용자에게 사용한 이메일 주소입니다. 참고로 컨텍스트(context) 이후의 이름은 Verified Access 트러스트 제공자(Verified Access trust provider)를 만들 때 정책 참조 이름(Policy reference name)으로 입력한 이름입니다. 설명서 페이지에 정책 구문, 속성 및 사용할 수 있는 연산자에 대한 자세한 정보가 나와 있습니다.

permit(principal, action, resource)
when {
    context.awsnewsblog.user.email.address like "*@amazon.com"
};

Verified Access - 그룹 정의 정책

몇 분이 지나면 Verified Access가 정책을 업데이트하고 다시 활성(Active) 상태가 됩니다. 브라우저를 강제로 새로 고침하면 인증된 사용자가 사용할 수 있는 내부 애플리케이션이 보입니다.

Verified Access - 액세스 부여됨


요금 및 가용성

이제 AWS Verified Access가 10개 AWS 리전, 미국 동부(오하이오, 버지니아 북부), 미국 서부(캘리포니아 북부, 오레곤), 아시아 태평양(시드니), 캐나다(중부), 유럽(아일랜드, 런던, 파리), 남아메리카(상파울루)에서 평가판으로 제공됩니다.

다른 서비스와 동일하게 요금은 사용량에 따라 부과됩니다. 선불 요금이나 정액 요금은 없습니다. 애플리케이션 수에 따른 등급별로 시간당 애플리케이션(Verified Access 엔드포인트) 1개에 대해 요금을 청구합니다. 요금은 미국 동부(버지니아 북부) 리전에서 Verified Access 엔드포인트 1개에 대해 시간당 0.27 USD부터 시작됩니다. 애플리케이션이 200개를 초과할 경우, 이 요금은 시간당 엔드포인트 1개에 대해 0.20 USD까지 인하됩니다.

또한, Verified Access에서 처리하는 데이터 1GB당 0.02 USD의 요금이 있습니다. Verified Access를 사용하여 전송되는 모든 데이터에 대해 표준 AWS 데이터 전송 요금도 발생합니다.

이 청구 모델을 사용하면 소규모로 시작해서, 원하는 속도로 확장할 수 있습니다.

지금 바로 첫 Verified Access 액세스 포인트를 구성해 보세요.

— seb