기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
동적 권한 관리 접근 방식
Transfer Family 권한 아키텍처 이해
AWS Transfer Family 는 런타임 시 IAM 역할의 유효 권한을 제한할 수 있는 세션 정책을 통해 동적 권한 관리를 지원합니다. 이 접근 방식은 서비스 관리 사용자와 사용자 지정 자격 증명 공급자 사용자 모두에서 작동하지만 Amazon S3(Amazon EFS 아님)와 파일을 주고받을 때만 지원됩니다.
모든 AWS Transfer Family 사용자는 다음으로 구성된 권한 모델을 사용합니다.
-
기본 IAM 역할 - 사용자의 기본 권한을 정의합니다.
-
선택적 세션 정책 - 런타임 시 기본 권한을 제한(범위 축소)합니다.
유효 권한은 기본 역할 권한과 세션 정책 권한의 교집합입니다. 세션 정책은 권한을 제한할 수만 있으며 기본 역할이 허용하는 것 이상의 추가 권한을 부여할 수는 없습니다.
이 아키텍처는 두 사용자 유형에 모두 적용됩니다.
-
서비스 관리형 사용자 - 세션 정책은 사용자 설정에서 직접 구성할 수 있습니다.
-
사용자 지정 자격 증명 공급자 사용자 - 세션 정책을 인증 응답의 일부로 반환하거나에 저장할 수 있습니다. AWS Secrets Manager
권한 관리에 대한 두 가지 접근 방식
고유한 액세스 패턴이 필요한 Transfer Family 사용자를 위한 권한을 설계할 때 두 가지 주요 접근 방식 중에서 선택할 수 있습니다.
- 사용자당 하나의 역할
-
각 Transfer Family 사용자에 대해 해당 사용자의 필요에 맞는 특정 권한을 가진 별도의 IAM 역할을 생성합니다. 다음과 같은 경우이 접근 방식을 사용합니다.
-
각 사용자에게는 매우 다른 권한이 필요합니다.
-
권한 관리는 조직의 다양한 사용자가 처리합니다.
-
개별 사용자 액세스를 세밀하게 제어해야 합니다.
-
- 세션 정책과 역할 공유
-
광범위한 권한(예: 여러 사용자 홈 디렉터리가 포함된 전체 Amazon S3 버킷에 대한 액세스)이 있는 단일 IAM 역할을 사용하고 세션 정책을 적용하여 각 사용자를 특정 영역으로 제한합니다. 이 접근 방식은 각 사용자에 대해 별도의 역할을 관리하는 것에 비해 관리 오버헤드를 크게 줄입니다. 다음과 같은 경우이 접근 방식을 사용합니다.
-
사용자에게는 비슷한 유형의 액세스가 필요하지만 다른 리소스에 대한 액세스가 필요합니다(예: 모든 사용자는 읽기/쓰기 액세스가 필요하지만 각각 자신의 폴더에만 액세스).
-
역할 관리를 간소화하고 수십 또는 수백 개의 개별 역할을 생성하지 않으려는 경우
-
사용자는 공유 버킷 내의 지정된 홈 디렉터리에만 액세스해야 합니다.
-
권한 관리는 조직 내에서 중앙 집중화됩니다.
예를 들어 사용자 "alice", "bob" 및 "charlie"에 대해 별도의 역할을 생성하는 대신 전체
s3://company-transfers/버킷에 액세스할 수 있는 하나의 역할을 생성한 다음 세션 정책을 사용하여 alice를s3://company-transfers/alice/로, bob을s3://company-transfers/bob/로 제한할 수 있습니다. -
세션 정책 구현
세션 정책은 사용자에게 할당된 기본 IAM 역할의 유효 권한을 제한하여 작동합니다. 최종 권한은 역할 권한과 세션 정책의 권한의 교집합입니다.
다음 두 가지 방법으로 동적 세션 정책을 구현할 수 있습니다.
- 변수 대체
-
세션 정책
${transfer:HomeBucket}에서${transfer:Username},${transfer:HomeDirectory}및와 같은 Transfer Family 정책 변수를 사용합니다. 이러한 변수는 런타임 시 실제 값으로 자동 대체됩니다. 이러한 변수에 대한 자세한 내용은 섹션을 참조하세요Amazon S3 버킷을 위한 세션 정책 생성. - 동적 생성
-
사용자 지정 자격 증명 공급자의 경우 Lambda 함수 또는 API Gateway 메on-the-fly 일부로 세션 정책을 즉시 생성합니다. 이 접근 방식을 사용하면 인증 시 사용자 속성, 그룹 멤버십 또는 외부 데이터 소스를 기반으로 고도로 사용자 지정된 정책을 생성할 수 있습니다.
세션 정책 JSON과
Policy함께 라는 키를 값으로 AWS Secrets Manager 포함하여에 사전 생성된 세션 정책을 저장할 수도 있습니다. 이를 통해 사용자별 액세스 제어를 유지하면서 여러 사용자에 대해 동일한 광범위한 IAM 역할을 사용할 수 있습니다.
참고
세션 정책은 Amazon S3와의 파일 전송에만 지원됩니다. Amazon EFS 파일 시스템에는 적용되지 않습니다. Amazon EFS의 경우 권한은 UID/GID 및 파일 시스템 자체 내에 적용된 권한 비트에 의해 관리됩니다.
사용자 유형별 구현
- 서비스 관리형 사용자
-
서비스 관리형 사용자의 경우 AWS Transfer Family 콘솔, API 또는 CLI를 통해 사용자 구성에서 직접 세션 정책을 지정할 수 있습니다. 자세한 내용은 서비스 관리형과 작업 단원을 참조하십시오.
- 사용자 지정 자격 증명 공급자 사용자
-
사용자 지정 자격 증명 공급자 사용자의 경우 다음 두 가지 방법으로 세션 정책을 제공할 수 있습니다.
-
세션 정책과
Policy함께 라는 키를 값으로 AWS Secrets Manager 포함하여를 통해 -
인증 결과의 일부로 Lambda 함수 응답 또는 API Gateway 응답에서 직접
자세한 내용은 사용자 지정 ID 제공업체 솔루션 단원을 참조하십시오.
-
예: 세션 정책을 사용하여 역할 관리 간소화
이 예제는 동적 권한 관리가 보안을 유지하면서 관리 오버헤드를 크게 줄이는 방법을 보여줍니다.
시나리오
조직에 파일을 전송하기 위해 SFTP 액세스 권한이 필요한 사용자가 50명 있습니다. 각 사용자는 라는 공유 Amazon S3 버킷 내의 자체 폴더에만 액세스해야 합니다company-transfers. 세션 정책이 없으면 50개의 개별 IAM 역할을 생성해야 합니다.
- 기존 접근 방식(세션 정책 없음)
-
-
50개의 IAM 역할 생성:
TransferRole-Alice,TransferRole-BobTransferRole-Charlie, 등 -
각 역할에는 해당 사용자의 폴더에 대한 특정 권한만 있습니다.
-
권한을 관리하려면 개별 역할을 업데이트해야 합니다.
-
새 사용자를 추가하려면 새 역할을 생성해야 합니다.
-
- 동적 접근 방식(세션 정책 사용)
-
-
IAM 역할 1개 생성: 전체 버킷에 대한 광범위한 권한
TransferRole-Shared있음 -
세션 정책을 사용하여 런타임 시 각 사용자를 특정 폴더로 제한
-
권한을 관리하려면 하나의 역할 또는 세션 정책 템플릿을 업데이트해야 합니다.
-
새 사용자를 추가하면 새 역할이 필요하지 않고 사용자 구성만 필요합니다.
-
구현
동적 접근 방식을 구현하는 방법은 다음과 같습니다( company-transfers 버킷을 실제 Amazon S3 버킷으로 대체하는 예제로 사용).
동적 권한 관리를 구현하려면
-
광범위한 Amazon S3 권한을 사용하여 공유 IAM 역할 하나를 생성합니다.
-
사용자의 폴더에 대한 액세스를 제한하는 세션 정책 템플릿을 생성합니다.
-
다음을 사용하여 각 사용자를 구성합니다.
-
공유 IAM 역할
-
세션 정책은 다음과 같이 적용됩니다.
-
서비스 관리형 사용자: 사용자를 생성하거나 수정할 때 API 또는 CLI를 사용하여 정책 파라미터를 통해 JSON을 적용합니다(콘솔은 사전 정의된 정책 옵션만 제공).
-
사용자 지정 자격 증명 공급자 사용자: 인증 중에 Lambda 함수 응답의 일부로 반환하거나 사용자의 자격 증명과 함께 "정책"이라는 키 AWS Secrets Manager 로에 저장합니다.
-
-
홈 디렉터리:
/company-transfers/${transfer:Username}/
-