IAM 역할 및 정책 생성 - AWS Transfer Family

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

IAM 역할 및 정책 생성

이 주제에서는 와 함께 사용할 수 있는 정책 및 역할의 유형을 설명하고 사용자 역할을 생성하는 프로세스를 AWS Transfer Family안내합니다. 또한 세션 정책의 작동 방식을 설명하고 사용자 역할 예를 제공합니다.

AWS Transfer Family 는 다음 유형의 역할을 사용합니다.

  • 사용자 역할 - 서비스 관리형 사용자가 필요한 Transfer Family 리소스에 액세스할 수 있도록 허용합니다. Transfer Family 사용자 의 컨텍스트에서 이 역할을 AWS Transfer Family 가정합니다ARN.

  • 액세스 역할 – 전송 중인 Amazon S3 파일에만 액세스할 수 있습니다. 인바운드 AS2 전송의 경우 액세스 역할은 계약에 Amazon 리소스 이름(ARN)을 사용합니다. 아웃바운드 AS2 전송의 경우 액세스 역할은 커넥터에 ARN 를 사용합니다.

  • 호출 역할 - 서버의 사용자 지정 자격 증명 공급자로 Amazon API Gateway와 함께 사용됩니다. Transfer Family는 Transfer Family 서버 의 컨텍스트에서 이 역할을 맡습니다ARN.

  • 로깅 역할 - Amazon 에 항목을 로깅하는 데 사용됩니다 CloudWatch. Transfer Family는 이 역할을 사용하여 File Transfer에 대한 정보와 함께 성공 및 실패 세부 정보를 기록합니다. Transfer Family는 Transfer Family 서버 의 컨텍스트에서 이 역할을 맡습니다ARN. 아웃바운드 AS2 전송의 경우 로깅 역할은 커넥터 를 사용합니다ARN.

  • 실행 역할 – Transfer Family 사용자가 전화를 걸어 워크플로를 시작할 수 있습니다. Transfer Family는 Transfer Family 워크플로의 맥락에서 이 역할을 맡습니다ARN.

이러한 역할 외에도 세션 정책을 사용할 수 있습니다. 세션 정책은 필요한 경우 액세스를 제한하는 데 사용됩니다. 이러한 정책은 독립형이라는 점에 유의하세요. 즉, 이러한 정책은 역할에 추가할 수 없습니다. 대신 Transfer Family 사용자에게 직접 세션 정책을 추가할 수 있습니다.

참고

서비스 관리 Transfer Family 사용자를 생성하는 경우 홈 폴더를 기반으로 정책 자동 생성을 선택할 수 있습니다. 사용자 액세스를 자신의 폴더에 제한하려는 경우 유용한 단축키입니다. 또한 세션 정책의 작동 방식에서 세션 정책 및 예에 대한 세부 정보를 볼 수 있습니다. 세션 정책에 대한 자세한 내용은 IAM 사용 설명서세션 정책에서 확인할 수도 있습니다.

사용자 역할 생성

사용자를 만들 때, 사용자 액세스에 관한 결정을 여러 번 해야 합니다. 이러한 결정에는 사용자가 액세스할 수 있는 Amazon S3 버킷 또는 Amazon EFS 파일 시스템, 각 Amazon S3 버킷의 일부 및 파일 시스템의 파일에 액세스할 수 있는 권한, 사용자가 보유한 권한(예: PUT 또는 GET)이 포함됩니다.

액세스를 설정하려면 해당 액세스 정보를 제공하는 자격 증명 기반 AWS Identity and Access Management (IAM) 정책 및 역할을 생성합니다. 이 프로세스의 일환으로 사용자에게 EFS 파일 작업의 대상 또는 소스인 Amazon S3 버킷 또는 Amazon 파일 시스템에 대한 액세스 권한을 제공합니다. 이렇게 하려면 나중에 자세하게 설명하는, 다음과 같은 상위 수준 단계를 거쳐야 합니다.

사용자 역할 생성
  1. 에 대한 IAM 정책을 생성합니다 AWS Transfer Family. 이에 대한 설명은 에 대한 IAM 정책을 생성하려면 AWS Transfer Family에 나와 있습니다.

  2. IAM 역할을 생성하고 새 IAM 정책을 연결합니다. 예시는 읽기/쓰기 액세스 정책의 예에서 확인하십시오.

  3. AWS Transfer Family 및 IAM 역할 간에 신뢰 관계를 설정합니다. 이에 대한 설명은 신뢰 관계를 구축하기 위해에 나와 있습니다.

다음 절차에서는 IAM 정책 및 역할을 생성하는 방법을 설명합니다.

에 대한 IAM 정책을 생성하려면 AWS Transfer Family
  1. 에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/.

  2. 탐색 창에서 정책을 선택한 후 정책 생성을 선택합니다.

  3. 정책 생성 페이지에서 JSON 탭을 선택합니다.

  4. 나타나는 편집기에서 편집기의 내용을 IAM 역할에 연결할 IAM 정책으로 바꿉니다.

    읽기/쓰기 액세스 권한을 부여하거나 사용자를 홈 디렉터리로 제한할 수 있습니다. 자세한 내용은 읽기/쓰기 액세스 정책의 예를 참조하세요.

  5. 정책 검토를 선택하고 정책의 이름과 설명을 입력한 다음 정책 생성을 선택합니다.

다음으로 IAM 역할을 생성하고 새 IAM 정책을 연결합니다.

에 대한 IAM 역할을 생성하려면 AWS Transfer Family
  1. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

    역할 생성 페이지에서 AWS 서비스가 선택되어 있는지 확인합니다.

  2. 서비스 목록에서 전송을 선택하고, 다음: 권한을 선택합니다. 이렇게 하면 AWS Transfer Family 및 간에 신뢰 관계가 설정됩니다 AWS.

  3. 권한 정책 연결 섹션에서, 방금 생성한 정책을 찾아 선택한 다음 다음: 태그를 선택합니다.

  4. (옵션) 태그의 키와 값을 입력하고 다음: 검토를 선택합니다.

  5. 검토 페이지에 새 역할의 명칭과 설명을 입력한 다음 역할 생성을 선택합니다.

다음으로 AWS Transfer Family 및 간에 신뢰 관계를 설정합니다 AWS.

신뢰 관계를 구축하기 위해
참고

이 예에서는 ArnLikeArnEquals 모두를 사용합니다. 기능적으로 동일하므로 정책을 구성할 때 둘 중 하나를 사용할 수 있습니다. Transfer Family 설명서에서는 조건에 와일드카드 문자가 포함된 경우에는 ArnLike를 사용하고, 정확한 일치 조건을 나타내기 위해서는 ArnEquals를 사용합니다.

  1. IAM 콘솔에서 방금 생성한 역할을 선택합니다.

  2. 요약 페이지에서 신뢰 관계를 선택한 다음 신뢰 관계 편집을 선택합니다.

  3. 신뢰 관계 편집 편집기에서 서비스"transfer.amazonaws.com"인지 확인합니다. 액세스 정책은 다음과 같습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    대리인 혼동 문제로부터 스스로를 보호하려면 aws:SourceAccountaws:SourceArn 조건 키를 사용할 것을 권장합니다. 소스 계정은 서버의 소유자이고 소스ARN는 사용자의 ARN입니다. 예:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account_id:user/*" } }

    사용자 계정의 서버 대신 특정 서버로 제한하려는 경우에도 ArnLike 조건을 사용할 수 있습니다. 예:

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } }
    참고

    위 예제에서 각각을 바꿉니다.user input placeholder 자신의 정보를 사용합니다.

    헷갈리는 대리인 문제에 대한 자세한 내용 및 기타 예는 교차 서비스 혼동된 대리인 방지 단원을 참조하세요.

  4. 신뢰 정책 업데이트를 선택하여 액세스 정책을 업데이트합니다.

이제 가 사용자를 대신하여 AWS 서비스를 호출 AWS Transfer Family 할 수 있는 IAM 역할을 생성했습니다. 사용자에게 액세스 권한을 부여하기 위해 생성한 IAM 정책을 역할에 연결했습니다. AWS Transfer Family 서버 엔드포인트 시작하기 섹션에서, 이 역할과 정책은 사용자 또는 일반 사용자에게 할당됩니다.

참고 항목

세션 정책의 작동 방식

관리자가 역할을 생성하면 역할에 여러 사용 사례 또는 팀 구성원을 포괄할 수 있는 광범위한 권한이 포함되는 경우가 많습니다. 관리자가 콘솔 URL를 구성하는 경우 세션 정책 을 사용하여 결과 세션에 대한 권한을 줄일 수 있습니다. 예를 들어 읽기/쓰기 액세스 권한이 있는 역할을 생성하는 경우 홈 디렉터리에만 대한 사용자의 액세스를 제한URL하는 를 설정할 수 있습니다.

세션 정책은 역할 또는 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 세션 정책은 객체 접두사에 사용자 이름이 포함된 버킷의 일부에만 액세스할 수 있도록 사용자를 잠그는 데 유용합니다. 다음 다이어그램은 세션 정책의 권한이 세션 정책과 리소스 기반 정책의 교집합과 세션 정책 및 자격 증명 기반 정책의 교집합임을 보여줍니다.

세션 정책 권한 벤 다이어그램. 리소스 기반 정책, 자격 증명 기반 정책 및 세션 정책의 교차점에서 권한이 얼마나 효과적인지 보여줍니다.

자세한 내용은 IAM 사용 설명서세션 정책을 참조하세요.

에서 AWS Transfer Family세션 정책은 Amazon S3로 또는 Amazon S3에서 전송할 때만 지원됩니다. 다음 예 정책은 사용자가 자신의 home 디렉터리에만 액세스하게 하는 세션 정책입니다. 유의할 사항:

  • GetObjectACLPutObjectACL 명령문은 크로스 계정 액세스를 활성화할 필요가 있는 경우에만 요구됩니다. 예컨대, Transfer Family 서버가 다른 계정의 버킷에 액세스할 필요가 있는 경우입니다.

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

  • Amazon S3 버킷이 AWS Key Management Service (AWS KMS)를 사용하여 암호화된 경우 정책에 추가 권한을 지정해야 합니다. 세부 정보는 Amazon S3의 데이터 암호화을 참조하세요.

{ "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:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*" } ] }
참고

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

이전 예 정책에서, transfer:HomeFolder, transfer:HomeBucket, transfer:HomeDirectory 정책 파라미터의 사용을 기억해 두세요. 이러한 파라미터HomeDirectoryHomeDirectory 및 에 설명된 대로 사용자용으로 구성된 에 대해 설정됩니다API 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 액세스를 제한합니다.

읽기/쓰기 액세스 정책의 예

Amazon S3 버킷에 대한 읽기/쓰기 권한 부여

다음 예제 정책은 Amazon S3 버킷의 객체에 대한 읽기/쓰기 액세스 권한을 AWS Transfer Family 부여합니다.

유의할 사항:

  • Replace DOC-EXAMPLE-BUCKET Amazon S3 버킷의 이름을 사용합니다.

  • GetObjectACLPutObjectACL 명령문은 크로스 계정 액세스를 활성화할 필요가 있는 경우에만 요구됩니다. 예컨대, Transfer Family 서버가 다른 계정의 버킷에 액세스할 필요가 있는 경우입니다.

  • GetObjectVersionDeleteObjectVersion 보고서는 액세스 중인 Amazon S3 버킷에서 버전 관리가 활성화된 경우에만 필요합니다.

    참고

    버킷에 대한 버전 관리를 활성화 경우 Amazon S3에서만 버전 관리를 일시 중지하고 완전히 끌 수 없으므로 이러한 권한이 필요합니다. 자세한 내용은 Unversioned, versioning-enabled 및 versioning-suspended 버킷을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Amazon 파일 시스템의 파일에 대한 EFS 파일 시스템 액세스 권한 부여

참고

정책 외에도 POSIX 파일 권한이 적절한 액세스 권한을 부여하고 있는지도 확인해야 합니다. 자세한 내용은 Amazon Elastic File System File System 사용 설명서의 네트워크 파일 시스템(NFS) 수준에서 사용자, 그룹 및 권한 작업을 참조하세요.

다음 예제 정책은 루트 파일 시스템에 Amazon EFS 파일 시스템의 파일에 대한 액세스 권한을 부여합니다.

참고

다음 예에서는 를 바꿉니다.region 리전과 함께 account-id 파일이 있는 계정 file-system-id Amazon Elastic File System(Amazon EFS)의 ID를 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RootFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientRootAccess", "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }

다음 예제 정책은 사용자 파일 시스템에 Amazon EFS 파일 시스템의 파일에 대한 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UserFileSystemAccess", "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": "arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id" } ] }