S3 Files가 IAM과 함께 작동하는 방식

S3 Files가 IAM과 함께 작동하는 방식 (How S3 Files works with IAM)

이 페이지에서는 AWS Identity and Access Management(IAM)가 S3 Files와 함께 작동하는 방식과 IAM 정책을 사용해 파일 시스템에 대한 액세스를 제어하는 방법을 설명해요.

S3 Files는 두 가지 구별되는 유형의 액세스 제어에 IAM을 사용해요.

  • API 액세스 – 파일 시스템, 마운트 타겟, 액세스 포인트 같은 S3 Files 리소스를 누가 만들고, 관리하고, 삭제할 수 있는지 제어해요. IAM 사용자, 그룹 또는 역할에 연결된 ID 기반 정책으로 이 액세스를 제어할 수 있어요.
  • 클라이언트 액세스 – 클라이언트(마운트된 컴퓨팅 리소스)가 연결 후 파일 시스템에서 무엇을 할 수 있는지 제어해요. 예를 들어 파일을 읽고, 쓰거나, 루트 사용자로 액세스하는 것 등이에요. 리소스 기반 정책, ID 기반 정책, 액세스 포인트, POSIX 권한의 조합으로 이 액세스를 제어해요.

IAM을 사용해 클라이언트가 파일 시스템에서 읽기 전용, 쓰기, 루트 액세스를 포함한 특정 작업을 수행하도록 허용할 수 있어요. IAM ID 정책이나 파일 시스템 리소스 정책 중 하나의 작업에 대한 "허용(allow)" 권한이 있으면 해당 작업에 대한 액세스가 허용돼요. 권한이 ID 정책과 리소스 정책 모두에 부여될 필요는 없어요.

연결된 S3 버킷의 S3 버킷 정책도 컴퓨팅 리소스 및 파일 시스템에서 S3 버킷으로의 액세스를 규정해요. 또한 원본 버킷의 버킷 정책이 컴퓨팅 리소스나 파일 시스템의 액세스를 거부하지 않도록 해야 해요. 자세한 내용은 Amazon S3용 버킷 정책을 참고하세요.

출처: 문서

본문

ID 기반 정책 (Identity-based policies)

ID 기반 정책은 IAM 사용자, 그룹 또는 역할에 연결하는 JSON 정책이에요. 사용자 지정 정책을 작성하거나 AWS 관리형 정책을 연결해 이러한 권한을 제공할 수 있어요. API 액세스와 클라이언트 액세스 모두에 사용 가능한 관리형 정책에 대한 자세한 내용은 Amazon S3 Files용 AWS 관리형 정책을 참고하세요.

S3 Files는 또한 클라이언트가 원본 S3 버킷에서 파일 데이터를 직접 읽을 수 있게 해 읽기 성능을 최적화해요. 컴퓨팅 리소스에 S3 파일 시스템을 마운트할 때 지정된 S3 버킷에서 객체를 읽을 권한을 부여하는 인라인 정책을 컴퓨팅 리소스의 IAM 역할에 추가해야 해요. 마운트 헬퍼는 이 권한을 사용해 S3 데이터를 읽어요. 이 정책에 대한 자세한 내용은 AWS 컴퓨팅 리소스에 파일 시스템을 연결하기 위한 IAM 역할을 참고하세요.

리소스 기반 정책 (Resource-based policies)

파일 시스템 정책은 파일 시스템에 직접 연결해 클라이언트 액세스를 제어하는 IAM 리소스 기반 정책이에요. 파일 시스템 정책을 사용해 클라이언트가 마운트, 쓰기, 루트 액세스 같은 작업을 수행할 권한을 부여하거나 거부할 수 있어요.

파일 시스템은 빈(기본) 파일 시스템 정책을 가지거나 정확히 하나의 명시적 정책을 가져요. S3 파일 시스템 정책에는 20,000자 제한이 있어요. 파일 시스템 정책 생성 및 관리에 대한 정보는 파일 시스템 정책 생성을 참고하세요.

클라이언트용 S3 Files 작업

클라이언트 액세스를 제어하기 위해 파일 시스템 정책에서 다음 작업을 지정할 수 있어요.

작업 설명
s3files:ClientMount 파일 시스템에 대한 읽기 전용 액세스를 제공해요.
s3files:ClientWrite 파일 시스템에 대한 쓰기 권한을 제공해요.
s3files:ClientRootAccess 파일 시스템에 액세스할 때 루트 사용자 사용을 제공해요.

클라이언트용 S3 Files 조건 키

파일 시스템 정책의 Condition 요소에서 다음 조건 키를 사용해 액세스 제어를 더욱 세분화할 수 있어요.

조건 키 설명 연산자
s3files:AccessPointArn 클라이언트가 연결하는 S3 Files 액세스 포인트의 ARN. String

파일 시스템 정책 예시

예시: 읽기 전용 액세스 부여

다음 파일 시스템 정책은 ReadOnly IAM 역할에 ClientMount(읽기 전용) 권한만 부여해요. 111122223333을 본인의 AWS 계정 ID로 바꾸세요.

{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ReadOnly"
            },
            "Action": [
                "s3files:ClientMount"
            ]
        }
    ]
}

예시: S3 Files 액세스 포인트에 대한 액세스 부여

다음 파일 시스템 정책은 조건 요소를 사용해 지정된 액세스 포인트를 통해 마운트할 때 특정 액세스 포인트에 파일 시스템에 대한 전체 액세스를 부여해요. 액세스 포인트 ARN과 계정 ID를 본인의 값으로 바꾸세요. 자세한 내용은 S3 파일 시스템용 액세스 포인트 생성을 참고하세요.

{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::555555555555:role/S3FilesAccessPointFullAccess"
            },
            "Action": [
                "s3files:Client*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3files:AccessPointArn": "arn:partition:s3files:region:account-id:file-system/fs-1234567890/access-point/fsap-0987654321"
                }
            }
        }
    ]
}

POSIX 권한

IAM 권한 부여가 성공한 후 S3 Files는 파일 및 디렉터리 수준에서 표준 POSIX(Unix 스타일) 권한을 적용해요. POSIX 권한은 각 파일 및 디렉터리와 연결된 사용자 ID(UID), 그룹 ID(GID), 권한 비트(읽기, 쓰기, 실행)를 기반으로 액세스를 제어해요. 액세스 포인트는 모든 요청에 대해 특정 POSIX 사용자 ID를 적용할 수 있어 공유 데이터셋의 액세스 관리를 단순화해요. 자세한 내용은 S3 파일 시스템용 액세스 포인트 생성을 참고하세요.

보안 그룹 (Security groups)

보안 그룹은 컴퓨팅 리소스와 파일 시스템의 마운트 타겟 간 트래픽을 제어하는 네트워크 수준 방화벽 역할을 해요. S3 Files 시작을 위해 보안 그룹을 구성하는 방법에 대한 자세한 내용은 보안 그룹을 참고하세요.