SFTP 생성 - AWS Transfer Family

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

SFTP 생성

이 절차에서는 콘솔 또는를 사용하여 AWS Transfer Family SFTP 커넥터를 생성하는 방법을 설명합니다 AWS CLI.

Console
SFTP 커넥터를 생성하려면
  1. https://console.aws.amazon.com/transfer/ AWS Transfer Family 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 SFTP 커넥터를 선택한 다음 SFTP 커넥터 생성을 선택합니다.

  3. 커넥터 구성 섹션에서 다음 정보를 제공합니다:

    커넥터 구성 설정을 보여주는 Transfer Family SFTP 커넥터 콘솔.
    • URL에는 원격 SFTP 서버의 URL을 입력합니다. 이 URL은 sftp://partner-SFTP-server-url와 같은 형식(예: sftp://AnyCompany.com)이어야 합니다.

      참고

      경우에 따라 URL에 포트 번호를 제공할 수 있습니다. 형식은 sftp://partner-SFTP-server-url:port-number입니다. 기본 포트 번호(지정된 포트가 없는 경우)는 포트 22입니다.

    • 액세스 역할에서 사용할 (IAM) 역할의 Amazon 리소스 이름 AWS Identity and Access Management (ARN)을 선택합니다.

      • 이 역할이 StartFileTransfer 요청에서 사용된 파일 위치의 상위 디렉터리에 대한 읽기 및 쓰기 액세스 권한을 이 역할이 제공하는지 확인하세요.

      • 이 역할이 secretsmanager:GetSecretValue에 대해 암호에 액세스할 수 있는 권한을 제공하는지 확인하세요.

        참고

        정책에서 보안 암호의 ARN을 지정해야 합니다. ARN에는 보안 암호 이름이 포함되지만 이름에 임의의 영숫자 6자를 추가합니다. 보안 암호의 ARN 형식은 다음과 같습니다.

        arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
      • 사용자의 이전 요청을 처리할 때 커넥터가 리소스에 액세스할 수 있도록 허용하는 신뢰 관계가 이 역할에 포함되어 있는지 확인하세요. 신뢰 관계 설정에 대한 자세한 내용은 신뢰 관계를 구축하기 위해을 참조하세요.

      다음 예제에서는 Amazon S33의 amzn-s3-demo-bucket과 Secrets Manager에 저장된 지정된 보안 암호에 액세스하는 데 필요한 권한을 부여합니다.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters" } ] }
      참고

      액세스 역할의 경우, 예는 단일 암호에 대한 액세스 권한을 부여합니다. 하지만 와일드카드 문자를 사용하면 여러 사용자 및 암호에 대해 동일한 IAM 역할을 재사용하려는 경우 작업을 줄일 수 있습니다. 예컨대, 다음 리소스 명령문은 aws/transfer으로 시작하는 이름을 가진 모든 암호에 대한 권한을 부여합니다.

      "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"

      SFTP 자격 증명이 포함된 암호를 다른 AWS 계정에 저장할 수도 있습니다. 교차 계정 보안 암호 액세스를 활성화하는 방법에 대한 자세한 내용은 다른 계정의 사용자에 대한 AWS Secrets Manager 보안 암호 권한을 참조하세요.

    • (옵션) 로깅 역할에서 커넥터가 CloudWatch 로그에 이벤트를 푸시하는 데 사용할 IAM 역할을 선택합니다. 다음 예제 정책은 SFTP 커넥터에 대한 이벤트를 로깅하는 데 필요한 권한을 나열합니다.

      { "Version": "2012-10-17", "Statement": [{ "Sid": "SFTPConnectorPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/transfer/*" ] }] }
  4. SFTP 구성 섹션에 다음 정보를 제공합니다.

    SFTP 구성 설정을 보여주는 Transfer Family SFTP 커넥터 콘솔.
    • 커넥터 보안 인증 정보의 경우 드롭다운 목록에서 SFTP 사용자의 프라이빗 키 또는 암호가 포함된 AWS Secrets Manager 에서 암호의 명칭을 선택합니다. 암호를 생성하여 특정 방식으로 저장해야 합니다. 자세한 내용은 Secrets Manager에 SFTP 커넥터의 인증 자격 증명 저장 을 참조하세요.

    • (선택 사항) ) TrustedHostKeys 파라미터를 비워 두고 커넥터를 생성할 수 있습니다. 그러나 커넥터 구성에이 파라미터를 제공할 때까지 커넥터가 원격 서버로 파일을 전송할 수 없습니다. 커넥터를 생성할 때 신뢰할 수 있는 호스트 키(들)를 입력하거나 나중에 TestConnection 콘솔 작업 또는 API 명령에서 반환된 호스트 키 정보를 사용하여 커넥터를 업데이트할 수 있습니다. 즉, 신뢰할 수 있는 호스트 키 텍스트 상자의 경우 다음 중 하나를 수행할 수 있습니다.

      • 커넥터를 생성할 때 신뢰할 수 있는 호스트 키(들)를 제공합니다. 외부 서버를 식별하는 데 사용되는 호스트 키의 퍼블릭 부분에 붙여 넣습니다. 신뢰 호스트 키 추가를 선택하여 키를 더 추가하면 키를 두 개 이상 추가할 수 있습니다. SFTP 서버에 대해 ssh-keyscan 명령을 사용하여 필요한 키를 검색할 수 있습니다. Transfer Family가 지원하는 신뢰 호스트 키의 형식 및 타입에 대한 자세한 설명은 SFTPConnectorConfig 섹션을 참조하세요.

      • 커넥터를 생성할 때 신뢰할 수 있는 호스트 키(들) 텍스트 상자를 비워 두고 나중에이 정보로 커넥터를 업데이트합니다. 커넥터를 생성할 때 호스트 키 정보가 없는 경우 지금은이 파라미터를 비워 두고 커넥터 생성을 진행할 수 있습니다. 커넥터를 생성한 후 새 커넥터의 ID를 사용하여 AWS CLI 또는 커넥터의 세부 정보 페이지에서 TestConnection 명령을 실행합니다. 성공하면 TestConnection가 필요한 호스트 키 정보를 반환합니다. 그런 다음 콘솔을 사용하여(또는 UpdateConnector AWS CLI 명령을 실행하여) 커넥터를 편집하고 실행 시 반환된 호스트 키 정보를 추가할 수 있습니다TestConnection.

      중요

      를 실행하여 원격 서버의 호스트 키를 검색하는 경우 반환된 키에 대해 out-of-band 검증을 수행해야 TestConnection합니다.

      새 키를 신뢰할 수 있는 것으로 수락하거나 연결하려는 원격 SFTP 서버의 소유자로부터 받은 이전에 알려진 지문으로 제시된 지문을 확인해야 합니다.

    • (선택 사항) 최대 동시 연결의 드롭다운 목록에서 커넥터가 원격 서버에 생성하는 동시 연결 수를 선택합니다. 콘솔의 기본 선택은 5입니다.

      이 설정은 커넥터가 원격 서버와 동시에 설정할 수 있는 활성 연결 수를 지정합니다. 동시 연결을 생성하면 병렬 작업을 활성화하여 커넥터 성능을 향상시킬 수 있습니다.

  5. 암호화 알고리즘 옵션 섹션의 보안 정책 필드의 드롭다운 목록에서 보안 정책을 선택합니다. 보안 정책을 사용하면 커넥터가 지원하는 암호화 알고리즘을 선택할 수 있습니다. 사용 가능한 보안 정책 및 알고리즘에 대한 자세한 내용은 섹션을 참조하세요AWS Transfer Family SFTP 커넥터에 대한 보안 정책.

  6. (옵션) 태그 섹션에서 에 하나 이상의 태그를 키-값 쌍을 입력합니다.

  7. 모든 설정을 확인한 후 SFTP 커넥터 생성을 선택하여 SFTP 커넥터를 생성합니다. 커넥터가 성공적으로 생성되면 할당된 고정 IP 주소 목록과 연결 테스트 버튼이 있는 화면이 나타납니다. 버튼을 사용하여 새 커넥터의 구성을 테스트합니다.

    SFTP 커넥터가 성공적으로 생성되면 나타나는 커넥터 생성 화면입니다. 여기에는 연결을 테스트하기 위한 버튼과이 커넥터의 서비스 관리형 고정 IP 주소 목록이 포함되어 있습니다.

새 SFTP 커넥터의 ID가 목록에 추가된 커넥터 페이지가 나타납니다. 커넥터에 대한 세부 정보를 보려면 SFTP 커넥터 세부 정보 보기 섹션을 참조하세요.

CLI

커넥터를 생성할 때는 create-connector 명령을 사용합니다. 이 명령을 사용하여 SFTP 커넥터를 생성하려면 다음 정보를 제공해야 합니다.

  • 원격 SFTP 서버의 URL입니다. 이 URL은 sftp://partner-SFTP-server-url와 같은 형식(예: sftp://AnyCompany.com)이어야 합니다.

  • 액세스 역할입니다. 사용할 AWS Identity and Access Management (IAM) 역할의 Amazon 리소스 이름(ARN)을 선택합니다.

    • 이 역할이 StartFileTransfer 요청에서 사용된 파일 위치의 상위 디렉터리에 대한 읽기 및 쓰기 액세스 권한을 이 역할이 제공하는지 확인하세요.

    • 이 역할이 secretsmanager:GetSecretValue에 대해 암호에 액세스할 수 있는 권한을 제공하는지 확인하세요.

      참고

      정책에서 보안 암호의 ARN을 지정해야 합니다. ARN에는 보안 암호 이름이 포함되지만 이름에 임의의 영숫자 6자를 추가합니다. 보안 암호의 ARN 형식은 다음과 같습니다.

      arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
    • 사용자의 이전 요청을 처리할 때 커넥터가 리소스에 액세스할 수 있도록 허용하는 신뢰 관계가 이 역할에 포함되어 있는지 확인하세요. 신뢰 관계 설정에 대한 자세한 내용은 신뢰 관계를 구축하기 위해을 참조하세요.

    다음 예제에서는 Amazon S33의 amzn-s3-demo-bucket과 Secrets Manager에 저장된 지정된 보안 암호에 액세스하는 데 필요한 권한을 부여합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters" } ] }
    참고

    액세스 역할의 경우, 예는 단일 암호에 대한 액세스 권한을 부여합니다. 하지만 와일드카드 문자를 사용하면 여러 사용자 및 암호에 대해 동일한 IAM 역할을 재사용하려는 경우 작업을 줄일 수 있습니다. 예컨대, 다음 리소스 명령문은 aws/transfer으로 시작하는 이름을 가진 모든 암호에 대한 권한을 부여합니다.

    "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"

    SFTP 자격 증명이 포함된 암호를 다른 AWS 계정에 저장할 수도 있습니다. 교차 계정 보안 암호 액세스를 활성화하는 방법에 대한 자세한 내용은 다른 계정의 사용자에 대한 AWS Secrets Manager 보안 암호 권한을 참조하세요.

  • (옵션) CloudWatch 로그에 이벤트를 푸시하는 데 사용할 커넥터의 IAM 역할을 선택합니다. 다음 예제 정책은 SFTP 커넥터에 대한 이벤트를 로깅하는 데 필요한 권한을 나열합니다.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "SFTPConnectorPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/transfer/*" ] }] }
  • 다음 SFTP 구성 정보를 제공하세요.

    • SFTP 사용자의 프라이빗 키 또는 암호 AWS Secrets Manager 가 포함된의 보안 암호 ARN입니다.

    • 외부 서버를 식별하는 데 사용되는 호스트 키의 공개 부분입니다. 원하는 경우 신뢰 호스트 키를 여러 개 제공할 수 있습니다.

    SFTP 정보를 제공하는 가장 쉬운 방법은 SFTP 정보를 파일에 저장하는 것입니다. 예컨대, 다음 예 텍스트를 testSFTPConfig.json이라는 파일에 복사합니다.

    // Listing for testSFTPConfig.json { "UserSecretId": "arn:aws::secretsmanager:us-east-2:123456789012:secret:aws/transfer/example-username-key", "TrustedHostKeys": [ "sftp.example.com ssh-rsa AAAAbbbb...EEEE=" ] }
  • 커넥터의 보안 정책을 지정하고 보안 정책 이름을 입력합니다.

참고

SecretId는 전체 ARN이거나 암호 이름(이전 목록의 example-username-key)일 수 있습니다.

이제 다음 명령을 실행하여 커넥터를 생성합니다.

aws transfer create-connector --url "sftp://partner-SFTP-server-url" \ --access-role your-IAM-role-for-bucket-access \ --logging-role arn:aws:iam::your-account-id:role/service-role/AWSTransferLoggingAccess \ --sftp-config file:///path/to/testSFTPConfig.json --security-policy-name security-policy-name --maximum-concurrent-connections integer-from-1-to-5