SFTP 커넥터 구성 - AWS Transfer Family

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

SFTP 커넥터 구성

이 주제에서는 SFTP 커넥터를 생성하는 방법, 커넥터와 연결된 보안 알고리즘, 보안 인증 정보를 보관할 보안 암호를 저장하는 방법, 프라이빗 키 형식 지정에 대한 세부 정보 및 커넥터 테스트 지침을 설명합니다.

SFTP 커넥터 생성

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

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

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

  3. 커넥터 유형을 SFTP 선택하여 SFTP 커넥터를 생성한 다음 다음 를 선택합니다.

    Transfer Family 콘솔에는 커넥터 타입을 선택할 수 있는 커넥터 생성 페이지가 표시됩니다. SFTP 가 선택되었습니다.
  4. 커넥터 구성 섹션에서 다음 정보를 제공합니다:

    • 에 원격 SFTP 서버의 URL를 URL입력합니다. 예를 들어 와 sftp://partner-SFTP-server-url같이 형식이 여야 URL 합니다sftp://AnyCompany.com.

      참고

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

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

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

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

        참고

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

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

      다음 예제에서는 에 액세스하는 데 필요한 권한을 부여합니다.DOC-EXAMPLE-BUCKET Amazon S3 Secrets Manager에 저장된 지정된 보안 암호.

      { "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/*" }, { "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/*" ] }] }
  5. SFTP 구성 섹션에서 다음 정보를 제공합니다.

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

    • 신뢰 호스트 키 - 외부 서버를 식별하는 데 사용되는 호스트 키의 공개 부분에 붙여 넣습니다. 신뢰 호스트 키 추가를 선택하여 키를 더 추가하면 키를 두 개 이상 추가할 수 있습니다. SFTP 서버에 대한 ssh-keyscan 명령을 사용하여 필요한 키를 검색할 수 있습니다. Transfer Family가 지원하는 신뢰할 수 있는 호스트 키의 형식 및 유형에 대한 자세한 내용은 섹션을 참조하세요. SFTPConnectorConfig.

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

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

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

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

CLI

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

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

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

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

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

      참고

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

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

    다음 예제에서는 에 액세스하는 데 필요한 권한을 부여합니다.DOC-EXAMPLE-BUCKET Amazon S3 Secrets Manager에 저장된 지정된 보안 암호.

    { "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/*" }, { "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 정보를 제공하는 가장 쉬운 방법은 파일에 저장하는 것입니다. 예컨대, 다음 예 텍스트를 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

SFTP 커넥터 알고리즘

SFTP 커넥터를 생성하면 다음 보안 알고리즘이 커넥터에 연결됩니다.

유형 알고리즘
SSH 암호

aes256-gcm@openssh.com

aes128-gcm@openssh.com

aes256-ctr

aes192-ctr

SSH 키 교환 메서드(KEX)

curve25519-sha256

curve25519-sha256@libssh.org

diffie-hellman-group16-sha512

diffie-hellman-group18-sha512

diffie-hellman-group-exchange-sha256

SSH MAC

hmac-sha2-512-etm@openssh.com

hmac-sha2-256-etm@openssh.com

hmac-sha2-512

hmac-sha2-256

SSH 호스트 키

ecdsa-sha2-nistp256

ecdsa-sha2-nistp384

ecdsa-sha2-nistp521

rsa-sha2-512

rsa-sha2-256

SFTP 커넥터와 함께 사용할 보안 암호 저장

Secrets Manager를 사용하여 SFTP 커넥터에 대한 사용자 보안 인증을 저장할 수 있습니다. 암호를 생성할 때 사용자 이름을 입력해야 합니다. 또한 암호, 프라이빗 키 또는 둘 다 제공할 수 있습니다. 세부 정보는 SFTP 커넥터 할당량을 참조하세요.

참고

Secrets Manager에 암호를 저장하면 AWS 계정 에 요금이 발생합니다. 요금에 대한 자세한 내용은 AWS Secrets Manager 요금을 참조하세요.

SFTP 커넥터의 Secrets Manager에 사용자 자격 증명을 저장하려면
  1. 에 로그인 AWS Management Console 하고 에서 AWS Secrets Manager 콘솔을 엽니다https://console.aws.amazon.com/secretsmanager/.

  2. 왼쪽 탐색 창에서 암호를 선택합니다.

  3. 암호 페이지에서 새 암호 저장을 선택합니다.

  4. 암호 선택 페이지의 암호 타입에서 다른 타입의 암호를 선택합니다.

  5. 키/값 쌍 섹션에서 키/값 탭을 선택합니다.

    • - Username를 입력합니다.

    • - 파트너 서버에 연결할 권한이 있는 사용자의 이름을 입력합니다.

  6. 암호를 제공하려면 행 추가를 선택하고 키/값 쌍 섹션에서 키/값 탭을 선택합니다.

    행 추가를 선택하고 키/값 쌍 섹션에서 키/값 탭을 선택합니다.

    • - Password를 입력합니다.

    • – 사용자의 암호를 입력합니다.

  7. 프라이빗 키를 제공하려면 프라이빗 키 데이터를 입력하는 방법에 대해 설명하는 SFTP 커넥터 프라이빗 키 생성 및 형식 지정 섹션을 참조하세요.

    참고

    입력한 프라이빗 키 데이터는 원격 SFTP 서버에 이 사용자에 대해 저장된 퍼블릭 키와 일치해야 합니다.

  8. Next(다음)를 선택합니다.

  9. 암호 구성 페이지에 암호를 위한 명칭과 설명을 입력합니다. 이름에 aws/transfer/이라는 접두사를 사용하는 것이 좋습니다. 예컨대, 암호 aws/transfer/connector-1을 지정할 수 있습니다.

  10. 다음을 선택한 후 교체 구성 페이지의 기본값을 그대로 사용합니다. 그 다음 다음을 선택합니다.

  11. 검토 페이지에서 저장을 선택하여 암호를 만들고 저장합니다.

SFTP 커넥터 프라이빗 키 생성 및 형식 지정

퍼블릭/프라이빗 키 페어를 생성하기 위한 전체 세부 정보는 에 설명되어 있습니다macOS, Linux 또는 Unix에서 SSH 키 생성.

예를 들어 SFTP 커넥터와 함께 사용할 프라이빗 키를 생성하려면 다음 샘플 명령이 올바른 유형의 키를 생성합니다(교체 key_name 키 페어의 실제 파일 이름과 함께):

ssh-keygen -t rsa -b 4096 -m PEM -f key_name -N ""
참고

SFTP 커넥터와 함께 사용할 키 페어를 생성할 때는 암호문을 사용하지 마세요. SFTP 구성이 올바르게 작동하려면 빈 암호가 필요합니다.

이 명령은 RSA 키 크기가 4096비트인 키 페어를 생성합니다. 키는 SFTP 커넥터 보안 암호와 함께 사용하기 위해 Transfer Family에서 요구하는 레거시 PEM 형식으로 생성됩니다. 키는 현재 디렉터리, 즉 ssh-keygen 명령을 실행하는 디렉터리의 key_name (프라이빗 키) 및 key_name.pub (퍼블릭 키)에 저장됩니다.

참고

Transfer Family는 SFTP 커넥터에 사용되는 키에 대해 OpenSSH 형식(-----BEGIN OPENSSH PRIVATE KEY-----)을 지원하지 않습니다. 키는 레거시 PEM 형식(-----BEGIN RSA PRIVATE KEY----- 또는 -----BEGIN EC PRIVATE KEY----- )이어야 합니다. ssh-keygen 도구를 사용하여 명령을 실행할 때 -m PEM 옵션을 제공하여 키를 변환할 수 있습니다.

키를 생성한 후 프라이빗 키의 형식이 포함된 새 줄 문자('\n')로 JSON 지정되어 있는지 확인해야 합니다.

명령을 사용하여 기존 프라이빗 키를 올바른 형식, 즉JSON 새 줄 문자가 포함된 형식으로 변환합니다. 여기에서jq는 및 Powershell에 대한 예를 제공합니다. 프라이빗 키를 새 줄 문자가 포함된 JSON 형식으로 변환하려는 모든 도구 또는 명령을 사용할 수 있습니다.

jq command

이 예제에서는 Download jq 에서 다운로드할 수 있는 jq 명령을 사용합니다.

jq -sR . path-to-private-key-file

예를 들어 프라이빗 키 파일이 에 있는 경우 ~/.ssh/my_private_key명령은 다음과 같습니다.

jq -sR . ~/.ssh/my_private_key

이렇게 하면 키를 올바른 형식(새 줄 문자가 포함된)으로 표준 출력으로 출력합니다.

PowerShell

Windows를 사용하는 경우 PowerShell 를 사용하여 키를 올바른 형식으로 변환할 수 있습니다. 다음 Powershell 명령은 프라이빗 키를 올바른 형식으로 변환합니다.

Get-Content -Raw path-to-private-key-file | ConvertTo-Json
SFTP 커넥터와 함께 사용할 프라이빗 키 데이터를 보안 암호에 추가하려면
  1. Secrets Manager 콘솔에서 기타 타입의 암호를 저장할 때 일반 텍스트 탭을 선택합니다. 텍스트는 비어 있어야 하며 여는 중괄호와 닫는 중괄호({})만 있어야 합니다.

  2. 다음 형식을 사용하여 사용자 이름, 프라이빗 키 데이터 및/또는 암호를 붙여 넣습니다. 프라이빗 키 데이터의 경우 1단계에서 실행한 명령의 출력을 붙여 넣습니다.

    {"Username":"SFTP-USER","Password":"SFTP-USER-PASSWORD","PrivateKey":"PASTE-PRIVATE-KEY-DATA-HERE"}
    암호는 일반 텍스트로, 샘플 텍스트를 보여 줍니다.

    프라이빗 키 데이터를 올바르게 붙여 넣으면 키/값 탭을 선택할 때 다음과 같은 내용이 표시됩니다. 프라이빗 키 데이터는 연속 텍스트 문자열 line-by-line이 아닌 로 표시됩니다.

    키/값 탭에 세부 정보를 보여주는 암호입니다.
  3. 8단계의 SFTP 커넥터와 함께 사용할 보안 암호 저장의 절차를 계속하고 끝까지 해당 절차를 따르세요.

SFTP 커넥터 테스트

SFTP 커넥터를 생성한 후에는 새 커넥터를 사용하여 파일을 전송하기 전에 테스트하는 것이 좋습니다.

SFTP 커넥터를 테스트하려면
  1. 에서 AWS Transfer Family 콘솔을 엽니다https://console.aws.amazon.com/transfer/.

  2. 왼쪽 탐색 창에서 커넥터를 선택하고 커넥터를 선택합니다.

  3. 작업 메뉴에서 테스트 연겨을 선택합니다.

    선택한 SFTP 커넥터를 보여주는 Transfer Family 콘솔과 연결 테스트 연결 작업이 강조 표시됩니다.

시스템은 테스트의 통과 또는 실패 여부를 나타내는 메시지를 반환합니다. 테스트가 실패하면 시스템은 테스트 실패 이유를 기반으로 오류 메시지를 제공합니다.

성공적인 테스트를 보여주는 SFTP 커넥터 테스트 연결 패널입니다.
실패한 테스트를 보여주는 SFTP 커넥터 테스트 연결 패널: 오류 메시지는 커넥터의 액세스 역할이 잘못되었음을 나타냅니다.
참고

API 를 사용하여 커넥터를 테스트하려면 TestConnection API 설명서.