기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이 주제에서는 SFTP 커넥터를 생성하는 방법, 커넥터와 연결된 보안 알고리즘, 보안 인증 정보를 보관할 보안 암호를 저장하는 방법, 프라이빗 키 형식 지정에 대한 세부 정보 및 커넥터 테스트 지침을 설명합니다.
SFTP 커넥터 생성
이 절차에서는 AWS Transfer Family 콘솔 또는 를 사용하여 SFTP 커넥터를 생성하는 방법을 설명합니다 AWS CLI.
- Console
-
SFTP 커넥터를 생성하려면
-
에서 AWS Transfer Family 콘솔을 엽니다https://console.aws.amazon.com/transfer/.
-
왼쪽 탐색 창에서 커넥터를 선택한 다음 커넥터 생성을 선택합니다.
-
커넥터 유형을 SFTP 선택하여 SFTP 커넥터를 생성한 다음 다음 를 선택합니다.
-
커넥터 구성 섹션에서 다음 정보를 제공합니다:
-
에 원격 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/*"
]
}]
}
-
SFTP 구성 섹션에서 다음 정보를 제공합니다.
-
커넥터 보안 인증 정보 의 드롭다운 목록에서 SFTP 사용자의 프라이빗 키 또는 암호 AWS Secrets Manager 가 포함된 의 보안 암호 이름을 선택합니다. 암호를 생성하여 특정 방식으로 저장해야 합니다. 자세한 내용은 SFTP 커넥터와 함께 사용할 보안 암호 저장를 참조하세요.
-
신뢰 호스트 키 - 외부 서버를 식별하는 데 사용되는 호스트 키의 공개 부분에 붙여 넣습니다. 신뢰 호스트 키 추가를 선택하여 키를 더 추가하면 키를 두 개 이상 추가할 수 있습니다. SFTP 서버에 대한 ssh-keyscan
명령을 사용하여 필요한 키를 검색할 수 있습니다. Transfer Family가 지원하는 신뢰할 수 있는 호스트 키의 형식 및 유형에 대한 자세한 내용은 섹션을 참조하세요. SFTPConnectorConfig.
-
(옵션) 태그 섹션에서 키 및 값에 하나 이상의 태그를 키-값 쌍을 입력합니다.
-
모든 설정을 확인한 후 커넥터 생성을 선택하여 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 정보를 제공하는 가장 쉬운 방법은 파일에 저장하는 것입니다. 예컨대, 다음 예 텍스트를 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 커넥터 할당량을 참조하세요.
SFTP 커넥터의 Secrets Manager에 사용자 자격 증명을 저장하려면
-
에 로그인 AWS Management Console 하고 에서 AWS Secrets Manager 콘솔을 엽니다https://console.aws.amazon.com/secretsmanager/.
-
왼쪽 탐색 창에서 암호를 선택합니다.
-
암호 페이지에서 새 암호 저장을 선택합니다.
-
암호 선택 페이지의 암호 타입에서 다른 타입의 암호를 선택합니다.
-
키/값 쌍 섹션에서 키/값 탭을 선택합니다.
-
암호를 제공하려면 행 추가를 선택하고 키/값 쌍 섹션에서 키/값 탭을 선택합니다.
행 추가를 선택하고 키/값 쌍 섹션에서 키/값 탭을 선택합니다.
-
키 - Password
를 입력합니다.
-
값 – 사용자의 암호를 입력합니다.
-
프라이빗 키를 제공하려면 프라이빗 키 데이터를 입력하는 방법에 대해 설명하는 SFTP 커넥터 프라이빗 키 생성 및 형식 지정 섹션을 참조하세요.
입력한 프라이빗 키 데이터는 원격 SFTP 서버에 이 사용자에 대해 저장된 퍼블릭 키와 일치해야 합니다.
-
Next(다음)를 선택합니다.
-
암호 구성 페이지에 암호를 위한 명칭과 설명을 입력합니다. 이름에 aws/transfer/
이라는 접두사를 사용하는 것이 좋습니다. 예컨대, 암호 aws/transfer/connector-1
을 지정할 수 있습니다.
-
다음을 선택한 후 교체 구성 페이지의 기본값을 그대로 사용합니다. 그 다음 다음을 선택합니다.
-
검토 페이지에서 저장을 선택하여 암호를 만들고 저장합니다.
퍼블릭/프라이빗 키 페어를 생성하기 위한 전체 세부 정보는 에 설명되어 있습니다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 커넥터와 함께 사용할 프라이빗 키 데이터를 보안 암호에 추가하려면
-
Secrets Manager 콘솔에서 기타 타입의 암호를 저장할 때 일반 텍스트 탭을 선택합니다. 텍스트는 비어 있어야 하며 여는 중괄호와 닫는 중괄호({})만 있어야 합니다.
-
다음 형식을 사용하여 사용자 이름, 프라이빗 키 데이터 및/또는 암호를 붙여 넣습니다. 프라이빗 키 데이터의 경우 1단계에서 실행한 명령의 출력을 붙여 넣습니다.
{"Username":"SFTP-USER
","Password":"SFTP-USER-PASSWORD
","PrivateKey":"PASTE-PRIVATE-KEY-DATA-HERE
"}
프라이빗 키 데이터를 올바르게 붙여 넣으면 키/값 탭을 선택할 때 다음과 같은 내용이 표시됩니다. 프라이빗 키 데이터는 연속 텍스트 문자열 line-by-line이 아닌 로 표시됩니다.
-
8단계의 SFTP 커넥터와 함께 사용할 보안 암호 저장의 절차를 계속하고 끝까지 해당 절차를 따르세요.
SFTP 커넥터 테스트
SFTP 커넥터를 생성한 후에는 새 커넥터를 사용하여 파일을 전송하기 전에 테스트하는 것이 좋습니다.
시스템은 테스트의 통과 또는 실패 여부를 나타내는 메시지를 반환합니다. 테스트가 실패하면 시스템은 테스트 실패 이유를 기반으로 오류 메시지를 제공합니다.