사용자 구성 편집 - SFTP를 위한 AWS 전송

사용자 구성 편집

AWS SFTP Management Console에서 사용자의 속성을 편집할 수 있습니다. 콘솔의 Server Configuration(서버 구성) 페이지에서 사용자의 역할, 정책과 홈 디렉터리를 편집할 수 있습니다. 또한 SSH(Secure Shell) 퍼블릭 키와 태그를 추가하고 삭제할 수도 있습니다.

사용자의 속성을 편집하려면 다음 절차를 따르십시오. AWS SFTP에 대한 IAM 정책을 생성하는 방법은 IAM 정책을 사용하여 AWS SFTP에 대한 액세스 제어 단원을 참조하십시오.

참고

사용자를 추가하고 나면 사용자 이름을 편집할 수 있습니다. 사용자의 사용자 이름을 바꾸려면, 새로운 사용자 이름을 가진 새 사용자를 추가하고 필요 없는 사용자를 삭제해야 합니다.

사용자 속성을 편집하는 방법

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/transfer/에서 AWS SFTP 콘솔을 엽니다.

  2. 탐색 창에서 Servers(서버)를 선택합니다.

  3. Server Configuration(서버 구성) 페이지의 Users(사용자) 섹션에서 사용자 이름을 선택해, 다음과 같은 User Configuration(사용자 구성) 페이지를 확인합니다.

  4. Add SSH public key(SSH 퍼블릭 키 추가)를 선택해 새 SSH 퍼블릭 키를 사용자에 추가합니다. 또는 목록에서 미리 할당된 SSH 퍼블릭 키를 선택하고, Delete(삭제)를 선택해 해당 키를 사용자의 정의에서 삭제하는 방법도 있습니다.

    SSH 키는 사용자 지정 인증 메서드라고도 하는, Amazon API Gateway 인증 메서드를 사용하는 SFTP 서버에서만 사용합니다. SSH 키 페어를 생성하는 자세한 방법은 SSH 키 생성 단원을 참조하십시오.

  5. Manage tags(태그 관리)를 선택해 태그를 추가 또는 제거하거나, 이 사용자에게 연결된 기존 태그를 수정합니다.

  6. Edit(편집)을 선택해 다음과 같은 Edit Configuration(구성 편집) 페이지를 확인합니다.

  7. (선택 사항) Access Info(액세스 정보)에 대한 IAM 역할을 선택해, 사용자에게 현재 할당된 AWS Identity and Access Management(IAM) 역할을 수정합니다.

    AWS SFTP에 필요한 IAM 역할을 생성하는 방법은 SFTP에 대한 IAM 정책 및 역할 생성 단원을 참조하십시오. AWS SFTP에 대한 IAM 역할에는 Amazon S3 버킷에 대한 액세스를 제공하는 IAM 정책이 포함됩니다. 또한 AWS SFTP와의 (권한 정책에서 정의하는) 신뢰 관계를 생성하는 다른 IAM 정책도 포함되어 있습니다.

  8. (선택 사항) 새 정책 옵션을 선택하여 Policy Info(정책 정보)를 수정합니다.

  9. (선택 사항) AWS SFTP가 전송한 데이터를 보관하는 데 사용할 새 Amazon S3 버킷을 선택하여 홈 디렉터리를 수정합니다. 사용자가 SFTP 클라이언트를 이용해 로그인할 때 위치하게 될 디렉터리로 가는 경로를 입력합니다.

    참고

    사용자의 사용자 이름이 있는 디렉터리 경로를 선택하는 것이 좋습니다.

    이 파라미터를 입력하지 않으면 Amazon S3 버킷의 root 디렉터리를 사용합니다. 역할이 버킷의 루트에 대한 액세스를 제공하는지 확인하세요.

  10. 저장을 선택하여 변경 사항을 저장합니다.

IAM 정책을 사용하여 AWS SFTP에 대한 액세스 제어

AWS Identity and Access Management(IAM) 정책을 사용하여 AWS SFTP 리소스에 대한 사용자 액세스를 제어할 수 있습니다. IAM 정책은 명령문으로, 대부분 리소스에 대한 특정 수준의 액세스를 허용하는 JSON 형식을 취합니다. IAM 정책을 사용하여 SFTP 사용자가 수행하거나 수행하지 않게 할 파일 작업을 정의합니다. 또한 IAM 정책을 이용해 사용자에게 액세스를 허용할 Amazon S3 버킷 또는 일반 버킷을 정의할 수도 있습니다. 사용자에 대해 이러한 정책을 지정하려면, IAM 정책 및 이와 관련된 신뢰 관계가 있는 AWS SFTP에 대한 IAM 역할을 만들어야 합니다.

각 SFTP 사용자에게 IAM 역할이 할당됩니다. 사용자가 SFTP 서버에 로그인하면, AWS SFTP는 사용자에게 매핑된 IAM 역할을 수임합니다. 사용자에게 Amazon S3 버킷에 대한 액세스를 제공하는 IAM 역할을 생성하는 방법은 다음을 참조하십시오. 역할을 만들고 권한을 위임하는 방법은 IAM 사용 설명서AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하십시오.

AWS SFTP가 사용하는 IAM 역할 유형은 서비스 역할이라고 합니다.

Amazon S3 버킷에 대한 읽기 및 쓰기 액세스 허용

다음은 특정 Amazon S3 버킷에 대한 읽기 및 쓰기 액세스 권한을 허용하는 IAM 정책 생성 방법입니다. 이 IAM 정책이 있는 IAM 역할을 SFTP 사용자에게 할당하면, 해당 사용자는 지정한 S3 버킷에 대한 읽기 및 쓰기 액세스 권한을 얻게 됩니다.

다음 정책은 Amazon S3 버킷에 대한 프로그래밍 방식의 읽기 및 쓰기 액세스 권한을 제공합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": ["arn:aws:s3:::bucketname"] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": ["arn:aws:s3:::bucketname/*"] } ] }

ListBucket 작업은 버킷 자체에 대한 권한을 요구합니다. PUT, GET, DELETE 작업은 객체 권한을 요구합니다. 이들은 각각 다른 개체이며, 따라서 서로 다른 ARN(Amazon Resource Names)을 이용해 지정됩니다.

버킷이 AWS Key Management Service(AWS KMS) 암호화를 위해 활성화되었다면, 정책에 추가 작업을 활성화해야 합니다. AWS KMS에 대한 자세한 내용은 AWS Key Management Service란 무엇입니까? 단원을 참조하십시오.

사용자의 액세스를 지정한 S3 버킷의 home 디렉터리에만 제한하는 방법은 범위 축소 정책 생성 단원을 참조하십시오.

범위 축소 정책 생성

범위 축소 정책은 AWS SFTP 사용자가 S3 버킷의 특정 부분에만 액세스하게 하는 AWS Identity and Access Management(IAM) 정책입니다. 이 정책은 액세스를 실시간으로 평가해 이를 수행합니다.

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

범위 축소 정책을 생성하려면, IAM 정책에서 다음 정책 변수를 사용하십시오.

  • ${transfer:HomeBucket}

  • ${transfer:HomeDirectory}

  • ${transfer:HomeFolder}

  • ${transfer:UserName}

참고

앞에서 IAM 역할 정의의 정책 변수로 나열된 변수는 사용할 수 없습니다. IAM 정책에 있는 이러한 변수는 사용자를 설정할 때 생성하고 바로 공급합니다. 그리고 이 범위 축소 정책에서는 ${aws:Username}변수는 사용할 수 없습니다. 이 변수는 AWS SFTP가 요구하는 사용자 이름이 아닌 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": "AWSTransferRequirements", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "*" }, { "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}*" } ] }

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

범위 축소 정책을 사용하면 비즈니스 요구 사항에 따라 각 사용자의 액세스를 조절할 수도 있습니다. 자세한 내용은 IAM 사용 설명서AssumeRole, AssumeRoleWithSAML 및 AssumeRoleWithWebIdentity에 대한 권한 단원을 참조하십시오.

참고

AWS SFTP는 정책의 ARN(Amazon 리소스 이름) 대신 JSON 정책을 저장합니다. 따라서 IAM 콘솔에서 정책을 변경한 경우 AWS SFTP 콘솔로 돌아가서 최신 정책 콘텐츠로 사용자를 업데이트해야 합니다. User configuration(사용자 구성) 섹션의 Policy Info(정책 정보) 탭에서 사용자를 업데이트할 수 있습니다. 자세한 내용은 사용자 구성 편집 단원을 참조하십시오.

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)"

사용자가 S3 버킷에서 디렉터리를 생성하지 못하도록 방지

사용자가 Amazon S3 버킷에서 디렉터리를 생성하지 못하도록 방지할 수 있습니다. 이렇게 하려면 s3:PutObject 작업을 허용하지만 "/"(백슬래시)로 끝나는 키도 거부하는 IAM 정책을 생성합니다.

다음 예제 정책에서는 사용자가 파일을 S3 버킷에 업로드할 수 있지만 버킷에 디렉터리를 생성할 수는 없습니다. 즉, S3 버킷에서의 mkdir 명령을 거부합니다.

{ "Sid":"DenyMkdir", "Action":[ "s3:PutObject" ], "Effect":"Deny", "Resource":"arn:aws:s3:::my-sftp-bucket/*/" }