기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 SAML 페더레이션 활성화 AWS Identity and Access Management
OpenSearch UI는 많은 자격 증명 공급자가 사용하는 개방형 표준인 Security Assertion Markup Language 2.0(SAML)을 지원합니다. 이렇게 하면 AWS Identity and Access Management (IAM)와의 ID 페더레이션이 활성화됩니다. 이 지원을 통해 계정 또는 조직의 사용자는 IAM 역할을 수임하여 OpenSearch UI에 직접 액세스할 수 있습니다. 최종 사용자를 위한 ID 제공업체 시작(IdP) Single Sign-On 환경을 생성하여 외부 ID 제공업체에서 인증하고 OpenSearch UI의 정의된 페이지로 직접 라우팅할 수 있습니다. OpenSearch UI 및 관련 데이터 소스에 액세스할 수 있는 권한이 서로 다른 다양한 IAM 역할을 수임하도록 최종 사용자 또는 그룹을 구성하여 세분화된 액세스 제어를 구현할 수도 있습니다.
이 주제에서는 OpenSearch UI에서 SAML 사용을 구성하기 위한 step-by-step 지침을 제공합니다. 이 절차에서는 Okta 자격 증명 및 액세스 관리 애플리케이션을 구성하는 단계를 예로 사용합니다. Azure Active Directory 및 Ping과 같은 다른 자격 증명 공급자의 구성 단계는 비슷합니다.
주제
1단계: 자격 증명 공급자 애플리케이션 설정(Okta)
OpenSearch UI에서 SAML을 사용하려면 첫 번째 단계는 자격 증명 공급자를 설정하는 것입니다.
작업 1: Okta 사용자 생성
-
관리 권한이 있는 사용자로 https://login.okta.com/
Okta 조직에 로그인합니다. -
관리자 콘솔의 탐색 창의 디렉터리에서 사람을 선택합니다.
-
사람 추가(Add Person)를 선택합니다.
-
이름에 사용자의 이름을 입력합니다.
-
성에 사용자의 성을 입력합니다.
-
사용자 이름에 이메일 형식으로 사용자의 사용자 이름을 입력합니다.
-
암호를 설정하겠습니다를 선택하고 암호를 입력합니다를 선택합니다.
-
(선택 사항) 사용자가 처음 로그인할 때 암호를 변경하지 않도록 하려면 사용자가 처음 로그인할 때 암호를 변경해야 합니다 상자의 선택을 취소합니다.
-
저장을 선택합니다.
작업 2: 그룹 생성 및 할당
-
관리 권한이 있는 사용자로 https://login.okta.com/
Okta 조직에 로그인합니다. -
관리자 콘솔의 탐색 창의 디렉터리에서 그룹을 선택합니다.
-
그룹 추가를 선택합니다.
-
그룹 이름을 입력하고 저장을 선택합니다.
-
새로 생성된 그룹을 선택한 다음 사용자 할당을 선택합니다.
-
더하기 기호(+)를 선택한 다음 완료를 선택합니다.
-
(선택 사항) 1~6단계를 반복하여 그룹을 더 추가합니다.
작업 3: Okta 애플리케이션 생성
-
관리 권한이 있는 사용자로 https://login.okta.com/
Okta 조직에 로그인합니다. -
관리자 콘솔의 탐색 창의 애플리케이션에서 애플리케이션을 선택합니다.
-
앱 통합 생성(Create App Integration)을 선택합니다.
-
로그인 방법으로 SAML 2.0을 선택한 후 다음을 선택합니다.
-
앱 통합의 이름(예:
OpenSearch_UI
)을 입력한 후 다음을 선택합니다. -
앱에 다음 값을 입력합니다. 다른 값은 변경할 필요가 없습니다.
-
1. Single Sign On URL에 상용 AWS 리전
https://signin.aws.amazon.com/saml
또는 해당 리전에 해당하는 URL을 입력합니다. -
2. 대상 URI(SP 개체 ID)에를 입력합니다
urn:amazon:webservices
. -
3. 이름 ID 형식에를 입력합니다
EmailAddress
.
-
-
다음을 선택합니다.
-
내부 앱을 추가하는 Okta 고객임을 선택한 다음 생성한 내부 앱입니다를 선택합니다.
-
마침을 클릭합니다.
-
할당을 선택한 다음 할당을 선택합니다.
-
그룹에 할당을 선택한 다음 추가하려는 그룹 옆에 있는 할당을 선택합니다.
-
완료를 선택합니다.
작업 4: Okta 고급 구성 설정
사용자 지정 SAML 애플리케이션을 생성한 후 다음 단계를 완료합니다.
-
관리 권한이 있는 사용자로 https://login.okta.com/
Okta 조직에 로그인합니다. 관리자 콘솔의 일반 영역에서 SAML 설정에서 편집을 선택합니다.
-
다음을 선택합니다.
-
형식을 사용하여 기본 릴레이 상태를 OpenSearch UI 엔드포인트로 설정합니다.
https://
.region
.console.aws.amazon.com/aos/home?region=region
#opensearch/applications/application-id
/redirectToDashboardURL다음은 예제입니다.
https://us-east-2.console.aws.amazon.com/aos/home?region=us-east-2#opensearch/applications/abc123def4567EXAMPLE/redirectToDashboardURL
-
속성 문(선택 사항)에서 다음 속성을 추가합니다.
-
역할 속성을 사용하여 IAM 역할 및 자격 증명 공급자를 쉼표로 구분된 형식으로 제공합니다. AWS 구성을 설정할 때 이후 단계에서 동일한 IAM 역할 및 자격 증명 공급자를 사용합니다.
-
RoleSessionName에 대한 user.login을 설정합니다. 이는 역할을 수임할 때 발급되는 임시 자격 증명의 식별자로 사용됩니다.
참조용:
명칭 이름 형식 형식 예시 https://aws.amazon.com/SAML/Attributes/Role
지정되지 않음
arn:aws:iam::
aws-account-id
:role/role-name,arn:aws:iam::aws-account-id
:saml-provider/provider-name
arn:aws:iam::111222333444:role/oktarole,arn:aws:iam::111222333444:saml-provider/oktaidp
https://aws.amazon.com/SAML/Attributes/RoleSessionName
지정되지 않음
user.login
user.login
-
-
속성 속성을 추가한 후 다음을 선택한 후 완료를 선택합니다.
속성은 다음 이미지에 표시된 것과 형식이 비슷해야 합니다. 기본 릴레이 상태 값은 Okta에서 Single Sign-On 검증을 완료한 후 계정 또는 조직의 최종 사용자에 대한 랜딩 페이지를 정의하는 URL입니다. OpenSearch UI의 모든 페이지로 설정한 다음 해당 URL을 의도한 최종 사용자에게 제공할 수 있습니다.

2단계: Okta에 대한 AWS 구성 설정
다음 작업을 완료하여 Okta에 대한 AWS 구성을 설정합니다.
작업 1: Okta 정보 수집
이 단계에서는 나중에 구성할 수 있도록 Okta 정보를 수집해야 합니다 AWS.
-
관리 권한이 있는 사용자로 https://login.okta.com/
Okta 조직에 로그인합니다. -
로그인 탭의 페이지 오른쪽 하단에서 SAML 설정 지침 보기를 선택합니다.
-
자격 증명 공급자 Single Sign-On URL의 값을 기록해 둡니다. SQL Workbench/J와 같은 타사 SQL 클라이언트에 연결할 때이 URL을 사용할 수 있습니다
. -
블록 4에서 자격 증명 공급자 메타데이터를 사용한 다음 메타데이터 파일을 .xml 형식(예:
metadata.xml
)으로 저장합니다.
작업 2: IAM 공급자 생성
IAM 공급자를 생성하려면 다음 단계를 완료합니다.
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/iam/
IAM 콘솔을 엽니다. -
탐색 창의 액세스 관리에서 자격 증명 공급자를 선택합니다.
-
공급자 추가를 선택합니다.
-
공급자 유형에서 SAML을 선택합니다.
-
공급자 이름에 이름을 입력합니다.
-
메타데이터 문서에서 파일 선택을 선택하고 이전에 다운로드한 메타데이터 파일(.xml)을 업로드합니다.
-
공급자 추가를 선택합니다.
작업 3: IAM 역할 생성
AWS Identity and Access Management 역할을 생성하려면 다음 단계를 완료합니다.
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/iam/
IAM 콘솔을 엽니다. -
탐색 창의 액세스 관리에서 역할을 선택합니다.
-
역할 생성을 선택합니다.
-
신뢰할 수 있는 엔터티 유형에서 SAML 2.0 페더레이션을 선택합니다.
-
SAML 2.0 기반 공급자에서 이전에 생성한 자격 증명 공급자를 선택합니다.
-
프로그래밍 방식 및 AWS Management Console 액세스 허용을 선택합니다.
-
다음을 선택합니다.
-
권한 정책 목록에서 이전에 생성한 정책의 확인란과 OpenSearchFullAccess의 확인란을 선택합니다.
-
다음을 선택합니다.
-
검토 영역의 역할 이름에 역할 이름을 입력합니다. 예:
oktarole
. -
(선택 사항) 설명에 역할의 용도에 대한 간략한 설명을 입력합니다.
-
역할 생성을 선택합니다.
-
방금 생성한 역할로 이동하여 신뢰 관계 탭을 선택한 다음 신뢰 정책 편집을 선택합니다.
-
문 편집 창의 STS에 대한 작업 추가에서 TagSession에 대한 상자를 선택합니다.
-
정책 업데이트를 선택합니다.
3단계: IAM에서 Amazon OpenSearch Service 액세스 정책 생성
OpenSearch 액세스 제어를 위해 IAM 역할을 구성하는 방법을 알아봅니다. IAM 역할을 사용하면 Okta 사용자 그룹이 OpenSearch 리소스에 액세스할 수 있도록 세분화된 액세스 제어를 구현할 수 있습니다. 이 주제에서는 두 개의 예제 그룹을 사용하는 IAM 역할 기반 구성을 보여줍니다.
다음 예제와 같이 백엔드 역할 매핑을 사용하여 Amazon OpenSearch Service 도메인 역할을 IAM 역할에 매핑할 수 있습니다.
{ "bob-group": { "hosts": [], "users": [], "reserved": false, "hidden": false, "backend_roles": [ "arn:aws:iam::111222333444:role/bob-group" ], "and_backend_roles": [] }, "alice-group": { "hosts": [], "users": [], "reserved": false, "hidden": false, "backend_roles": [ "arn:aws:iam::111222333444:role/alice-group" ], "and_backend_roles": [] } }
4단계: SAML을 사용하여 자격 증명 공급자가 시작한 Single Sign-On 환경 확인
기본 릴레이 상태의 URL을 열어 Okta 인증 페이지를 엽니다. 최종 사용자의 자격 증명을 입력합니다. 자동으로 OpenSearch UI로 리디렉션됩니다.
다음 이미지와 같이 탐색 패널 하단의 사용자 아이콘을 선택하여 현재 자격 증명을 확인할 수 있습니다.

탐색 패널 하단의 개발자 도구에 액세스하고 콘솔에서 쿼리를 실행하여 사용자의 세분화된 액세스 제어 권한을 확인할 수도 있습니다. 다음은 샘플 쿼리입니다.
5단계: SAML 속성 기반 세분화된 액세스 제어 구성
Amazon OpenSearch Service를 사용하면 SAML과 함께 세분화된 액세스 제어를 사용하여 ID 제공업체의 사용자 및 그룹을 OpenSearch 세분화된 액세스 제어 사용자 및 역할에 동적으로 매핑할 수 있습니다. 이러한 역할의 범위를 특정 OpenSearch 도메인 및 서버리스 컬렉션으로 지정하고 인덱스 수준 권한 및 문서 수준 보안을 정의할 수 있습니다.
참고
세분화된 액세스 제어에 대한 자세한 내용은 섹션을 참조하세요Amazon OpenSearch Service에서 세분화된 액세스 제어.
주제
세분화된 액세스 제어를 위한 SAML 속성
- subjectKey
-
인증할 사용자를 식별하는 이메일 또는 사용자 이름과 같은 고유한 사용자 속성에 매핑됩니다.
- rolesKey
-
권한 부여를 위한 역할 또는 권한을 결정하는 IdP의 그룹 또는 역할 속성에 매핑됩니다.
작업 1: 세분화된 액세스 제어를 위한 Okta 구성
세분화된 액세스 제어를 위해 Okta를 구성하려면
-
속성 문 섹션에서 OpenSearch 사용자 보안 주체에 대한 새 속성을 추가합니다.
-
이름:
UserName
-
값:
${user-email}
이 속성은 인증을 위한 OpenSearch 세분화된 액세스 제어 구성에서 주체 키로 사용됩니다.
-
-
그룹 속성 문 섹션에서 역할에 대한 그룹 속성을 추가합니다.
-
이름:
groups
-
필터:
OpenSearch_xxx
이 속성은 권한 부여를 위해 그룹을 OpenSearch 세분화된 액세스 제어 역할에 매핑하기 위한 역할 키로 사용됩니다.
-
작업 2: OpenSearch 도메인에서 SAML 구성
OpenSearch 도메인에서 SAML을 구성하려면
-
AWS 관리 콘솔에서 OpenSearch UI 사용자에 대해 세분화된 액세스 제어를 활성화하려는 OpenSearch Service 도메인을 식별합니다.
-
특정 도메인의 세부 정보 페이지로 이동합니다.
-
보안 구성 탭을 선택하고 편집을 클릭합니다.
-
IAM Federate를 통해 SAML을 확장합니다.
-
Okta에서 정의
roleKey
한subjectKey
및를 입력합니다. -
변경 사항 저장을 선택합니다.
를 사용하여 세분화된 액세스 제어를 구성할 수도 있습니다 AWS CLI.
aws opensearch create-domain \ --domain-name testDomain \ --engine-version OpenSearch_1.3 \ --cluster-config InstanceType=r5.xlarge.search,InstanceCount=1,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=false,WarmEnabled=false \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:*","Resource":"arn:aws:es:us-east-1:12345678901:domain/neosaml10/*"}]}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \ --ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \ --no-verify-ssl \ --endpoint-url https://es.us-east-1.amazonaws.com \ --region us-east-1
기존 도메인을 업데이트하려면:
aws opensearch update-domain-config \ --domain-name testDomain \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \ --ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \ --no-verify-ssl \ --endpoint-url https://es.us-east-1.amazonaws.com \ --region us-east-1
작업 3: OpenSearch Serverless 컬렉션에서 SAML 구성
OpenSearch Serverless에서 SAML 기반 세분화된 액세스 제어를 구성하려면
-
를 열고 Amazon OpenSearch Service로 AWS Management Console 이동합니다.
-
탐색 창의 서버리스에서 보안을 선택한 다음 인증을 선택합니다.
-
IAM 연동 섹션에서 편집을 선택합니다.
이 구성을 사용하여 SAML 속성 기반 세분화된 액세스 제어를 제어할 수 있습니다. IAM 연동은 기본적으로 비활성화되어 있습니다.
-
IAM 연동 활성화를 선택합니다.
-
Okta에서 정의한
subjectKey
및roleKey
값을 입력합니다.자세한 내용은 세분화된 액세스 제어를 위한 SAML 속성 단원을 참조하십시오.
-
저장을 선택합니다.
-
탐색 창의 서버리스에서 데이터 액세스 정책을 선택합니다.
-
기존 정책을 업데이트하거나 새 정책을 생성합니다.
-
규칙을 확장하고 보안 주체 추가를 선택한 다음 IAM 페더레이션 사용자 및 그룹을 선택합니다.
-
필요한 보안 주체를 추가하고 저장을 선택합니다.
-
권한 부여를 선택합니다.
-
이 규칙에서 다음을 수행합니다.
-
선택한 보안 주체에 대해 정의할 권한을 선택합니다.
-
권한을 적용할 컬렉션을 지정합니다.
-
선택적으로 인덱스 수준 권한을 정의합니다.
참고
여러 규칙을 생성하여 여러 보안 주체 그룹에 서로 다른 권한을 할당할 수 있습니다.
-
-
완료하였으면 저장을 선택합니다.
-
생성(Create)을 선택합니다.
또는 CLI를 사용하여 아래와 같이 컬렉션에 대한 보안 구성을 생성할 수 있습니다.
aws opensearchserverless create-security-config --region "
region
" --type iamfederation --name "configuration_name
" --description "description
" --iam-federation-options '{"groupAttribute":"GroupKey","userAttribute":"UserKey"}'