Amazon S3 버킷을 위한 세션 정책 생성 - AWS Transfer Family

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 버킷을 위한 세션 정책 생성

세션 정책은 사용자를 Amazon S3 버킷의 특정 부분으로 제한하는 AWS Identity and Access Management (IAM) 정책입니다. 이 정책은 액세스를 실시간으로 평가해 이를 수행합니다.

참고

세션 정책은 Amazon S3에서만 사용됩니다. Amazon EFS의 경우 POSIX 파일 권한을 사용하여 액세스를 제한합니다.

세션 정책은 사용자 그룹 전원이 Amazon S3 버킷의 특정 부분에만 액세스하도록 제한해야 할 때 사용합니다. 예를 들어 사용자 그룹이 home 디렉터리에만 액세스해야 할 수도 있습니다. 해당 사용자 그룹은 같은 IAM 역할을 공유합니다.

참고

세션 정책의 최대 길이는 2,048자입니다. 자세한 내용은 API 참조CreateUser 작업에 대한 정책 요청 파라미터를 참조하세요.

세션 정책을 생성하려면, IAM 정책에서 다음 정책 변수를 사용하세요.

  • ${transfer:HomeBucket}

  • ${transfer:HomeDirectory}

  • ${transfer:HomeFolder}

  • ${transfer:UserName}

중요

관리형 정책에서는 위의 변수를 사용할 수 없습니다. 또한 위의 변수를 IAM 역할 정의에서 정책 변수로 사용할 수도 없습니다. IAM 정책에 있는 이러한 변수는 사용자를 설정할 때 생성하고 바로 공급합니다. 그리고 이 세션 정책에서는 ${aws:Username} 변수는 사용할 수 없습니다. 이 변수는 AWS Transfer Family이(가) 요구하는 사용자 이름이 아닌 IAM 사용자 이름을 의미합니다.

다음 코드는 예 세션 정책을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::${transfer:HomeBucket}" ], "Condition": { "StringLike": { "s3:prefix": [ "${transfer:HomeFolder}/*", "${transfer:HomeFolder}" ] } } }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
참고

위의 정책 예에서는 사용자의 홈 디렉터리가 디렉터리임을 나타내기 위해 후행 슬래시를 포함하도록 설정된 것으로 가정합니다. 그 반면에 후행 슬래시가 없이 사용자의 HomeDirectory를 설정하는 경우에는 이를 정책의 일부로 포함해야 합니다.

이전 예 정책에서, transfer:HomeFolder, transfer:HomeBucket, transfer:HomeDirectory 정책 파라미터의 사용을 기억해 두세요. 이러한 파라미터는 및 에 HomeDirectory 설명된 대로 사용자를 위해 구성된 항목에 대해 설정됩니다. HomeDirectoryAPI Gateway 메서드 구현 이러한 파라미터의 정의는 다음과 같습니다.

  • transfer:HomeBucket 파라미터는 HomeDirectory의 첫 번째 구성 요소로 대체됩니다.

  • transfer:HomeFolder 파라미터가 HomeDirectory 파라미터의 나머지 부분으로 대체됩니다.

  • transfer:HomeDirectory 파라미터는 Resource 명령문에서 S3 Amazon 리소스 이름 (ARN)의 일부로 사용할 수 있도록 선행 슬래시(/)가 제거되었습니다.

참고

귀하가 논리적 디렉터리를 사용하는 경우—즉 사용자의 homeDirectoryTypeLOGICAL인 경우—이러한 정책 파라미터(HomeBucket, HomeDirectory, 및 HomeFolder)는 지원되지 않습니다.

예를 들어, Transfer Family 사용자에 대해 구성된 HomeDirectory 파라미터가 /home/bob/amazon/stuff/(이)라고 가정해 보겠습니다.

  • transfer:HomeBucket/home(으)로 설정합니다.

  • transfer:HomeFolder/bob/amazon/stuff/(으)로 설정합니다.

  • transfer:HomeDirectoryhome/bob/amazon/stuff/가 됩니다.

첫 번째 "Sid"은(는) 사용자가 /home/bob/amazon/stuff/부터 시작하여 모든 디렉터리를 나열할 수 있게 해 줍니다.

두 번째 "Sid"은(는) 동일한 경로인 /home/bob/amazon/stuff/에 대한 사용자 putget 액세스를 제한합니다.

앞의 정책을 활성화하면, 로그인 시 사용자는 자신의 홈 디렉터리에 있는 객체만 액세스할 수 있습니다. 연결 시 이러한 변수를 사용자에게 적합한 값으로 AWS Transfer Family 바꿉니다. 이렇게 하면 같은 정책 설명서를 다수의 사용자에게 쉽게 적용할 수 있습니다. 이 방법은 Amazon S3 버킷에 대한 사용자의 액세스 관리에 필요한 IAM 역할과 정책 관리 오버헤드를 줄입니다.

세션 정책을 사용하면 업무 요건에 따라 각 사용자의 액세스를 조절할 수도 있습니다. 자세한 내용은 IAM 사용 설명서의 권한 AssumeRole, AssumeRoleWith SAML을 참조하십시오. AssumeRoleWithWebIdentity

참고

AWS Transfer Family 정책의 Amazon 리소스 이름 (ARN) 대신 정책 JSON을 저장합니다. 따라서 IAM 콘솔에서 정책을 변경한 경우 AWS Transfer Family 콘솔로 돌아가서 최신 정책 콘텐츠로 사용자를 업데이트해야 합니다. 사용자 구성 섹션의 정책 정보 탭에서 사용자를 업데이트할 수 있습니다.

를 사용하는 경우 다음 명령을 사용하여 정책을 업데이트할 수 있습니다. AWS CLI

aws transfer update-user --server-id server --user-name user --policy \ "$(aws iam get-policy-version --policy-arn policy --version-id version --output json)"