Amazon Web Services 한국 블로그

AWS Single Sign-On(SSO)와 Okta Universal Directory 통합하기

AWS 클라우드를 채택하는 기업에서 사용자의 클라우드 자원 접근 자격 증명을 효율적으로 관리해야 합니다. 자격 증명을 관리할 단일의 중앙 위치가 있으면 정책 적용 및 액세스 권한 관리 작업이 쉬울 뿐 아니라 사용자 및 사용자 권한을 여러 자격 증명을 만들어 운영할 필요가 없으므로 오버헤드가 감소합니다.

사용자 측에서도 고유한 단일의 자격 증명이 있으면 액세스가 간소화됩니다. 여러 시스템에 액세스해야 하는 경우 다수의 개별 암호를 기억하기가 어렵습니다. 사용자 이름과 암호의 단일 조합을 사용하여 여러 시스템에 연결할 수 있게 되면 매일의 보안과 생산성이 개선됩니다.

한 시스템의 자격 증명을 다른 신뢰하는 시스템에서 관리되는 자격 증명에 연결하는 것을 “자격 증명 연동“이라고 합니다. SSO(Single Sign-On)는 이 자격 증명 연동의 하위 집합입니다. 자격 증명 연동이 가능한 것은 SAML(Security Assertion Markup Language), OAuth, OpenID 및 기타 산업 표준 덕분입니다.

최근에 AWS가 발표한 새로운 버전AWS Single Sign-On은 AWS 자격 증명을 Azure Active Directory 자격 증명에 연결할 수 있는 기능을 제공합니다. 이에 더해 AWS Single Sign-OnOkta Universal Directory의 통합이 발표되었습니다.

시스템 관리자를 위한 환경을 살펴본 다음 사용자용 SSO(Single Sign-On) 환경에 대한 데모를 검토하도록 하겠습니다.

먼저, 이미 Okta Universal Directory를 사용하여 직원의 자격 증명을 관리하는 엔터프라이즈의 관리자가 있다고 가정합시다. 이 관리자는 AWS 환경에 액세스하는 사용자에게 기존 자격 증명을 사용하여 단순하고 쉽게 액세스할 수 있는 방법을 제공하려고 합니다. 대부분의 엔터프라이즈와 마찬가지로 관리자는 다수의 AWS 계정을 관리합니다.

SSO(Single Sign-On) 솔루션을 사용하는 것에 더해 중앙에서 AWS 계정에 대한 액세스를 관리할 수 있어야 합니다. Okta 그룹 및 사용자 멤버십을 직접 복제하거나 여러 자격 증명 시스템(Okta Universal Directory와 관리하는 각 AWS 계정에 대한 시스템)을 유지 관리하는 방법은 선호하지 않습니다. Okta와 AWS 간의 사용자를 자동으로 동기화하는 기능을 활성화해야 합니다. 사용자는 이미 Okta에서 익힌 경험을 사용하여 AWS 환경에 로그인하게 됩니다.

AWS Single Sign-On과 Okta 통합 시작하기
첫 번째 단계는 AWS Single Sign-On을 Okta 사용자가 연결할 수 있는 “애플리케이션”으로 추가하는 것입니다. Okta 관리 콘솔로 이동하고 Okta 관리자 자격 증명으로 로그인한 다음 [애플리케이션] 탭으로 이동합니다.

Okta 관리 콘솔녹색 [애플리케이션 추가] 버튼을 클릭하고 AWS SSO 애플리케이션을 검색합니다. [추가]를 클릭합니다.

Okta 애플리케이션 추가앱에 이름을 입력(원하는 이름을 선택할 수 있음)하고 [완료]를 클릭합니다.

다음 화면에서 AWS Single Sign-On과 Okta 간의 합의를 구성합니다. 먼저, 파란색 링크 [자격 증명 공급자 메타데이터]를 클릭하여 Okta에서 생성된 SAML 메타 데이터 파일을 다운로드합니다. 이 파일을 보관합니다. 나중에 AWS 측 SSO(Single Sign-On)를 구성할 때 필요합니다.

Okta 자격 증명 공급자 메타데이터

이제 메타데이터 파일이 있으니 AWS Management Console을 새 탭에서 엽니다. 아직 절차가 끝난 것이 아니므로 Okta 탭을 열어둡니다. AWS Single Sign-On으로 이동하고 [AWS SSO 활성화]를 클릭합니다.

탐색 패널에서 [설정]을 클릭합니다. 먼저 [변경] 링크를 클릭하고 옵션 목록에서 [외부 자격 증명 공급자]를 선택하여 [자격 증명 소스]를 설정합니다. 다음으로, [자격 증명 공급자 메타데이터] 섹션에서 Okta에서 다운로드한 XML 파일을 찾아서 선택합니다.

SSO 메타데이터 구성

[다음: 검토]를 클릭하고 제공된 필드에 CONFIRM을 입력한 다음 [자격 증명 소스 변경]을 클릭하여 AWS Single Sign-On 측 프로세스를 완료합니다. AWS SSO ACS URL과 AWS SSO 발급자 URL의 두 값을 기록해 둡니다. Okta 콘솔에서 이 두 값을 입력해야 합니다.

AWS SSO URL 저장Okta 콘솔에서 열어 둔 탭으로 돌아가서 AWS SSO ACS URLAWS SSO 발급자 URL에 대한 값을 복사합니다.

OKTA ACS URL[저장]을 클릭하여 구성을 완료합니다.

자동 프로비저닝 구성
이제, Okta에서 사용자가 AWS Single Sign-On을 사용하여 연결할 수 있는 SSO(Single Sign-On)가 구성되었으므로 사용자 계정의 자동 프로비저닝을 활성화합니다. 새 계정이 Okta에 추가되고, AWS SSO 애플리케이션에 할당되었으므로 해당하는 AWS Single Sign-On 사용자가 자동으로 생성됩니다. 관리자는 AWS에서 Okta 사용자에 매핑할 계정을 구성하지 않아도 됩니다.

AWS Single Sign-On 콘솔에서 [설정]으로 이동하고 [자격 증명 동기화 활성화] 링크를 클릭합니다. SCIM 엔드포인트와 OAuth 전달자 액세스 토큰(기본적으로 숨겨져 있음)에 대한 값이 포함된 대화 상자가 열립니다. Okta 애플리케이션 설정에서 이 두 값을 사용해야 합니다.

AWS SSO SCIMOkta 콘솔의 열린 탭으로 다시 전환하고 AWS SSO 애플리케이션의 [프로비저닝] 탭을 클릭합니다. [API 통합 활성화]를 선택합니다. [기본 URL](AWS Single Sign-On 콘솔의 SCIM 엔드포인트에서 복사한 값을 붙여넣음)과 [API 토큰(AWS Single Sign-On 콘솔의 액세스 토큰에서 복사한 값을 붙여넣음) 값을 복사하고 붙여넣습니다.

Okta API 통합[API 자격 증명 테스트]를 클릭하여 모든 기능이 예상대로 작동하는지 확인합니다. [앱으로]를 클릭하여 사용자 생성, 업데이트 및 비활성화를 활성화합니다.

Okta 앱으로 프로비저닝

프로비저닝을 활성화한 후 마지막 작업은 Okta에서 AWS Single Sign-On으로 동기화하려는 사용자 및 그룹을 할당하는 것입니다. [할당] 탭을 클릭하고 Okta 사용자 및 그룹을 추가합니다. [할당]을 클릭하고 AWS에 대한 액세스 권한을 제공할 Okta 사용자 및 그룹을 선택합니다.

OKTA 할당이러한 사용자는 AWS Single Sign-On으로 동기화되며 이제 사용자의 Okta 포털에 AWS Single Sign-On 애플리케이션이 표시됩니다.

Okta 포털 사용자 보기사용자 동기화가 작동하는지 확인하기 위해 AWS Single Sign-On 콘솔로 전환하고 [사용자] 탭을 선택합니다. Okta 콘솔에서 할당한 사용자가 표시됩니다.

AWS SSO 사용자 보기

Single Sign-On을 구성한 후 수행할 작업
이제 Okta를 단일의 신뢰할 수 있는 소스로 사용하여 사용자 자격 증명을 관리하고 그룹으로 할당할 수 있습니다. 주기적인 동기화 기간에 해당하는 자격 증명이 AWS Single Sign-On에 자동으로 생성됩니다. 사용자는 Okta 자격 증명 및 환경을 사용하여 AWS 계정 및 애플리케이션에 로그인할 수 있으므로 추가 사용자 이름 또는 암호를 기억하지 않아도 됩니다. 그러나 현재 사용자에게는 로그인에 액세스할 수 있는 권한만 있습니다. AWS에 로그인한 후 액세스 가능한 항목의 측면에서 권한을 관리하려면 AWS Single Sign-On에서 권한을 설정해야 합니다.

AWS SSO 콘솔로 돌아가서 왼쪽 탭 표시줄의 [AWS 계정]을 클릭하고 [AWS Organizations]에서 액세스 권한을 제공할 계정을 선택합니다. 여러 애플리케이션 또는 환경에서 여러 계정을 사용하는 엔터프라이즈의 경우 이 기능을 사용하여 AWS 계정의 하위 집합에 대한 액세스 권한을 세분화하여 부여할 수 있습니다.

AWS SSO AWS 계정 선택[사용자 할당]을 클릭하여 SSO 사용자 또는 그룹을 IAM 권한 세트에 할당합니다. 이 예에서는 이메일 주소가 @example.com인 사용자 한 명만 할당합니다.

SSO 사용자 할당[다음: 권한 세트]를 클릭하고 [새 권한 세트 생성]을 클릭하여 이러한 Okta 사용자에게 부여할 권한 세트를 설명하는 IAM 정책 세트를 생성합니다. 이 예의 경우 모든 AWS 서비스에 대한 읽기 전용 권한을 부여합니다.SSO 권한 세트간단합니다. 이제 이 설정을 테스트할 수 있습니다.

콘솔의 SSO 사용자 경험
지금까지 시스템 관리자 측면에서 통합을 구성하는 단계를 살펴보았으니 이제 사용자 경험에 대해 알아봅시다.

AWS 계정 사용자는 Okta에서 로그인하고 AWS Management Console에 액세스할 수 있습니다. AWS Single Sign-On 사용자 포털(AWS Single Sign-On 설정 페이지의 URL 사용) 또는 Okta 사용자 포털 페이지에서 시작하고 AWS SSO 앱을 선택할 수 있습니다.

AWS SSO 사용자 포털에서 시작하도록 선택합니다. Okta 로그인 페이지로 리디렉션됩니다. Okta 자격 증명을 입력하면 AWS 계정 및 역할 선택 페이지로 이동합니다. [AWS 계정]을 클릭하고 로그인하려는 계정을 선택한 다음 [Management Console]을 클릭합니다. 몇 번의 추가 리디렉션 후 AWS 콘솔 페이지가 표시됩니다.

SSO 사용자 경험

CLI의 SSO 사용자 경험
시스템 관리자, DevOps 엔지니어, 개발자 및 자동화 스크립트는 AWS 콘솔을 사용하지 않습니다. 대신, AWS Command Line Interface(CLI)를 사용합니다. 명령줄에 대해 SSO를 구성하려면 터미널을 열고 aws configure sso를 입력합니다. AWS SSO 사용자 포털 URL과 리전을 입력합니다.

$aws configure sso
SSO start URL [None]: https://d-0123456789.awsapps.com/start
SSO Region [None]: eu-west-1
기본 브라우저에서 SSO 인증 페이지가 자동으로 열립니다.
브라우저가 자동으로 열리지 않거나 다른 디바이스를 사용하여 이 요청을 승인하려는 경우 다음 URL을 엽니다.

https://device.sso.eu-west-1.amazonaws.com/

다음 코드를 입력합니다.

AAAA-BBBB

이 단계에서 기본 브라우저가 팝업으로 표시되면 Okta 로그인 페이지에 Okta 자격 증명을 입력합니다. CLI에 대해 SSO를 활성화할 것임을 확인합니다.

CLI에 대한 SSO다음 메시지가 표시되면 브라우저를 닫습니다.

AWS SSO CLI 브라우저 메시지 닫기

CLI에서 자동으로 구성이 다시 시작되면 기본 리전, 기본 출력 형식 및 사용하려는 CLI 프로필의 이름을 입력합니다.

The only AWS account available to you is: 012345678901
Using the account ID 012345678901
The only role available to you is: ViewOnlyAccess
Using the role name "ViewOnlyAccess"
CLI default client Region [eu-west-1]:
CLI default output format [None]:
CLI profile name [okta]:

To use this profile, specify the profile name using --profile, as shown:

aws s3 ls --profile okta

이제 SSO로 CLI를 사용할 수 있습니다. 터미널에 다음을 입력합니다.

aws --profile okta s3 ls
2020-05-04 23:14:49 do-not-delete-gatedgarden-audit-012345678901
2015-09-24 16:46:30 elasticbeanstalk-eu-west-1-012345678901
2015-06-11 08:23:17 elasticbeanstalk-us-west-2-012345678901

CLI SSO를 구성할 머신에 그래픽 사용자 인터페이스가 없는 경우 비입력 시스템 모드에서 CLI가 제공하는 URL 및 코드(위의 예에서 https://device.sso.eu-west-1.amazonaws.com/AAAA-BBBB)를 사용하여 SSO를 구성할 수 있습니다.

이 게시물에서는 새로운 AWS Single Sign-On 기능을 활용하여 사용자 SSO(Single Sign-On)를 위해 Okta 자격 증명을 AWS 계정에 연결하는 방법을 살펴보았습니다. 또한 자동 프로비저닝 지원을 사용하여 자격 증명을 관리하고 사용할 때의 복잡성을 줄이는 방법도 확인했습니다. 이제 관리자는 단일의 신뢰할 수 있는 소스를 사용하여 사용자를 관리할 수 있고, 사용자는 추가 자격 증명과 암호를 관리할 필요 없이 AWS 계정과 애플리케이션에 로그인할 수 있습니다.

AWS Single Sign-On with Okta는 무료로 사용할 수 있으며 AWS Single Sign-On이 제공되는 모든 리전에서 제공됩니다. 여기에서 전체 목록을 확인하십시오.

모든 작동 방식을 실제로 보려면 다음 데모 동영상에서 자세한 시작 방법을 확인하십시오.

— seb