AWS에서는 클라우드 보안이 최우선 사항입니다. 아마존 세이지 메이커 스튜디오 이벤트 다양한 메커니즘 다음과 같은 AWS 보안 서비스와의 통합을 사용하여 데이터와 코드를 보호합니다. AWS 자격 증명 및 액세스 관리 (그래요), AWS 키 관리 서비스 (AWS KMS) 또는 네트워크 격리 아마존 가상 프라이빗 클라우드 (아마존 VPC).
금융 서비스와 같이 규제가 엄격한 산업 분야의 고객은 다음을 수행할 수 있습니다. VPC에서만 Studio 설정 네트워크 격리를 활성화하고 Studio 노트북에서 인터넷 액세스를 비활성화하는 모드입니다. Studio와의 IAM 통합을 사용하여 Studio 노트북, Studio IDE와 같은 리소스에 액세스할 수 있는 사용자를 제어할 수 있습니다. 아마존 세이지 메이커 훈련 작업.
널리 사용되는 사용 사례는 다음과 같습니다. Studio IDE에 대한 액세스 제한 지정된 네트워크 CIDR 범위 또는 지정된 VPC 내부의 사용자에게만 적용됩니다. 구현하면 이를 달성할 수 있습니다. IAM 자격 증명 기반 SageMaker 정책 해당 권한이 필요한 IAM 사용자 또는 그룹에 해당 정책을 연결합니다. 그러나 SageMaker 도메인은 다음과 같이 구성되어야 합니다. IAM 인증 모드, IAM 자격 증명 기반 정책은 다음에서 지원되지 않기 때문입니다. AWS 싱글 사인온 (SSO) 인증 모드.
많은 고객이 AWS SSO를 사용하여 중앙 집중식 직원 ID 제어를 활성화하고 일관된 사용자 로그인 경험을 제공합니다. 이 게시물에서는 Studio에 액세스하기 위한 AWS SSO 기능을 유지하면서 이 사용 사례를 구현하는 방법을 보여줍니다.
솔루션 개요
VPC 전용 모드에서 SageMaker 도메인을 설정하고 서브넷과 보안 그룹을 지정하면 SageMaker는 다음을 생성합니다. 탄력적 네트워크 인터페이스 (ENI)는 지정된 서브넷의 보안 그룹과 연결되어 있습니다. ENI를 사용하면 교육 컨테이너를 VPC의 리소스에 연결할 수 있습니다.
이 모드에서는 노트북에서의 직접 인터넷 액세스가 완전히 비활성화되고 모든 트래픽이 프라이빗 VPC의 ENI를 통해 라우팅됩니다. 여기에는 실험 관리, 자동 조종 장치, 모델 모니터 등 Studio UI 위젯 및 인터페이스에서 해당 백엔드 SageMaker API로의 트래픽도 포함됩니다. AWS에서는 Studio의 네트워크 액세스를 세밀하게 제어하기 위해 VPC 전용 모드를 사용할 것을 권장합니다.
첫 번째 문제는 Studio가 인터넷 연결 없이 배포되더라도 Studio IDE는 어디에서나 액세스할 수 있다는 것입니다. AWS 관리 콘솔 Studio는 IAM 주체에게 부여됩니다. Studio를 공용 네트워크에서 완전히 격리하고 엄격하게 제어되는 개인 VPC 내에 모든 통신을 포함하려는 경우 이러한 상황은 허용되지 않습니다.
이 문제를 해결하고 지정된 VPC 또는 CIDR 범위를 제외하고 Studio IDE에 대한 모든 액세스를 비활성화하려면 다음을 사용할 수 있습니다. CreatePresignedDomainUrl SageMaker API. 이 API를 호출하는 데 사용되는 IAM 역할 또는 사용자는 Studio에 액세스할 수 있는 권한을 정의합니다. 이제 IAM 자격 증명 기반 정책을 사용하여 원하는 액세스 구성을 구현할 수 있습니다. 예를 들어 지정된 VPC에서만 액세스를 활성화하려면 미리 서명된 도메인 URL을 생성하는 데 사용되는 IAM 주체와 연결된 IAM 정책에 다음 조건을 추가합니다.
지정된 VPC 엔드포인트에서만 액세스를 활성화하려면 다음 조건을 지정합니다.
지정된 CIDR 범위에서 액세스를 제한하려면 다음 조건을 사용하십시오.
두 번째 문제는 IAM 기반 액세스 제어가 SageMaker 도메인이 IAM 인증 모드로 구성된 경우에만 작동한다는 것입니다. SageMaker 도메인이 AWS SSO 모드로 배포된 경우에는 사용할 수 없습니다. 다음 섹션에서는 이러한 문제를 해결하고 Studio에 대한 AWS SSO 액세스를 통해 IAM 기반 액세스 제어를 구현하는 방법을 보여줍니다.
아키텍처 개요
Studio는 특정 SageMaker Studio 사용자 프로필에 할당되는 SAML 애플리케이션으로 게시됩니다. 사용자는 다음 스크린샷과 같이 AWS SSO 포털에서 직접 Studio에 편리하게 액세스할 수 있습니다.
솔루션은 다음과 통합됩니다. 맞춤형 SAML 2.0 애플리케이션 Studio에 대한 사용자 인증을 트리거하는 메커니즘으로 사용됩니다. 이를 위해서는 사용자 정의 SAML 애플리케이션이 다음과 같이 구성되어야 합니다. 아마존 API 게이트웨이 ACS(Assertion Consumer Service)로 사용되는 엔드포인트 URL이며 AWS SSO 사용자 ID와 SageMaker 도메인 ID가 포함된 매핑 속성이 필요합니다.
API 게이트웨이 엔드포인트는 AWS 람다 SAML 응답을 구문 분석하여 도메인 ID와 사용자 ID를 추출하고 이를 사용하여 Studio의 미리 서명된 URL을 생성하는 함수입니다. Lambda 함수는 최종적으로 HTTP 302 응답을 통해 리디렉션을 수행하여 Studio에서 사용자를 로그인합니다.
IAM 정책은 Studio 사용자가 로그인할 수 있는 네트워크 환경을 제어하며, 여기에는 이전 섹션에서 설명한 제한 조건이 포함됩니다. 이 IAM 정책은 Lambda 함수에 연결됩니다. IAM 정책에는 다음을 호출할 수 있는 권한이 포함되어 있습니다. sagemaker:CreatePresignedDomainURL
특정 사용자 프로필 전용 API:
다음 다이어그램은 솔루션 아키텍처를 보여줍니다.
이 솔루션은 SageMaker 도메인을 프라이빗 VPC에 배포하고 VPC 엔드 포인트 인터넷 게이트웨이 없이도 개인 연결을 통해 Studio, SageMaker 런타임 및 SageMaker API에 액세스할 수 있습니다. VPC 엔드포인트는 프라이빗 DNS가 활성화된 상태로 구성됩니다(PrivateDnsEnabled=True
) 연결하려면 프라이빗 호스팅 영역 귀하의 VPC와 함께. 이를 통해 Studio는 기본 퍼블릭 DNS 이름을 사용하여 SageMaker API에 액세스할 수 있습니다. api.sagemaker.<Region>.amazonaws.com
VPC 엔드포인트 URL을 사용하는 대신 엔드포인트의 프라이빗 IP 주소로 확인됩니다.
다음과 같은 다른 AWS 서비스에 액세스하려면 VPC에 VPC 엔드포인트를 추가해야 합니다. 아마존 단순 스토리지 서비스 (아마존 S3), Amazon Elastic Container Registry (아마존 ECR), AWS 보안 토큰 서비스 (AWS STS), AWS 클라우드 포메이션및 AWS 코드 커밋.
Lambda 함수 실행 역할에 연결된 IAM 정책을 사용하여 미리 서명된 URL 및 기타 API 호출을 생성하는 데 사용되는 권한을 완전히 제어하거나 다음을 통해 사용된 AWS 서비스에 대한 액세스를 제어할 수 있습니다. VPC 엔드 포인트 정책. IAM 정책을 사용하여 Studio 및 SageMaker API에 대한 액세스를 제어하는 예는 다음을 참조하세요. 자격 증명 기반 정책을 사용하여 SageMaker API에 대한 액세스 제어.
솔루션을 사용하려면 Studio 도메인을 IAM 모드로 배포해야 하지만 최종 사용자가 Studio에 로그인하기 위한 메커니즘으로 AWS SSO를 사용할 수 있습니다.
다음 하위 섹션에는 주요 솔루션 구성 요소에 대한 자세한 설명이 포함되어 있습니다.
API 게이트웨이
API 게이트웨이 엔드포인트는 사용자 정의 SAML 2.0 애플리케이션에 구성된 애플리케이션 ACS URL의 대상 역할을 합니다. 엔드포인트는 비공개이며 다음과 같은 리소스가 있습니다. /saml
통합 요청이 Lambda 프록시로 구성된 POST 메서드. 솔루션은 구성된 VPC 엔드포인트를 사용합니다. com.amazonaws.<region>.execute-api
VPC 내에서 이 API 엔드포인트를 호출하기 위한 DNS 이름입니다.
AWS SSO
사용자 정의 SAML 2.0 애플리케이션은 API 게이트웨이 엔드포인트 URL로 구성됩니다. https:/{ restapi-id}.execute-api.amazonaws.com/saml
애플리케이션 ACS URL로 사용되며 다음 요구 사항에 따라 속성 매핑을 사용합니다.
- 사용자 식별자:
- 애플리케이션의 사용자 속성 - 사용자 이름
- AWS SSO의 사용자 속성 매핑 -
${user:AD_GUID}
- SageMaker 도메인 ID 식별자:
- 애플리케이션의 사용자 속성 -
domain-id
- AWS SSO의 사용자 속성 매핑 – Studio 인스턴스의 도메인 ID
- 애플리케이션의 사용자 속성 -
애플리케이션은 AWS SSO 사용자 ID와 동일한 이름의 Studio 사용자 프로필을 프로비저닝하여 AWS SSO 사용자에 대한 액세스 제어를 구현합니다.
람다 함수
솔루션은 Lambda 함수를 API 게이트웨이의 호출 지점으로 구성합니다. /saml
자원. 이 함수는 SAMLResponse
AWS SSO에서 전송한 내용을 추출합니다. domain-id
사용자 이름뿐 아니라 createPresignedDomainUrl
Studio URL과 토큰을 검색하고 HTTP 302 응답을 사용하여 로그인하도록 사용자를 리디렉션하는 SageMaker API입니다. Lambda 함수에는 실행 역할에 연결된 특정 IAM 정책이 있습니다. sagemaker:createPresignedDomainUrl
특정 네트워크 CIDR 범위에서 요청된 경우에만 작업을 수행합니다. VpcSourceIp
상태.
Lambda 함수에는 서명 확인 등 SAML 응답을 검증하는 로직이 없습니다. 그러나 ACS 역할을 하는 API 게이트웨이 엔드포인트는 프라이빗이거나 내부 전용이므로 이 개념 증명 환경에서는 필수가 아닙니다.
솔루션 배포
XNUMXD덴탈의 GitHub 저장소 엔드투엔드 솔루션의 전체 소스 코드를 제공합니다.
솔루션을 배포하려면 AWS 계정에 대한 관리자(또는 고급 사용자) 권한이 있어야 하며 AWS 명령 줄 인터페이스 (AWS CLI) 및 AWS SAM CLI 그리고 최소 파이썬 3.8.
이 솔루션은 세 가지 AWS 지역에 대한 배포를 지원합니다. eu-west-1
, eu-central-1
및 us-east-1
. 배포를 위해 이러한 지역 중 하나를 선택해야 합니다.
솔루션 테스트를 시작하려면 솔루션의 다음 배포 단계를 완료해야 합니다. GitHub README 파일:
- AWS SSO를 구성하지 않은 경우 설정합니다.
- SAM 애플리케이션을 사용하여 솔루션을 배포합니다.
- 새로운 사용자 정의 SAML 2.0 애플리케이션을 만듭니다.
배포 단계를 완료한 후 솔루션 테스트를 진행할 수 있습니다.
솔루션 테스트
이 솔루션은 AWS SSO 및 SageMaker 자격 증명 기반 정책의 사용법을 보여주기 위해 두 가지 사용 사례를 시뮬레이션합니다.
- 긍정적인 사용 사례 – 사용자는 VPC 엔드포인트를 통해 지정된 CIDR 범위 내에서 Studio에 액세스합니다.
- 부정적인 사용 사례 – 사용자는 공용 IP 주소에서 Studio에 액세스합니다.
이러한 사용 사례를 테스트하기 위해 솔루션은 세 가지를 만들었습니다. 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 인스턴스:
- 개인 호스트 – Studio(온프레미스 보안 환경)에 액세스할 수 있는 프라이빗 서브넷의 EC2 Windows 인스턴스
- 요새 호스트 – 프라이빗 네트워크의 프라이빗 호스트에 SSH 터널을 설정하는 데 사용되는 퍼블릭 서브넷의 EC2 Linux 인스턴스
- 공개 호스트 – 사용자가 승인되지 않은 IP 주소에서 Studio에 액세스할 수 없음을 보여주기 위한 퍼블릭 서브넷의 EC2 Windows 인스턴스
승인된 네트워크에서 Test Studio 액세스
테스트를 수행하려면 다음 단계를 따르세요.
- 프라이빗 네트워크의 EC2 Windows 인스턴스에 액세스하려면 SAM 출력 키 값으로 제공된 명령을 실행하세요.
TunnelCommand
. 매개변수에 지정된 키 쌍의 개인 키가 SSH 터널 명령이 실행되는 디렉터리에 있는지 확인하세요. 이 명령은 SSH 터널 로컬 컴퓨터에서localhost:3389
프라이빗 네트워크의 EC2 Windows 인스턴스에. 다음 예제 코드를 참조하세요. - 로컬 데스크톱 또는 노트북에서 다음을 사용하여 새 RDP 연결(예: Microsoft 원격 데스크톱 사용)을 엽니다.
localhost
대상 원격 호스트로. 이 연결은 배스천 호스트를 통해 프라이빗 EC2 Windows 인스턴스로 터널링됩니다. 사용자 이름을 사용하세요Administrator
및 스택 출력의 비밀번호SageMakerWindowsPassword
. - 원격 데스크톱에서 Firefox 웹 브라우저를 엽니다.
- 지정된 사용자 이름과 연결된 자격 증명을 사용하여 AWS SSO 포털을 탐색하고 로그인합니다.
ssoUserName
매개 변수입니다. - 선택 SageMaker 보안 데모 AWS SSO 포털의 AWS SSO 애플리케이션.
새 브라우저 창에서 Studio IDE로 리디렉션됩니다.
승인되지 않은 네트워크에서 Test Studio에 액세스
이제 다음 단계에 따라 승인되지 않은 네트워크로부터의 액세스를 시뮬레이션하십시오.
- 제공된 IP에서 새 RDP 연결을 엽니다.
SageMakerWindowsPublicHost
SAML 출력. - 원격 데스크톱에서 Firefox 웹 브라우저를 엽니다.
- 다음으로 지정된 사용자 이름과 연결된 자격 증명을 사용하여 AWS SSO 포털로 이동하고 로그인합니다.
ssoUserName
매개 변수입니다. - 선택 SageMaker 보안 데모 AWS SSO 포털의 AWS SSO 애플리케이션.
이번에는 무단 액세스 메시지를 받게 됩니다.
정리
요금이 청구되지 않도록 하려면 AWS 계정에서 솔루션이 프로비저닝하고 수동으로 생성한 리소스를 모두 제거해야 합니다. 솔루션의 지침을 따르십시오. 읽어보기 파일.
결론
우리는 최종 사용자와 Studio 사이에 미들웨어 인증 계층을 도입함으로써 사용자가 Studio에 액세스할 수 있는 환경을 제어하고 다른 모든 승인되지 않은 환경을 명시적으로 차단할 수 있음을 입증했습니다.
보안을 더욱 강화하려면 사용자 역할에 IAM 정책을 추가하여 콘솔에서 Studio에 액세스하지 못하게 할 수 있습니다. 당신이 사용하는 경우 AWS 조직, 다음을 구현할 수 있습니다 서비스 제어 정책 Studio에 액세스해야 하는 조직 단위 또는 계정의 경우:
이 게시물에 설명된 솔루션은 API 게이트웨이와 Lambda를 사용하지만 EC2 인스턴스와 같은 다른 방법을 탐색할 수 있습니다. 인스턴스 역할 설명된 것과 동일한 권한 확인 작업 흐름을 사용하거나 독립적인 시스템을 사용하여 사용자 인증 및 권한 부여를 처리하고 Studio가 미리 서명한 URL을 생성합니다.
추가 읽기
Studio에 대한 액세스 보안은 활발한 연구 주제이며 유사한 접근 방식에 대한 다른 관련 게시물도 있습니다. 사용할 수 있는 다른 서비스 및 아키텍처에 대해 자세히 알아보려면 AWS Machine Learning 블로그의 다음 게시물을 참조하십시오.
저자에 관하여
제롬 바첼렛 Amazon Web Services의 솔루션 아키텍트입니다. 그는 고객이 비즈니스 목표를 달성하기 위해 AWS에서 최대한의 가치를 얻을 수 있도록 돕는 데 주력하고 있습니다. Jerome은 데이터 보호 및 데이터 보안 솔루션 분야에서 10년 이상의 경험을 갖고 있습니다. 클라우드에 있는 것 외에도 Jerome은 스위스 제네바 지역에서 아내 및 두 딸과 함께 여행을 즐기며 즐거운 시간을 보냅니다.
예브게니 일린 AWS의 솔루션 아키텍트입니다. 그는 모든 수준의 소프트웨어 개발 및 솔루션 아키텍처에서 20 년 이상의 경험을 쌓았으며 COBOL 및 Assembler에서 .NET, Java 및 Python에 이르는 프로그래밍 언어를 사용했습니다. 그는 빅 데이터, 분석 및 데이터 엔지니어링에 중점을 둔 클라우드 네이티브 솔루션을 개발하고 코딩합니다.
- '
- "
- 100
- 7
- 9
- 소개
- ACCESS
- 계정
- 동작
- 활동적인
- 주소
- All
- 아마존
- Amazon EC2
- 아마존 세이지 메이커
- Amazon Web Services
- 분석
- API를
- API
- 어플리케이션
- 아키텍처
- 지역
- 인증
- 권한 부여
- 자동 조종 장치
- AWS
- 존재
- 빅 데이터
- 블로그
- 브라우저
- 사업
- 전화
- 가지 경우
- 도전
- 과제
- 요금
- 클라우드
- 클라우드 네이티브
- 암호
- 의사 소통
- 계산
- 구성
- 연결
- 입/출력 라인
- 콘솔에서
- 소비자
- 컨테이너
- 용기
- 신임장
- 고객
- 데이터
- 데이터 보호
- 데이터 보안
- 개발
- DNS
- 하지 않습니다
- 효과
- 종점
- 엔지니어링
- 환경
- 예
- 실행
- 운동
- 경험
- 실험
- 추출물
- 최종적으로
- 금융
- 금융 서비스
- 파이어 폭스
- 먼저,
- 초점
- 따라
- 가득 찬
- 기능
- 생성
- 지프
- 방법
- How To
- HTTPS
- IAM
- 통합 인증
- 구현
- 구현
- 산업
- 완성
- 인터넷
- IP
- IP 주소
- 격리
- IT
- 자바
- 작업
- 유지
- 키
- 언어
- 배우다
- 배우기
- 라인
- 리눅스
- 지방의
- 기계 학습
- 구축
- Microsoft
- 모델
- 그물
- 네트워크
- 네트워크 액세스
- 노트북
- 제공
- 열 수
- 기타
- 비밀번호
- 정책
- 정책
- 인기 문서
- 포털
- 게시물
- 힘
- 교장
- 사설
- 개인 키
- 프로필
- 프로그램 작성
- 프로그래밍 언어
- 증명
- 개념 증명
- 보호
- 보호
- 제공
- 제공
- 대리
- 공개
- Python
- 품질
- 범위
- 리디렉션
- 요구조건 니즈
- 연구
- 의지
- 자료
- 응답
- 달리기
- 현자
- 보안
- 서비스
- 피복재
- 세트
- 비슷한
- 단순, 간단, 편리
- 소프트웨어
- 소프트웨어 개발
- 솔루션
- 스타트
- 성명서
- 저장
- 지원
- 지원
- 스위스
- 체계
- 목표
- test
- 지원
- 을 통하여
- 시간
- 토큰
- 교통
- 트레이닝
- ui
- 사용자
- 가치
- 온라인
- 웹
- 웹 브라우저
- 웹 서비스
- 창
- 이내
- 없이
- 워크플로우
- 인력
- 일
- 년