

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

# 의 보안 AWS Transfer Family
<a name="security"></a>

의 클라우드 보안 AWS 이 최우선 순위입니다. AWS 고객은 보안에 가장 민감한 조직의 요구 사항을 충족하도록 구축된 데이터 센터 및 네트워크 아키텍처의 이점을 누릴 수 있습니다.

보안은 AWS 와 사용자 간의 공동 책임입니다. [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/)은 이를 클라우드*의* 보안과 클라우드 *내* 보안으로 설명합니다.

 AWS 서비스 가 특정 규정 준수 프로그램의 범위 내에 있는지 알아보려면 [AWS 서비스 규정 준수 프로그램 범위 내](https://aws.amazon.com/compliance/services-in-scope/) 참조하고 관심 있는 규정 준수 프로그램을 선택합니다. 일반 정보는 [AWS 규정 준수 프로그램](https://aws.amazon.com/compliance/programs/).

를 사용하여 타사 감사 보고서를 다운로드할 수 있습니다 AWS Artifact. 자세한 내용은 [에서 보고서 다운로드 AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)에서 .

사용 시 규정 준수 책임은 데이터의 민감도, 회사의 규정 준수 목표 및 관련 법률과 규정에 따라 AWS 서비스 결정됩니다. 사용 시 규정 준수 책임에 대한 자세한 내용은 [AWS 보안 설명서를](https://docs.aws.amazon.com/security/) AWS 서비스참조하세요.

이 설명서는를 사용할 때 공동 책임 모델을 적용하는 방법을 이해하는 데 도움이 됩니다 AWS Transfer Family. 다음 주제에서는 보안 및 규정 준수 목표를 충족하도록 AWS Transfer Family 를 구성하는 방법을 보여줍니다. 또한 AWS Transfer Family 리소스를 모니터링하고 보호하는 데 도움이 되는 다른 AWS 서비스를 사용하는 방법을 알아봅니다.

기존 애플리케이션을 수정하거나 서버 인프라를 관리할 필요 AWS 없이에서 확장 가능하고 안전한 파일 전송 아키텍처를 구축하는 방법에 대한 규범적 지침과 실습을 제공하는 워크숍을 제공합니다. 이 워크숍의 세부 정보는 [여기](https://catalog.workshops.aws/basic-security-workshop-transfer-family/en-US)에서 확인할 수 있습니다.

**Topics**
+ [VPC 연결 보안 이점](#vpc-connectivity-security)
+ [AWS Transfer Family 서버에 대한 보안 정책](security-policies.md)
+ [AWS Transfer Family SFTP 커넥터에 대한 보안 정책](security-policies-connectors.md)
+ [에서 하이브리드 포스트 양자 키 교환 사용 AWS Transfer Family](post-quantum-security-policies.md)
+ [데이터 보호 및 암호화](encryption-at-rest.md)
+ [Transfer Family에서 SSH 및 PGP 키 관리](key-management.md)
+ [에 대한 자격 증명 및 액세스 관리 AWS Transfer Family](security-iam.md)
+ [에 대한 규정 준수 검증 AWS Transfer Family](transfer-compliance.md)
+ [의 복원력 AWS Transfer Family](disaster-recovery-resiliency.md)
+ [VPC와 AWS Transfer Family APIs 간에 프라이빗 연결 생성](vpc-api-endpoints.md)
+ [의 인프라 보안 AWS Transfer Family](infrastructure-security.md)
+ [웹 애플리케이션 방화벽 추가](web-application-firewall.md)
+ [교차 서비스 혼동된 대리자 방지](confused-deputy.md)
+ [AWS AWS Transfer Family에 대한 관리형 정책](security-iam-awsmanpol.md)

## VPC 연결 보안 이점
<a name="vpc-connectivity-security"></a>

VPC 송신 유형의 SFTP 커넥터는 VPC 간 리소스 액세스를 통해 향상된 보안 이점을 제공합니다.
+ **네트워크 격리**: 모든 트래픽은 VPC 환경 내에 유지되므로 프라이빗 엔드포인트 연결을 위해 퍼블릭 인터넷에서 완전한 네트워크 격리가 가능합니다.
+ **소스 IP 제어**: 원격 SFTP 서버는 VPC CIDR 범위의 IP 주소만 표시하므로 연결에 사용되는 소스 IP 주소를 완전히 제어할 수 있습니다.
+ **프라이빗 엔드포인트 액세스**: 프라이빗 IP 주소를 사용하여 VPC의 SFTP 서버에 직접 연결하여 퍼블릭 인터넷에 노출되지 않도록 합니다.
+ **하이브리드 연결**: 추가 인터넷 노출 없이 설정된 VPN 또는 Direct Connect 연결을 통해 온프레미스 SFTP 서버에 안전하게 액세스합니다.
+ **VPC 보안 제어**: 기존 VPC 보안 그룹, NACLs 및 라우팅 정책을 활용하여 SFTP 커넥터 트래픽을 제어하고 모니터링합니다.

### VPC Lattice 보안 모델
<a name="vpc-lattice-security-model"></a>

SFTP 커넥터에 대한 VPC 연결은 서비스 네트워크와 함께 AWS VPC Lattice를 사용하여 안전한 멀티 테넌트 액세스를 제공합니다.
+ **혼동된 대리자 방지**: 인증 및 권한 부여 검사는 커넥터가 구성된 특정 리소스에만 액세스할 수 있도록 하여 무단 테넌트 간 액세스를 방지합니다.
+ **IPv6-only 서비스 네트워크**: IPv6 주소 지정을 사용하여 잠재적 IP 주소 충돌을 방지하고 보안 격리를 강화합니다.
+ **전달 액세스 세션(FAS)**: 임시 자격 증명 처리를 사용하면 장기 자격 증명 스토리지 또는 수동 리소스 공유가 필요하지 않습니다.
+ **리소스 수준 액세스 제어**: 각 커넥터는 특정 리소스 구성과 연결되어 개별 SFTP 서버에 대한 세분화된 액세스 제어를 보장합니다.

### VPC 연결에 대한 보안 모범 사례
<a name="vpc-security-best-practices"></a>

VPC 송신 유형 커넥터를 사용하는 경우 다음 보안 모범 사례를 따르세요.
+ **보안 그룹**: 필요한 리소스 간에만 SFTP 트래픽(포트 22)을 허용하도록 보안 그룹을 구성합니다. 소스 및 대상 IP 범위를 필요한 최소 범위로 제한합니다.
+ **Resource Gateway 배치**: 가능하면 프라이빗 서브넷에 Resource Gateway를 배포하고 고가용성을 위해 두 개 이상의 가용 영역에 걸쳐 있는지 확인합니다.
+ **네트워크 모니터링**: VPC 흐름 로그 및 Amazon CloudWatch를 사용하여 네트워크 트래픽 패턴을 모니터링하고 비정상적인 활동을 감지합니다.
+ **액세스 로깅**: 커넥터 로깅을 활성화하여 파일 전송 활동을 추적하고 규정 준수 요구 사항에 대한 감사 추적을 유지 관리합니다.
+ **리소스 구성 관리**: 리소스 구성을 정기적으로 검토하고 업데이트하여 올바른 SFTP 서버를 가리키고 적절한 네트워크 설정을 사용하는지 확인합니다.

# AWS Transfer Family 서버에 대한 보안 정책
<a name="security-policies"></a>

의 서버 보안 정책을 AWS Transfer Family 사용하면 서버와 연결된 암호화 알고리즘(메시지 인증 코드(MACs), 키 교환(KEXs), 암호 제품군, 콘텐츠 암호화 암호 및 해시 알고리즘) 세트를 제한할 수 있습니다.

AWS Transfer Family 는 하이브리드 키 교환 알고리즘을 사용하는 포스트 양자 보안 정책을 지원하여 기존 암호화 방법과 포스트 양자 알고리즘을 결합하여 향후 양자 컴퓨팅 위협에 대한 보안을 강화합니다. 세부 정보는에 나와 있습니다[에서 하이브리드 포스트 양자 키 교환 사용 AWS Transfer Family](post-quantum-security-policies.md).

지원되는 키 알고리즘 목록은 [암호화 알고리즘](#cryptographic-algorithms) 섹션을 참조하세요. 서버 호스트 키 및 서비스 관리 사용자 키와 함께 사용할 수 있는 지원되는 키 알고리즘 목록은 [Transfer Family에서 SSH 및 PGP 키 관리](key-management.md)를 참조하세요. 

**참고**  
서버를 최신 보안 정책으로 업데이트하는 것이 좋습니다.  
`TransferSecurityPolicy-2024-01`는 콘솔, API 또는 CLI를 사용하여 서버를 생성할 때 서버에 연결된 기본 보안 정책입니다.
CloudFormation을 사용하여 Transfer Family 서버를 생성하고 기본 보안 정책을 수락하면 서버에가 할당됩니다`TransferSecurityPolicy-2018-11`.
클라이언트 호환성이 우려되는 경우 기본 정책을 사용하는 대신 서버를 생성하거나 업데이트할 때 사용할 보안 정책을 명확하게 명시하십시오.이 정책은 변경될 수 있습니다. 서버의 보안 정책을 변경하려면 섹션을 참조하세요[보안 정책 편집](edit-server-config.md#edit-cryptographic-algorithm).

Transfer Family의 보안에 대한 자세한 내용은 다음 블로그 게시물을 참조하세요.
+ [AWS Transfer Family 서버 보안을 개선하기 위한 6가지 팁](https://aws.amazon.com/blogs/security/six-tips-to-improve-the-security-of-your-aws-transfer-family-server/)
+ [Transfer Family가 안전하고 규정을 준수하는 관리형 파일 전송 솔루션을 구축하는 데 도움이 되는 방법](https://aws.amazon.com/blogs/security/how-transfer-family-can-help-you-build-a-secure-compliant-managed-file-transfer-solution/)

**Topics**
+ [암호화 알고리즘](#cryptographic-algorithms)
+ [TransferSecurityPolicy-2024-01](#security-policy-transfer-2024-01)
+ [TransferSecurityPolicy-SshAuditCompliant-2025-02](#security-policy-transferSecurityPolicy-SshAuditCompliant-2025-02)
+ [TransferSecurityPolicy-2023-05](#security-policy-transfer-2023-05)
+ [TransferSecurityPolicy-2022-03](#security-policy-transfer-2022-03)
+ [TransferSecurityPolicy-2020-06 및 TransferSecurityPolicy-Restricted-2020-06](#security-policy-transfer-2020-06)
+ [TransferSecurityPolicy-2018-11 및 TransferSecurityPolicy-Restricted-2018-11](#security-policy-transfer-2018-11)
+ [TransferSecurityPolicy-FIPS-2024-01/TransferSecurityPolicy-FIPS-2024-05](#security-policy-transfer-fips-2024-01)
+ [TransferSecurityPolicy-FIPS-2023-05](#security-policy-transfer-fips-2023-05)
+ [TransferSecurityPolicy-FIPS-2020-06](#security-policy-transfer-fips-2020-06)
+ [TransferSecurityPolicy-AS2Restricted-2025-07](#as2-restricted-policy)
+ [포스트 퀀텀 보안 정책](#pq-policies)

## 암호화 알고리즘
<a name="cryptographic-algorithms"></a>

호스트 키의 경우 다음 알고리즘을 지원합니다.
+ `rsa-sha2-256`
+ `rsa-sha2-512`
+ `ecdsa-sha2-nistp256`
+ `ecdsa-sha2-nistp384`
+ `ecdsa-sha2-nistp521`
+ `ssh-ed25519`

또한 다음 보안 정책은를 허용합니다`ssh-rsa`.
+ TransferSecurityPolicy-2018-11
+ TransferSecurityPolicy-2020-06
+ TransferSecurityPolicy-FIPS-2020-06
+ TransferSecurityPolicy-FIPS-2023-05
+ TransferSecurityPolicy-FIPS-2024-01
+ TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04

**참고**  
항상 RSA 키 유형과 지원되는 알고리즘 중 하나일 수 있는 `ssh-rsa`RSA 호스트 키 알고리즘의 차이점을 이해하는 것이 중요합니다.

다음은 각 보안 정책에 지원되는 암호화 알고리즘 목록입니다.

**참고**  
다음 표 및 정책에서 다음과 같은 알고리즘 유형 사용에 유의하세요.  
SFTP 서버는 **SshCiphers**, **SshKexs** 및 **SshMacs** 섹션의 알고리즘만 사용합니다.
FTPS 서버는 **TlsCiphers** 섹션의 알고리즘만 사용합니다.
FTP 서버는 암호화를 사용하지 않으므로 이러한 알고리즘을 사용하지 마십시오.
AS2 서버는 **ContentEncryptionCiphers** 및 **HashAlgorithms** 섹션의 알고리즘만 사용합니다. 이 섹션에서는 파일 콘텐츠를 암호화하고 서명하는 데 사용되는 알고리즘을 정의합니다.
FIPS-2024-05 및 FIPS-2024-01 보안 정책은 FIPS-2024-05가 `ssh-rsa` 알고리즘을 지원하지 않는다는 점을 제외하면 동일합니다.
Transfer Family는 기존 정책과 매우 유사한 새로운 제한 정책을 도입했습니다.  
TransferSecurityPolicy-Restricted-2018-11 및 TransferSecurityPolicy-2018-11 보안 정책은 제한적 정책이 `chacha20-poly1305@openssh.com` 암호를 지원하지 않는다는 점을 제외하면 동일합니다.
TransferSecurityPolicy-Restricted-2020-06 및 TransferSecurityPolicy-2020-06 보안 정책은 제한 정책이 `chacha20-poly1305@openssh.com` 암호를 지원하지 않는다는 점을 제외하면 동일합니다.
\$1다음 표에서는 `chacha20-poly1305@openssh.com` 암호가 비제한 정책에만 포함됩니다.


| 보안 정책 | 2024-01 | SshAuditCompliant-2025-02 | 2023-05 | 2022-03 |  **2020년 6월** **2020년 6월 제한됨**  |  **FIPS-2024-05** **FIPS-2024-01**  | FIPS-2023-05 | FIPS-2020-06 |  **2018년 11월** **2018년 11월 제한됨**  | TransferSecurityPolicy-AS2Restricted-2025-07 | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
|  **SshCiphers**  | 
| --- |
|  aes128-ctr  | ♦ |  ♦  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  aes128-gcm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  aes192-ctr  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  aes256-ctr  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  aes256-gcm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  chacha20-poly1305@openssh.com  |  |  |  |     |  ♦\$1  |  |  |  |  ♦\$1  |  | 
|  **SshKexs**  | 
| --- |
|  mlkem768x25519-sha256  |  |  |  |  |  |  |  |  |  |  ♦  | 
|  mlkem768nistp256-sha256  |  |  |  |  |  |  |  |  |  |  ♦  | 
|  mlkem1024nistp384-sha384  |  |  |  |  |  |  |  |  |  |  ♦  | 
|  curve25519-sha256  | ♦ |  ♦  |  ♦  |  ♦  |     |  |  |     |  ♦  |  ♦  | 
|  curve25519-sha256@libssh.org  | ♦ |  ♦  |  ♦  |  ♦  |     |  |  |     |  ♦  |  ♦  | 
|  diffie-hellman-group14-sha1  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  diffie-hellman-group14-sha256  |  |  |  |     |  ♦  |  |  |  ♦  |  ♦  |  | 
|  diffie-hellman-group16-sha512  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
| diffie-hellman-group18-sha512  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
|  diffie-hellman-group-exchange-sha256  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  |  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp256  | ♦ |  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp384  | ♦ |  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp521  | ♦ |  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  **SshMacs**  | 
| --- |
|  hmac-sha1  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  hmac-sha1-etm@openssh.com  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  hmac-sha2-256  |  |  |  |  ♦  |  ♦  |  |  |  ♦  |  ♦  |  | 
|  hmac-sha2-256-etm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
|  hmac-sha2-512  |  |  |  |  ♦  |  ♦  |  |  |  ♦  |  ♦  |  | 
|  hmac-sha2-512-etm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
|  umac-128-etm@openssh.com  |  |  |  |     |  ♦  |  |  |     |  ♦  |  | 
|  umac-128@openssh.com  |  |  |  |     |  ♦  |  |  |     |  ♦  |  | 
|  umac-64-etm@openssh.com  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  umac-64@openssh.com  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  **ContentEncryptionCiphers**  | 
| --- |
|  aes256-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  aes192-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  aes128-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  | ♦ | 
|  3des-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  | 
|  **HashAlgorithms**  | 
| --- |
|  sha256  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  sha384  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  sha512  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  sha1  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  | 
|  **TlsCiphers**  | 
| --- |
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  |  |     |     |     |  |     |     |  ♦  |  | 
|  TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256  |  |  |     |     |     |  |     |     |  ♦  |  | 

## TransferSecurityPolicy-2024-01
<a name="security-policy-transfer-2024-01"></a>

다음은 TransferSecurityPolicy-2024-01 보안 정책을 보여줍니다.

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-2024-01",
        "SshCiphers": [
            "aes128-gcm@openssh.com",
            "aes256-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc",
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512",
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-SshAuditCompliant-2025-02
<a name="security-policy-transferSecurityPolicy-SshAuditCompliant-2025-02"></a>

다음은 TransferSecurityPolicy-SshAuditCompliant-2025-02 보안 정책을 보여줍니다.

**참고**  
이 보안 정책은 `ssh-audit` 도구에서 제공하는 권장 사항을 중심으로 설계되었으며 해당 도구를 100% 준수합니다.

```
{
  "SecurityPolicy": {
    "Fips": false,
    "Protocols": [
      "SFTP",
      "FTPS"
    ],
    "SecurityPolicyName": "TransferSecurityPolicy-SshAuditCompliant-2025-02",
    "SshCiphers": [
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com",
      "aes128-ctr",
      "aes256-ctr",
      "aes192-ctr"
    ],
    "SshKexs": [
      "curve25519-sha256",
      "curve25519-sha256@libssh.org",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group-exchange-sha256"
    ],
    "SshMacs": [
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc",
      "3des-cbc"
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512",
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ],
    "Type": "SERVER"
  }
}
```

## TransferSecurityPolicy-2023-05
<a name="security-policy-transfer-2023-05"></a>

다음은 TransferSecurityPolicy-2023-05 보안 정책을 보여줍니다.

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-2023-05",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-512-etm@openssh.com",
            "hmac-sha2-256-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc",
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512",
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-2022-03
<a name="security-policy-transfer-2022-03"></a>

다음은 TransferSecurityPolicy-2022-03 보안 정책을 보여줍니다.

```
{
  "SecurityPolicy": {
    "Fips": false,
    "SecurityPolicyName": "TransferSecurityPolicy-2022-03",
    "SshCiphers": [
      "aes256-gcm@openssh.com",
      "aes128-gcm@openssh.com",
      "aes256-ctr",
      "aes192-ctr"
    ],
    "SshKexs": [
      "curve25519-sha256",
      "curve25519-sha256@libssh.org",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group-exchange-sha256"
    ],
    "SshMacs": [
      "hmac-sha2-512-etm@openssh.com",
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512",
      "hmac-sha2-256"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
      "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512"
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", 
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", 
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", 
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", 
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", 
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", 
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ]
  }
}
```

## TransferSecurityPolicy-2020-06 및 TransferSecurityPolicy-Restricted-2020-06
<a name="security-policy-transfer-2020-06"></a>

다음은 TransferSecurityPolicy-2020-06 보안 정책을 보여줍니다.

**참고**  
TransferSecurityPolicy-Restricted-2020-06 및 TransferSecurityPolicy-2020-06 보안 정책은 제한 정책이 `chacha20-poly1305@openssh.com` 암호를 지원하지 않는다는 점을 제외하면 동일합니다.

```
{
  "SecurityPolicy": {
    "Fips": false,
    "SecurityPolicyName": "TransferSecurityPolicy-2020-06",
    "SshCiphers": [
      "chacha20-poly1305@openssh.com", //Not included in TransferSecurityPolicy-Restricted-2020-06
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com"
    ],
    "SshKexs": [
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group14-sha256"
    ],
    "SshMacs": [
      "umac-128-etm@openssh.com",
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com",
      "umac-128@openssh.com",
      "hmac-sha2-256",
      "hmac-sha2-512"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
            "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512"
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ]
  }
}
```

## TransferSecurityPolicy-2018-11 및 TransferSecurityPolicy-Restricted-2018-11
<a name="security-policy-transfer-2018-11"></a>

다음은 TransferSecurityPolicy-2018-11 보안 정책을 보여줍니다.

**참고**  
TransferSecurityPolicy-Restricted-2018-11 및 TransferSecurityPolicy-2018-11 보안 정책은 제한 정책이 `chacha20-poly1305@openssh.com` 암호를 지원하지 않는다는 점을 제외하면 동일합니다.

```
{
  "SecurityPolicy": {
    "Fips": false,
    "SecurityPolicyName": "TransferSecurityPolicy-2018-11",
    "SshCiphers": [
      "chacha20-poly1305@openssh.com", //Not included in TransferSecurityPolicy-Restricted-2018-11
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com"
    ],
    "SshKexs": [
      "curve25519-sha256",
      "curve25519-sha256@libssh.org",
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group14-sha256",
      "diffie-hellman-group14-sha1"
    ],
    "SshMacs": [
      "umac-64-etm@openssh.com",
      "umac-128-etm@openssh.com",
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com",
      "hmac-sha1-etm@openssh.com",
      "umac-64@openssh.com",
      "umac-128@openssh.com",
      "hmac-sha2-256",
      "hmac-sha2-512",
      "hmac-sha1"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
            "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512",
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
      "TLS_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_RSA_WITH_AES_256_CBC_SHA256"
    ]
  }
}
```

## TransferSecurityPolicy-FIPS-2024-01/TransferSecurityPolicy-FIPS-2024-05
<a name="security-policy-transfer-fips-2024-01"></a>

다음은 TransferSecurityPolicy-FIPS-2024-01 및 TransferSecurityPolicy-FIPS-2024-05 보안 정책을 보여줍니다.

**참고**  
FIPS 서비스 엔드포인트 및 TransferSecurityPolicy-FIPS-2024-01 및 TransferSecurityPolicy-FIPS-2024-05 보안 정책은 일부 AWS 리전에서만 사용할 수 있습니다. 자세한 내용은AWS 일반 참조에서 [AWS Transfer Family 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html)을 참조하세요.**  
이 두 보안 정책의 유일한 차이점은 TransferSecurityPolicy-FIPS-2024-01이 `ssh-rsa` 알고리즘을 지원하고 TransferSecurityPolicy-FIPS-2024-05는 지원하지 않는다는 것입니다.

```
{
    "SecurityPolicy": {
        "Fips": true,
        "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2024-01",
        "SshCiphers": [
            "aes128-gcm@openssh.com",
            "aes256-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-FIPS-2023-05
<a name="security-policy-transfer-fips-2023-05"></a>

에 대한 FIPS 인증 세부 정보는에서 확인할 AWS Transfer Family 수 있습니다. [https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all](https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all) 

다음은 TransferSecurityPolicy-FIPS-2023-05 보안 정책을 보여줍니다.

**참고**  
FIPS 서비스 엔드포인트 및 TransferSecurityPolicy-FIPS-2023-05 보안 정책은 일부 AWS 리전에서만 사용할 수 있습니다. 자세한 내용은 *AWS 일반 참조*의 [AWS Transfer Family 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html)을 참조하세요.

```
{
    "SecurityPolicy": {
        "Fips": true,
        "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2023-05",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-FIPS-2020-06
<a name="security-policy-transfer-fips-2020-06"></a>

에 대한 FIPS 인증 세부 정보는에서 확인할 AWS Transfer Family 수 있습니다. [https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all](https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all) 

다음은 TransferSecurityPolicy-FIPS-2020-06 보안 정책을 보여줍니다.

**참고**  
FIPS 서비스 엔드포인트 및 TransferSecurityPolicy-FIPS-2020-06 보안 정책은 일부 AWS 리전에서만 사용할 수 있습니다. 자세한 내용은AWS 일반 참조에서 [AWS Transfer Family 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html)을 참조하세요.**

```
{
  "SecurityPolicy": {
    "Fips": true,
    "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2020-06",
    "SshCiphers": [
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com"
    ],
    "SshKexs": [
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group14-sha256"
    ],
    "SshMacs": [
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com",
      "hmac-sha2-256",
      "hmac-sha2-512"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
            "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512"
            "sha1",
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ]
  }
}
```

## TransferSecurityPolicy-AS2Restricted-2025-07
<a name="as2-restricted-policy"></a>

이 보안 정책은 레거시 암호화 알고리즘을 제외하여 보안을 강화해야 하는 AS2 파일 전송을 위해 설계되었습니다. 3DES 및 SHA-1과 같은 약한 알고리즘에 대한 지원을 제거하면서 최신 AES 암호화 및 SHA-2 해시 알고리즘을 지원합니다. SHA-1

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-AS2Restricted-2025-07",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
            "AS2"
        ]
    }
}
```

## 포스트 퀀텀 보안 정책
<a name="pq-policies"></a>

이 표에는 Transfer Family 포스트 퀀텀 보안 정책의 알고리즘이 나열되어 있습니다. 이러한 정책은 [에서 하이브리드 포스트 양자 키 교환 사용 AWS Transfer Family](post-quantum-security-policies.md)에 자세히 설명되어 있습니다.

정책 목록은 표 뒤에 나와 있습니다.

**참고**  
이전의 포스트 양자 정책(**TransferSecurityPolicy-PQ-SSH-Experimental-2023-04** 및 **TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04**는 더 이상 사용되지 않습니다. 대신 새 정책을 사용하는 것이 좋습니다.


| 보안 정책 | TransferSecurityPolicy-2025-03 | TransferSecurityPolicy-FIPS-2025-03 | 
| --- |--- |--- |
|  **SSH ciphers**  | 
| --- |
|  aes128-ctr  |  ♦  |  ♦  | 
|  aes128-gcm@openssh.com  |  ♦  |  ♦  | 
|  aes192-ctr  |  ♦  |  ♦  | 
|  aes256-ctr  |  ♦  |  ♦  | 
|  aes256-gcm@openssh.com  |  ♦  |  ♦  | 
|  **KEXs**  | 
| --- |
| mlkem768x25519-sha256 |  ♦  |  ♦  | 
| mlkem768nistp256-sha256 |  ♦  |  ♦  | 
| mlkem1024nistp384-sha384 |  ♦  |  ♦  | 
|  diffie-hellman-group14-sha256  | ♦ | ♦ | 
|  diffie-hellman-group16-sha512  |  ♦  |  ♦  | 
|  diffie-hellman-group18-sha512  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp384  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp521  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp256  |  ♦  |  ♦  | 
|  diffie-hellman-group-exchange-sha256  |  ♦  |  ♦  | 
|  curve25519-sha256@libssh.org  |  ♦  |     | 
|  curve25519-sha256  |  ♦  |     | 
|  **MACs**  | 
| --- |
|  hmac-sha2-256-etm@openssh.com  |  ♦  |  ♦  | 
|  hmac-sha2-512-etm@openssh.com  |  ♦  |  ♦  | 
|  **ContentEncryptionCiphers**  | 
| --- |
|  aes256-cbc  |  ♦  |  ♦  | 
|  aes192-cbc  |  ♦  |  ♦  | 
|  aes128-cbc |  ♦  |  ♦  | 
|  3des-cbc |  ♦  |  ♦  | 
|  **HashAlgorithms**  | 
| --- |
|  sha256  |  ♦  |  ♦  | 
|  sha384  |  ♦  |  ♦  | 
|  sha512  |  ♦  |  ♦  | 
|  sha1  |  ♦  |  ♦  | 
|  **TLS ciphers**  | 
| --- |
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  ♦  |  ♦  | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  ♦  |  ♦  | 

### TransferSecurityPolicy-2025-03
<a name="security-policy-transfer-2025-03"></a>

다음은 TransferSecurityPolicy-2025-03 보안 정책을 보여줍니다.

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-2025-03",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
           "SFTP",
           "FTPS"
        ]
    }
}
```

### TransferSecurityPolicy-FIPS-2025-03
<a name="security-policy-transfer-2025-03-fips"></a>

다음은 TransferSecurityPolicy-FIPS-2025-03 보안 정책을 보여줍니다.

```
{
    "SecurityPolicy": {
        "Fips": true,
        "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2025-03",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes256-ctr",
            "aes192-ctr",
            "aes128-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "diffie-hellman-group-exchange-sha256",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512"
        ],
        "SshMacs": [
            "hmac-sha2-512-etm@openssh.com",
            "hmac-sha2-256-etm@openssh.com"            
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
           "SFTP",
           "FTPS"
        ]
    }
}
```

### TransferSecurityPolicy-AS2Restricted-2025-07
<a name="security-policy-transfer-as2restricted-2025-07"></a>

다음은 TransferSecurityPolicy-AS2Restricted-2025-07 보안 정책을 보여줍니다.

**참고**  
이 보안 정책은 3DES(ContentEncryptionCiphers)를 지원하지 않고 SHA1(HashAlgorithms)을 지원하지 않는다는 점을 제외하면 TransferSecurityPolicy-2025-03과 동일합니다. SHA1 HashAlgorithms 여기에는 포스트 양자 암호화 알고리즘(mlkem\$1 KEXs)을 포함하여 2025년 3월의 모든 알고리즘이 포함됩니다.

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-AS2Restricted-2025-07",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
           "SFTP",
           "FTPS"
        ]
    }
}
```

# AWS Transfer Family SFTP 커넥터에 대한 보안 정책
<a name="security-policies-connectors"></a>

의 SFTP 커넥터 보안 정책을 AWS Transfer Family 사용하면 SFTP 커넥터와 연결된 암호화 알고리즘(메시지 인증 코드(MACs), 키 교환(KEXs) 및 암호 제품군) 세트를 제한할 수 있습니다. 다음은 각 SFTP 커넥터 보안 정책에 대해 지원되는 암호화 알고리즘 목록입니다.

**참고**  
`TransferSFTPConnectorSecurityPolicy-2024-03`는 SFTP 커넥터에 적용되는 기본 보안 정책입니다.

커넥터의 보안 정책을 변경할 수 있습니다. Transfer Family 왼쪽 탐색 창에서 **커넥터를** 선택하고 커넥터를 선택합니다. 그런 다음 **Sftp 구성** 섹션에서 **편집**을 선택합니다. **암호화 알고리즘 옵션** 섹션의 보안 정책 필드의 드롭다운 목록에서 사용 가능한 **보안 정책을** 선택합니다.

## 암호화 알고리즘
<a name="connector-cryptographic-algorithms"></a>

호스트 키의 경우 SFTP 커넥터는 ed25519를 제외하고 Transfer Family 서버에 지원되는 모든 알고리즘을 지원합니다.
+ `rsa-sha2-256`
+ `rsa-sha2-512`
+ `ecdsa-sha2-nistp256`
+ `ecdsa-sha2-nistp384`
+ `ecdsa-sha2-nistp521`

또한 호스트 키의 경우를 지원`ssh-rsa`하지만에 대해서만 지원됩니다`TransferSFTPConnectorSecurityPolicy-2023-07`.

인증을 위해 SFTP 커넥터는 다음 키 유형을 지원합니다.
+ `ssh-rsa`
+ `ecdsa`

## SFTP 커넥터 보안 정책 세부 정보
<a name="connector-policy-details"></a>

다음 표에는 각 SFTP 커넥터 보안 정책에서 지원하는 특정 암호화 알고리즘이 나와 있습니다.


| 보안 정책 | TransferSFTPConnectorSecurityPolicy-FIPS-2024-10 | TransferSFTPConnectorSecurityPolicy-2024-03 | TransferSFTPConnectorSecurityPolicy-2023-07  | 
| --- |--- |--- |--- |
|  **Ciphers**  | 
| --- |
|  aes128-ctr  |  |  |  ♦  | 
|  aes128-gcm@openssh.com  |  ♦  | ♦ |  ♦  | 
|  aes192-ctr  |  | ♦ |  ♦  | 
|  aes256-ctr  |  | ♦ |  ♦  | 
|  aes256-gcm@openssh.com  |  ♦  | ♦ |  ♦  | 
|  **Kexs**  | 
| --- |
|  curve25519-sha256  |  | ♦ |  ♦  | 
|  curve25519-sha256@libssh.org  |  | ♦ |  ♦  | 
|  diffie-hellman-group14-sha1  |  |  |  ♦  | 
|  diffie-hellman-group16-sha512  |  | ♦ |  ♦  | 
|  diffie-hellman-group18-sha512  |  | ♦ |  ♦  | 
|  diffie-hellman-group-exchange-sha256  |  |  ♦  |  ♦  | 
| ecdh-sha2-nistp256 |  ♦   |  |  | 
| ecdh-sha2-nistp384 |  ♦   |  |  | 
| ecdh-sha2-nistp521 |  ♦   |  |  | 
|  **Macs**  | 
| --- |
|  hmac-sha2-512-etm@openssh.com  |  |  ♦  |  ♦  | 
|  hmac-sha2-256-etm@openssh.com  |  |  ♦  |  ♦  | 
| hmac-sha2-512 |  ♦  |  ♦  |  ♦  | 
|  hmac-sha2-256  |  ♦  | ♦ |  ♦  | 
|  hmac-sha1  |  |  |  ♦  | 
|  hmac-sha1-96  |  |  |  ♦  | 
|  **Host Key Algorithms**  | 
| --- |
| rsa-sha2-256 |  ♦  |  ♦  |  ♦  | 
| rsa-sha2-512 |  ♦  |  ♦  |  ♦  | 
| ecdsa-sha2-nistp256 |  ♦  |  ♦  |  ♦  | 
| ecdsa-sha2-nistp384 |  | ♦  |  ♦  | 
| ecdsa-sha2-nistp521 |  | ♦  |  ♦  | 
| ssh-rsa |  |   |  ♦  | 

# 에서 하이브리드 포스트 양자 키 교환 사용 AWS Transfer Family
<a name="post-quantum-security-policies"></a>

 Transfer Family는 Secure Shell(SSH) 프로토콜에 대한 하이브리드 포스트 양자 키 설정 옵션을 지원합니다. 네트워크 트래픽을 기록하고 향후 복호화를 위해 양자 컴퓨터에 저장하는 것이 이미 가능하기 때문에 포스트 퀀텀 키 설정이 필요합니다. 이를 *지금 저장 나중 수확* 공격이라고 합니다.

이 옵션은 Transfer Family에 연결하여 Amazon 심플 스토리지 서비스(Amazon S3) 스토리지 또는 Amazon Elastic File System(Amazon EFS)에서 안전하게 파일을 주고 받을 때 사용할 수 있습니다. SSH의 포스트 퀀텀 하이브리드 키 설정은 포스트 퀀텀 키 설정 메커니즘을 도입하여 기존 키 교환 알고리즘과 함께 사용합니다. 기존 암호군으로 생성된 SSH 키는 현재 기술로는 무차별 암호 대입 공격으로부터 안전합니다. 그러나 향후 대규모 양자 컴퓨팅이 등장하더라도 기존 암호화는 보안을 유지하지 못할 것으로 예상됩니다.

Transfer Family 연결을 통해 전달되는 데이터의 장기 기밀 유지에 의존하는 조직의 경우, 대규모 양자 컴퓨터를 사용할 수 있게 되기 전에 포스트 퀀텀 암호화로 마이그레이션하는 계획을 고려해야 합니다.

현재 암호화된 데이터를 잠재적 향후 공격으로부터 보호하기 위해 AWS 는 양자 내성 또는 양자 사후 알고리즘 개발에 암호화 커뮤니티에 참여하고 있습니다. Transfer Family에서 클래식 및 포스트 퀀텀 요소를 결합하는 하이브리드 포스트 퀀텀 키 교환 암호 제품군을 구현했습니다.

이러한 하이브리드 암호 제품군은 대부분의 AWS 지역에서 프로덕션 워크로드에 사용할 수 있습니다. 그러나 하이브리드 암호 제품군의 성능 특성 및 대역폭 요건은 클래식 키 교환 메커니즘의 해당 요건과 다르기 때문에 Transfer FAmily 연결에 대해 이 제품군을 테스트하는 것이 좋습니다.

[포스트 퀀텀 암호화](https://aws.amazon.com/security/post-quantum-cryptography/) 보안 블로그 게시물에서 포스트 퀀텀 암호화에 대해 자세히 알아보세요.

**Contents**
+ [SSH의 포스트 퀀텀 하이브리드 키 교환 소개](#pq-about-key-exchange)
+ [Transfer Family에서 포스트 퀀텀 하이브리드 키 설정이 작동하는 방식](#pqtls-details)
  + [ML-KEM을 사용하는 이유](#why-mlkem)
  + [포스트 퀀텀 하이브리드 SSH 키 교환 및 암호화 요건 (FIPS 140)](#pq-alignment)
+ [Transfer Family의 포스트 퀀텀 하이브리드 키 교환 테스트](#pq-policy-testing)
  + [SFTP 엔드포인트에서 포스트 퀀텀 하이브리드 키 교환을 활성화하세요.](#pq-enable-policy)
  + [포스트 퀀텀 하이브리드 키 교환을 지원하는 SFTP 클라이언트 설정](#pq-client-openssh)
  + [SFTP에서 포스트 퀀텀 하이브리드 키 교환 확인](#pq-verify-exchange)

## SSH의 포스트 퀀텀 하이브리드 키 교환 소개
<a name="pq-about-key-exchange"></a>

Transfer Family는 클래식 [Elliptic Curve Diffie-Hellman(ECDH)](https://csrc.nist.gov/publications/detail/sp/800-56a/rev-3/final) 키 교환 알고리즘과 ML-KEM을 모두 사용하는 포스트 양자 하이브리드 키 교환 암호 제품군을 지원합니다. ML-KEM은 [국립표준기술연구소(NIST)](https://csrc.nist.gov/projects/post-quantum-cryptography)가 첫 번째 표준 포스트 양자 키 계약 알고리즘으로 지정한 포스트 양자 퍼블릭 키 암호화 및 키 설정 알고리즘입니다.

클라이언트와 서버는 여전히 ECDH 키 교환을 수행합니다. 또한 서버는 포스트 퀀텀 공유 비밀을 클라이언트의 포스트 퀀텀 KEM 퍼블릭 키로 캡슐화하는데, 이는 클라이언트의 SSH 키 교환 메시지에 알려집니다. 이 전략은 기존 키 교환의 높은 신뢰성과 제안된 포스트 퀀텀 키 교환의 보안을 결합하여 ECDH 또는 포스트 퀀텀 공유 비밀이 침해되지 않는 한 핸드셰이크를 보호할 수 있도록 합니다.

## Transfer Family에서 포스트 퀀텀 하이브리드 키 설정이 작동하는 방식
<a name="pqtls-details"></a>

AWS 는 최근에의 SFTP 파일 전송에서 포스트 양자 키 교환에 대한 지원을 발표했습니다 AWS Transfer Family. Transfer Family는 SFTP 및 기타 프로토콜을 사용하여 AWS 스토리지 서비스로business-to-business 파일 전송을 안전하게 확장합니다. SFTP는 SSH를 통해 실행되는 FTP (파일 전송 프로토콜) 의 보다 안전한 버전입니다. Transfer Family의 포스트 퀀텀 키 교환 지원은 SFTP를 통한 데이터 전송의 보안 기준을 높입니다.

Transfer Family의 포스트 양자 하이브리드 키 교환 SFTP 지원에는 포스트 양자 알고리즘 ML-KEM-768 및 ML-KEM-1024를 P256, P384 또는 Curve25519 곡선에 대한 ECDH와 결합하는 것이 포함됩니다. [포스트 퀀텀 하이브리드 SSH 키 교환 초안](https://datatracker.ietf.org/doc/draft-kampanakis-curdle-ssh-pq-ke/)에는 다음과 같은 해당 SSH 키 교환 방법이 명시되어 있습니다.
+ `mlkem768nistp256-sha256`
+ `mlkem1024nistp384-sha384`
+ `mlkem768x25519-sha256`

### ML-KEM을 사용하는 이유
<a name="why-mlkem"></a>

AWS 는 상호 운용 가능한 표준화된 알고리즘을 지원하기 위해 최선을 다하고 있습니다. ML-KEM은 [NIST 포스트 양자 암호화 프로젝트에서 표준화하고 승인한 유일한 포스트 양자](https://csrc.nist.gov/projects/post-quantum-cryptography) 키 교환 알고리즘입니다. 표준 본문은 이미 ML-KEM을 프로토콜에 통합하고 있습니다.는 일부 AWS API 엔드포인트에서 TLS의 ML-KEM을 AWS 이미 지원합니다.

이 약정의 일환으로 AWS 는 ML-KEM을 SSH용 P256과 같은 NIST 승인 곡선과 결합하는 포스트 양자 암호화에 대한 초안 제안을 IETF에 제출했습니다. 고객의 보안을 강화하기 위해 SFTP 및 SSH에서 포스트 양자 키 교환을 AWS 구현하는 것은 해당 초안을 따릅니다. 우리의 제안이 IETF에서 채택되어 표준이 될 때까지 향후 업데이트를 지원할 계획입니다.

초안이 표준화로 발전함에 따라 새로운 키 교환 방법( 섹션에 나열됨[Transfer Family에서 포스트 퀀텀 하이브리드 키 설정이 작동하는 방식](#pqtls-details))이 변경될 수 있습니다.

**참고**  
포스트 양자 알고리즘 지원은 현재에 대한 TLS의 포스트 양자 하이브리드 키 교환 AWS KMS (에서 [하이브리드 포스트 양자 TLS 사용 참조 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqtls.html))AWS Certificate Manager및 AWS Secrets Manager API 엔드포인트에 사용할 수 있습니다.

### 포스트 퀀텀 하이브리드 SSH 키 교환 및 암호화 요건 (FIPS 140)
<a name="pq-alignment"></a>

FIPS 규정 준수가 필요한 고객을 위해 Transfer Family는 FIPS 140 인증 오픈 소스 암호화 라이브러리인 - AWS LC를 사용하여 SSH에서 AWS FIPS 승인 암호화를 제공합니다. Transfer Family의 TransferSecurityPolicy-FIPS-2025-03에서 지원되는 포스트 양자 하이브리드 키 교환 방법은 [NIST의 SP 800-56Cr2(섹션 2)](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf)에 따라 FIPS 승인을 받았습니다. 독일 연방 정보보안청([BSI](https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Informationen-und-Empfehlungen/Quantentechnologien-und-Post-Quanten-Kryptografie/quantentechnologien-und-post-quanten-kryptografie_node.html))과 프랑스 국립정보시스템청([ANSSI](https://www.ssi.gouv.fr/en/publication/anssi-views-on-the-post-quantum-cryptography-transition/))에서도 이러한 포스트 퀀텀 하이브리드 키 교환 방법을 권장합니다.

## Transfer Family의 포스트 퀀텀 하이브리드 키 교환 테스트
<a name="pq-policy-testing"></a>

이 섹션에서는 포스트 퀀텀 하이브리드 키 교환을 테스트하기 위해 수행하는 단계를 설명합니다.

1. [SFTP 엔드포인트에서 포스트 퀀텀 하이브리드 키 교환을 활성화하세요.](#pq-enable-policy).

1. 앞서 언급한 초안 사양의 지침을 따라 포스트 퀀텀 하이브리드 키 교환을 지원하는 SFTP 클라이언트(예:[포스트 퀀텀 하이브리드 키 교환을 지원하는 SFTP 클라이언트 설정](#pq-client-openssh))를 사용하세요.

1. Transfer Family 서버를 사용하여 파일을 전송합니다.

1. [SFTP에서 포스트 퀀텀 하이브리드 키 교환 확인](#pq-verify-exchange).

### SFTP 엔드포인트에서 포스트 퀀텀 하이브리드 키 교환을 활성화하세요.
<a name="pq-enable-policy"></a>

Transfer Family에서 새 SFTP 서버 엔드포인트를 생성할 때 또는 기존 SFTP 엔드포인트에서 암호화 알고리즘 옵션을 편집하여 SSH 정책을 선택할 수 있습니다. 다음 스냅샷은 SSH 정책을 업데이트 AWS Management Console 하는의 예를 보여줍니다.

![\[암호화 알고리즘 옵션에 대해 선택한 포스트 퀀텀 정책을 보여줍니다.\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/post-quantum-policy-choose.png)


포스트 양자 키 교환을 지원하는 SSH 정책 이름은 **TransferSecurityPolicy-2025-03** 및 **TransferSecurityPolicy-FIPS-2025-03**입니다. Transfer Family 정책에 대한 자세한 설명은 [AWS Transfer Family 서버에 대한 보안 정책](security-policies.md)를 참조하세요.

### 포스트 퀀텀 하이브리드 키 교환을 지원하는 SFTP 클라이언트 설정
<a name="pq-client-openssh"></a>

SFTP Transfer Family 엔드포인트에서 올바른 포스트 퀀텀 SSH 정책을 선택한 후 Transfer Family에서 포스트 퀀텀 SFTP를 실험해 볼 수 있습니다. 테스트할 로컬 시스템에 최신 OpenSSH 클라이언트(예: 버전 9.9)를 설치합니다.

**참고**  
클라이언트가 이전에 나열된 하나 이상의 ML-KEM 알고리즘을 지원하는지 확인합니다. 다음 명령을 실행하여 OpenSSH 버전에 지원되는 알고리즘을 볼 수 있습니다`ssh -Q kex`.

다음 명령과 같이 포스트 양자 하이브리드 키 교환 방법을 사용하여 예제 SFTP 클라이언트를 실행하여 SFTP 엔드포인트(예: `s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com`)에 연결할 수 있습니다.

```
sftp -v -o \
   KexAlgorithms=mlkem768x25519-sha256 \
   -i username_private_key_PEM_file \
   username@server-id.server.transfer.region-id.amazonaws.com
```

이전 명령에서 다음 항목을 자신의 정보로 바꿉니다.
+ *username\$1private\$1key\$1PEM\$1file*을 SFTP 사용자의 프라이빗 키 PEM 인코딩 파일로 대체합니다.
+ *사용자 이름*을 인스턴스의 사용자 이름으로 바꿉니다.
+ *서버 ID*를 Transfer Family 서버 ID로 교체
+ *지역 ID*를 Transfer Family 서버가 위치한 실제 지역으로 바꾸세요.

### SFTP에서 포스트 퀀텀 하이브리드 키 교환 확인
<a name="pq-verify-exchange"></a>

SFTP를 Transfer Family로 연결하는 동안 포스트 퀀텀 하이브리드 키 교환이 사용되었는지 확인하려면 클라이언트 출력을 확인하세요. 선택적으로 패킷 캡처 프로그램을 사용할 수 있습니다. OpenSSH 9.9 클라이언트를 사용하는 경우 출력은 다음과 비슷해야 합니다(간결성을 위해 관련 없는 정보 생략).

```
% sftp -o KexAlgorithms=mlkem768x25519-sha256 -v -o IdentitiesOnly=yes -i username_private_key_PEM_file username@s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com
OpenSSH_9.9p2, OpenSSL 3.4.1 11 Feb 2025
debug1: Reading configuration data /Users/username/.ssh/config
debug1: /Users/username/.ssh/config line 146: Applying options for *
debug1: Reading configuration data /Users/username/.ssh/bastions-config
debug1: Reading configuration data /opt/homebrew/etc/ssh/ssh_config
debug1: Connecting to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com [xxx.yyy.zzz.nnn] port 22.
debug1: Connection established.
[...]
debug1: Local version string SSH-2.0-OpenSSH_9.9
debug1: Remote protocol version 2.0, remote software version AWS_SFTP_1.1
debug1: compat_banner: no match: AWS_SFTP_1.1
debug1: Authenticating to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com:22 as 'username'
debug1: load_hostkeys: fopen /Users/username/.ssh/known_hosts2: No such file or directory
[...]
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: mlkem768x25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-ed25519 SHA256:Ic1Ti0cdDmFdStj06rfU0cmmNccwAha/ASH2unr6zX0
[...]
debug1: rekey out after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 4294967296 blocks
[...]
Authenticated to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com ([xxx.yyy.zzz.nnn]:22) using "publickey".
debug1: channel 0: new session [client-session] (inactive timeout: 0)
[...]
Connected to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com.
sftp>
```

출력은 포스트 퀀텀 하이브리드 `mlkem768x25519-sha256` 방법을 사용하여 클라이언트 협상이 이루어졌으며 SFTP 세션이 성공적으로 설정되었음을 보여줍니다.

# 데이터 보호 및 암호화
<a name="encryption-at-rest"></a>

 AWS [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/) AWS Transfer Family (전송 패밀리)의 데이터 보호에 적용됩니다. 이 모델에 설명된 대로 AWS 는 모든 AWS 클라우드를 실행하는 글로벌 인프라를 보호할 책임이 있습니다. 사용자는 이 인프라에 호스팅되는 콘텐츠에 대한 통제 권한을 유지할 책임이 있습니다. 이 콘텐츠에는 사용하는 AWS 서비스에 대한 보안 구성 및 관리 작업이 포함됩니다. 데이터 프라이버시에 대한 자세한 설명은 [데이터 프라이버시 FAQ](https://aws.amazon.com/compliance/data-privacy-faq)를 참조하세요. 유럽의 데이터 보호에 대한 자세한 설명은 *AWS 보안 블로그*의 [AWS 공동 책임 모델 및 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 블로그 게시물을 참조하세요.

데이터 보호를 위해 AWS 계정 자격 증명을 보호하고를 사용하여 개별 사용자 계정을 설정하는 것이 좋습니다 AWS IAM Identity Center. 이러한 방식에서는 각 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.
+ 각 계정에 다중 인증(MFA)을 사용합니다.
+ SSL/TLS를 사용하여 AWS 리소스와 통신합니다. TLS 1.2를 지원합니다.
+ 를 사용하여 API 및 사용자 활동 로깅을 설정합니다 AWS CloudTrail.
+  AWS 암호화 솔루션을 AWS 서비스 내의 모든 기본 보안 제어와 함께 사용합니다.
+ Amazon S3에 저장된 개인 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.
+ 명령줄 인터페이스 또는 API를 통해 AWS 에 액세스할 때 FIPS 140-2 검증된 암호화 모듈이 필요한 경우 FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 설명은 [Federal Information Processing Standard(FIPS) 140-2](https://aws.amazon.com/compliance/fips/)를 참조하세요.

**명칭** 필드와 같은 자유 형식 필드에 고객 계정 번호와 같은 중요 식별 정보를 절대 입력하지 마세요. 여기에는 콘솔 AWS CLI, API 또는 AWS SDKs를 사용하여 Transfer Family 또는 기타 AWS 서비스를 사용하는 경우가 포함됩니다. Transfer Family 서비스 구성에 입력하는 모든 구성 데이터 또는 다른 서비스의 구성이 진단 로그에 포함되도록 선택될 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 보안 인증 정보를 URL에 포함시키지 마세요.

반면, Transfer Family 서버를 오가는 업로드 및 다운로드 작업의 데이터는 완전히 비공개로 취급되며 SFTP 또는 FTPS 연결과 같은 암호화된 채널 외부에 존재하지 않습니다. 이 데이터는 승인된 사람만 액세스할 수 있습니다.

## Transfer Family의 데이터 암호화
<a name="tf-data-encryption"></a>

AWS Transfer Family 는 Amazon S3 버킷에 대해 설정한 기본 암호화 옵션을 사용하여 데이터를 암호화합니다. 버킷에서 암호화를 활성화한 경우 모든 객체는 버킷에 저장될 때 암호화됩니다. 객체는 Amazon S3 관리형 키(SSE-S3) 또는 AWS Key Management Service () 관리형 키(SSE-KMS AWS KMS)를 사용한 서버 측 암호화를 사용하여 암호화됩니다. 자세한 설명은 *Amazon Simple Storage Service 사용자 가이드*의 [서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)를 참조하세요.

다음 단계에서는 데이터를 암호화하는 방법을 보여줍니다 AWS Transfer Family.

**에서 암호화를 허용하려면 AWS Transfer Family**

1. Amazon S3 버킷에 대한 기본 암호화를 활성화합니다. 자세한 설명은 *Amazon Simple Storage Service 사용자 가이드*의 [Amazon S3 버킷에 대한 Amazon S3 기본 암호화](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)를 참조하세요.

1. 사용자에게 연결된 AWS Identity and Access Management (IAM) 역할 정책을 업데이트하여 필요한 AWS Key Management Service (AWS KMS) 권한을 부여합니다.

1. 사용자에 대한 세션 정책을 사용하는 경우 세션 정책은 필요한 AWS KMS 권한을 부여해야 합니다.

다음 예제는 AWS KMS 암호화가 활성화된 Amazon S3 버킷과 AWS Transfer Family 함께를 사용할 때 필요한 최소 권한을 부여하는 IAM 정책을 보여줍니다. 사용하고 있는 경우, 사용자 IAM 역할 정책과 세션 정책 모두에 이 예 정책을 포함시킵니다.

```
{
   "Sid": "Stmt1544140969635",
   "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey",
      "kms:GetPublicKey",
      "kms:ListKeyPolicies"
   ],
   "Effect": "Allow",
   "Resource": "arn:aws:kms:region:account-id:key/kms-key-id"
}
```

**참고**  
이 정책에서 지정하는 KMS 키 ID는 1단계에서 기본 암호화에 대해 지정한 것과 같아야 합니다.  
루트 또는 사용자에게 사용되는 IAM 역할은 AWS KMS 키 정책에서 허용되어야 합니다. AWS KMS 키 정책에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [KMS에서 AWS 키 정책 사용을](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) 참조하세요.

## AWS Transfer Family 저장 시 암호화
<a name="encrypting-data"></a>

 AWS Transfer Family 는 파일 전송 서비스이므로 저장 스토리지 데이터를 관리하지 않습니다. 가 AWS Transfer Family 지원하는 스토리지 서비스 및 시스템은 해당 상태의 데이터를 보호할 책임이 있습니다. 그러나에서 저장 데이터를 관리하는 몇 가지 서비스 관련 데이터가 AWS Transfer Family 있습니다.

### 무엇을 암호화하나요?
<a name="what-is-encrypted"></a>

유휴 시를 AWS Transfer Family 처리하는 유일한 데이터는 파일 전송 서버를 운영하고 전송을 처리하는 데 필요한 세부 정보와 관련이 있습니다.는 Amazon DynamoDB에 전체 유휴 시 암호화를 사용하여 다음 데이터를 AWS Transfer Family 저장합니다.
+ 서버 구성(예: 서버 설정, 프로토콜 구성 및 엔드포인트 세부 정보).
+ SSH 퍼블릭 키 및 사용자 메타데이터를 포함한 사용자 인증 데이터.
+ 워크플로 실행 세부 정보 및 단계 구성.
+ 타사 시스템의 커넥터 구성 및 인증 자격 증명. 이러한 자격 증명은 AWS Transfer Family 관리형 암호화 키를 사용하여 암호화됩니다.

#### 키 관리
<a name="encrypting-data-key-management"></a>

가 서버 실행 및 전송 처리와 관련된 정보를 DynamoDB에 저장하는 데 AWS Transfer Family 사용하는 암호화 키는 관리할 수 없습니다. 이 정보에는 서버 구성, 사용자 인증 데이터, 워크플로 세부 정보 및 커넥터 자격 증명이 포함됩니다.

### 암호화되지 않는 것은 무엇인가요?
<a name="what-is-not-encrypted"></a>

 AWS Transfer Family 는 저장 시 스토리지 데이터를 암호화하는 방법을 제어하지 않지만 지원하는 최고 수준의 보안으로 스토리지 위치를 구성하는 것이 좋습니다. 예를 들어 Amazon S3 관리형 암호화 키(SSE-S3) 또는 AWS KMS 키(SSE-KMS)를 사용하여 객체를 암호화할 수 있습니다.

 AWS 스토리지 서비스가 저장 데이터를 암호화하는 방법에 대해 자세히 알아봅니다.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)
+ [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html)

# Transfer Family에서 SSH 및 PGP 키 관리
<a name="key-management"></a>

이 섹션에서는 SSH 키를 생성하는 방법과 키를 회전하는 방법 등 SSH 키에 대한 정보를 확인할 수 있습니다. 에서 Transfer Family를 사용하여 키를 관리하는 AWS Lambda 방법에 대한 자세한 내용은 블로그 게시물 [AWS Transfer Family 및를 사용하여 사용자 셀프 서비스 키 관리 활성화 AWS Lambda](https://aws.amazon.com/blogs/storage/enabling-user-self-service-key-management-with-aws-transfer-family-and-aws-lambda/)를 참조하세요. 여러 SSH 키가 있는 사용자의 자동 배포 및 관리는 섹션을 참조하세요[Transfer Family Terraform 모듈](terraform.md).

**참고**  
AWS Transfer Family 는 SSH 인증을 위해 RSA, ECDSA 및 ED25519 키를 허용합니다.

이 섹션에서는 프리티 굿 프라이버시 (PGP) 키를 생성하고 관리하는 방법도 다룹니다.

다양한 사용 사례에 대한 권장 사항을 포함하여 지원되는 모든 암호화 및 키 알고리즘에 대한 포괄적인 개요는 섹션을 참조하세요[암호화 및 키 알고리즘 개요](#encryption-algorithms-overview).

## 암호화 및 키 알고리즘 개요
<a name="encryption-algorithms-overview"></a>

AWS Transfer Family 는 다양한 목적으로 다양한 유형의 알고리즘을 지원합니다. 특정 사용 사례에 사용할 알고리즘을 이해하면 안전하고 호환되는 파일 전송을 보장하는 데 도움이 됩니다.


**알고리즘 빠른 참조**  

| 사용 사례 | 권장 알고리즘 | FIPS 규정 준수 | 참고 | 
| --- | --- | --- | --- | 
| SSH/SFTP 인증 | RSA(rsa-sha2-256/512), ECDSA 또는 ED25519 | RSA: 예, ECDSA: 예, ED25519: 아니요 | 모든 SSH 클라이언트 및 서버와 호환 | 
| PGP 키 생성 | RSA 또는 ECC(NIST) | 예 | 워크플로 복호화의 경우 | 
| PGP 파일 암호화 | AES-256 | 예 | PGP 소프트웨어에서 결정 | 

## SSH 인증 알고리즘
<a name="ssh-authentication-algorithms"></a>

이러한 알고리즘은 클라이언트와 AWS Transfer Family 서버 간의 SSH/SFTP 인증에 사용됩니다. 사용자 인증 또는 서버 호스트 키를 위한 SSH 키 페어를 생성할 때 다음 중 하나를 선택합니다.

RSA(권장)  
**모든 SSH 클라이언트 및 서버와 호환되며 FIPS를 준수합니다.** 보안 강화를 위해 SHA-2 해싱과 함께 사용:  
+ `rsa-sha2-256` - 대부분의 사용 사례에 권장
+ `rsa-sha2-512` - 더 높은 보안 옵션

ED25519  
**현대적이고 효율적입니다.** 강력한 보안 기능을 갖춘 더 작은 키 크기:  
+ `ssh-ed25519` - 빠르고 안전하지만 FIPS를 준수하지 않음

ECDSA  
**타원 곡선 옵션.** 보안과 성능의 균형:  
+ `ecdsa-sha2-nistp256` - 표준 곡선
+ `ecdsa-sha2-nistp384` - 더 높은 보안 곡선
+ `ecdsa-sha2-nistp521` - 가장 높은 보안 곡선

**참고**  
이전 보안 정책에 대해 SHA1`ssh-rsa`을 지원합니다. 자세한 내용은 [암호화 알고리즘](security-policies.md#cryptographic-algorithms)을 참조하세요.

**올바른 SSH 알고리즘 선택**
+ **대부분의 사용자:** `rsa-sha2-256` 또는와 함께 RSA 사용 `rsa-sha2-512`
+ **FIPS 규정 준수의 경우:** RSA 또는 ECDSA 알고리즘 사용
+ **최신 환경의 경우:** ED25519는 우수한 보안 및 성능을 제공합니다.

## PGP 암호화 및 복호화 알고리즘
<a name="pgp-encryption-algorithms"></a>

PGP(Pretty Good Privacy)는 두 가지 유형의 알고리즘을 함께 사용하여 워크플로에서 파일을 암호화하고 해독합니다.

1. **키 페어 알고리즘** - 암호화 및 디지털 서명을 위한 퍼블릭/프라이빗 키 페어를 생성하는 데 사용됩니다.

1. **대칭 알고리즘** - 실제 파일 데이터를 암호화하는 데 사용됩니다(키 페어 알고리즘은 대칭 키를 암호화함).

### PGP 키 페어 알고리즘
<a name="pgp-key-algorithms"></a>

워크플로 복호화를 위한 PGP 키 페어를 생성할 때 다음 알고리즘 중 하나를 선택합니다.

RSA(권장)  
**대부분의 사용자에게 권장됩니다.** 광범위하게 지원되고, 잘 확립되고, FIPS를 준수합니다. 보안과 호환성의 적절한 균형을 제공합니다.

ECC(Elliptic Curve Cryptography)  
강력한 보안을 유지하면서 키 크기가 작은 **RSA보다 더 효율적**입니다.  
+ **NIST 곡선** - 널리 지원되는 표준 곡선 및 FIPS 준수
+ **BrainPool 곡선** - 특정 규정 준수 요구 사항에 대한 대체 곡선
+ **Curve25519** - 효율적인 계산으로 강력한 보안을 제공하는 최신 고성능 곡선

ElGamal  
**레거시 알고리즘.** 이전 시스템과의 호환성을 지원합니다. 새 구현에는 RSA 또는 ECC를 사용합니다.

PGP 키 생성에 대한 자세한 지침은 섹션을 참조하세요[PGP 키 생성](generate-pgp-keys.md).

### PGP 대칭 암호화 알고리즘
<a name="pgp-symmetric-algorithms"></a>

이러한 알고리즘은 실제 파일 데이터를 암호화합니다. 사용되는 알고리즘은 PGP 소프트웨어가 PGP 파일을 생성한 방식에 따라 달라집니다.

**FIPS 준수 알고리즘(규정 환경에 권장)**
+ **AES-128, AES-192, AES-256** - 고급 암호화 표준(권장)
+ **3DES** - 트리플 데이터 암호화 표준(레거시, 가능하면 AES 사용)

**기타 지원되는 알고리즘**
+ IDEA, CAST5, Blowfish, DES, TwoFish, CAMELLIA-128, CAMELLIA-192, CAMELLIA-256

**참고**  
워크플로를 사용할 AWS Transfer Family 때 대칭 알고리즘을 직접 선택하지 않습니다. 이는 암호화된 파일을 생성하는 데 사용되는 PGP 소프트웨어에 의해 결정됩니다. 그러나 AES-256과 같은 FIPS 호환 알고리즘을 선호하도록 PGP 소프트웨어를 구성할 수 있습니다.

지원되는 대칭 알고리즘에 대한 자세한 내용은 섹션을 참조하세요[지원되는 대칭 암호화 알고리즘](nominal-steps-workflow.md#symmetric-algorithms).

# 서비스 관리 사용자를 위한 SSH 키 생성
<a name="sshkeygen"></a>

서버를 설정해 서비스 관리형 인증 메서드를 사용하는 사용자를 인증할 수 있습니다. 이때 사용자 이름과 SSH 키는 서비스 내에 보관됩니다. 사용자의 퍼블릭 SSH 키는 서버에 사용자의 속성으로 업로드됩니다. 이 키는 서버에서 표준 키 기반 인증 프로세스의 일부로 사용됩니다. 각 사용자는 파일에 여러 퍼블릭 SSH 키를 개별 서버와 함께 보유할 수 있습니다. 사용자당 저장할 수 있는 키 수에 대한 제한은 *Amazon Web Services 일반 참조*의 [AWS Transfer Family 엔드포인트 및 할당량](https://docs.aws.amazon.com//general/latest/gr/transfer-service.html)을 참조하세요. 

서비스 관리형 인증 방법 대신 사용자 지정 자격 증명 공급자 또는를 사용하여 사용자를 인증할 수 있습니다 AWS Directory Service for Microsoft Active Directory. 자세한 내용은 [사용자 지정 자격 증명 공급자와 작업](custom-idp-intro.md) 또는 [Microsoft Active Directory용 AWS Directory Service 사용](directory-services-users.md)를 참조하세요.

서버는 한 가지 방법 (서비스 관리형, 디렉터리 서비스 또는 맞춤 ID 제공자)을 사용해서만 사용자를 인증할 수 있으며, 서버를 만든 후에는 이 방법을 변경할 수 없습니다.

**Topics**
+ [macOS, Linux 또는 Unix에서 SSH 키 생성](macOS-linux-unix-ssh.md)
+ [Microsoft Windows에서 SSH 키 생성](windows-ssh.md)
+ [SSH2 키를 SSH 퍼블릭 키 형식으로 변환](convert-ssh2-public-key.md)

# macOS, Linux 또는 Unix에서 SSH 키 생성
<a name="macOS-linux-unix-ssh"></a>

macOS, Linux 또는 Unix 작동 시스템에서는 `ssh-keygen` 명령을 사용하여 SSH 퍼블릭 키와 키 쌍이라고도 하는 SSH 프라이빗 키를 생성합니다.

**참고**  
다음 예에서는 패스프레이즈를 지정하지 않았는데, 이 경우 도구에서 패스프레이즈를 입력한 다음 반복하여 확인하도록 요청합니다. 패스프레이즈를 만들면 프라이빗 키를 더 잘 보호할 수 있고 전반적인 시스템 보안도 향상될 수 있습니다. 패스프레이즈는 복구할 수 없습니다: 암호를 잊은 경우 새 키를 생성해야 합니다.  
그러나 Transfer Family 서버는 시작 시 패스프레이즈를 요청할 수 없으므로 서버 호스트 키를 생성하는 경우 명령에서 `-N ""` 옵션을 지정하거나 메시지가 표시되면 **Enter**을 두 번 눌러 빈 암호를 *지정해야* 합니다.

**macOS, Linux 또는 Unix 작동 시스템에서 SSH 키를 만들려면**

1. macOS, Linux 또는 Unix 작동 시스템에서는 명령 터미널을 엽니다.

1. AWS Transfer Family 는 RSA, ECDSA 및 ED25519-formatted의 키를 허용합니다. 생성하려는 키 쌍의 타입에 따라 적절한 명령을 선택합니다.

   **팁**: `key_name`를 SSH 키 페어 파일의 실제 이름으로 바꿉니다.
   + RSA 4096비트 키 쌍 생성:

     ```
     ssh-keygen -t rsa -b 4096 -f key_name
     ```
   + ECDSA 521비트 키 쌍을 생성하려면 (ECDSA의 비트 크기는 256, 384, 521입니다):

     ```
     ssh-keygen -t ecdsa -b 521 -f key_name
     ```
   + ED25519 키 쌍을 생성하려면:

     ```
     ssh-keygen -t ed25519 -f key_name
     ```

   다음은 `ssh-keygen` 출력의 예입니다.

   ```
   ssh-keygen -t rsa -b 4096 -f key_name
   Generating public/private rsa key pair.
   
   Enter passphrase (empty for no passphrase): 
   Enter same passphrase again:
   Your identification has been saved in key_name.
   Your public key has been saved in key_name.pub.
   The key fingerprint is:
   SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com
   The key's randomart image is:
   +---[RSA 4096]----+
   |    . ....E      |
   | .   = ...       |
   |. . . = ..o      |
   | . o +  oo =     |
   |  + =  .S.= *    |
   | . o o ..B + o   |
   |     .o.+.* .    |
   |     =o*+*.      |
   |    ..*o*+.      |
   +----[SHA256]-----+
   ```

   **팁**: 위와 같이 `ssh-keygen` 명령을 실행하면 퍼블릭 키와 프라이빗 키가 현재 디렉터리의 파일로 생성됩니다.

   이제 SSH 키 페어를 사용할 준비가 되었습니다. 3단계와 4단계에 따라 서비스 관리형 사용자의 SSH 퍼블릭 키를 저장합니다. 이러한 사용자는 Transfer Family 서버 엔드포인트에서 파일을 전송할 때 키를 사용합니다.

1. `key_name.pub` 파일로 이동하여 엽니다.

1. 텍스트를 복사하여 서비스 관리 사용자의 **SSH 퍼블릭 키**에 붙여넣습니다.

   1. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) AWS Transfer Family 콘솔을 연 다음 탐색 창에서 **서버를** 선택합니다.

   1. **서버** 페이지에서 업데이트하려는 사용자가 포함된 서버의 **서버 ID**를 선택합니다.

   1. 퍼블릭 키를 추가할 사용자를 선택합니다.

   1. **SSH 퍼블릭 키** 창에서 **SSH 퍼블릭 키 추가**를 선택합니다.  
![\[선택한 사용자의 사용자 세부 정보를 보여주는 AWS Transfer Family 콘솔입니다.\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/edit-user-add-key-01.png)

   1. 생성한 퍼블릭 키 텍스트를 SSH 퍼블릭 키 텍스트 상자에 붙여넣은 다음 **키 추가**를 선택합니다.  
![\[퍼블릭 키를 추가하기 위한 키 추가 페이지를 보여주는 AWS Transfer Family 콘솔입니다.\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/edit-user-add-key-02.png)

      새 키는 SSH 퍼블릭 키 창에 나열됩니다.  
![\[SSH 퍼블릭 키 섹션에 새로 추가된 퍼블릭 키를 보여주는 AWS Transfer Family 콘솔입니다.\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/edit-user-add-key-03.png)

# Microsoft Windows에서 SSH 키 생성
<a name="windows-ssh"></a>

Windows에는 OpenSSH가 내장 기능으로 포함되어 있으며, 이를 사용하여 Linux 또는 macOS에서와 동일한 형식으로 SSH 키를 생성할 수 있습니다. 또는 PuTTY의 키 생성기(PuTTYgen)와 같은 타사 도구를 사용할 수 있습니다.

## Windows 내장 OpenSSH 사용
<a name="windows-openssh"></a>

Windows의 최신 버전에는 기본적으로 OpenSSH가 포함됩니다. macOS/Linux 섹션에 설명된 것과 동일한 `ssh-keygen` 명령을 사용할 수 있습니다.

1. Windows PowerShell 또는 명령 프롬프트를 엽니다.

1. 생성하려는 키 유형에 따라 다음 명령 중 하나를 실행합니다.
   + RSA 4096비트 키 쌍 생성:

     ```
     ssh-keygen -t rsa -b 4096 -f key_name
     ```
   + ECDSA 521비트 키 페어를 생성하려면:

     ```
     ssh-keygen -t ecdsa -b 521 -f key_name
     ```
   + ED25519 키 쌍을 생성하려면:

     ```
     ssh-keygen -t ed25519 -f key_name
     ```

1. macOS/Linux 섹션과 동일한 단계에 따라 퍼블릭 키를에 업로드합니다 AWS Transfer Family.

## PuTTYgen(타사 도구) 사용
<a name="windows-puttygen"></a>

PuTTY와 같은 Windows용 일부 타사 SSH 클라이언트는 서로 다른 키 형식을 사용합니다. PuTTY는 프라이빗 키에 `PPK` 형식을 사용합니다. PuTTY 또는 WinSCP와 같은 관련 도구를 사용하는 경우 PuTTYgen을 사용하여이 형식으로 키를 생성할 수 있습니다.

**참고**  
WinSCP를 `.ppk` 형식이 아닌 프라이빗 키 파일과 함께 제공하면, 클라이언트는 키를 `.ppk` 형식으로 변환할 기회를 제공합니다.

PuTTYgen을 사용하여 SSH 키를 생성하는 방법에 대한 자습서는 [SSH.com 웹 사이트를](https://www.ssh.com/ssh/putty/windows/puttygen) 참조하세요.

# SSH2 키를 SSH 퍼블릭 키 형식으로 변환
<a name="convert-ssh2-public-key"></a>

 AWS Transfer Family 는 SSH 형식의 퍼블릭 키만 허용합니다. SSH2 퍼블릭 키가 있는 경우 이를 변환해야 합니다. SSH2 퍼블릭 키의 형식은 다음과 같습니다:

```
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20160402"
AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI
:
:
---- END SSH2 PUBLIC KEY ----
```

SSH 퍼블릭 키의 형식은 다음과 같습니다.

```
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...
```

다음 명령을 실행하여 SSH2-formatted의 퍼블릭 키를 SSH 형식의 퍼블릭 키로 변환합니다. *ssh2-key*를 SSH2 키 이름으로 바꾸고 *ssh-key*를 SSH 키 이름으로 바꿉니다.

```
ssh-keygen -i -f ssh2-key.pub > ssh-key.pub
```

# SSH 키 교체
<a name="keyrotation"></a>

보안상 SSH 키 교체는 보안 모범 사례로 권장됩니다. 일반적으로 이러한 교체는 보안 정책의 일부로 지정되며, 자동화된 방식으로 구현됩니다. 보안 수준에 따라, 대단히 민감한 통신의 경우 SSH 키 쌍을 한 번만 사용할 수도 있습니다. 이렇게 하면 저장된 키 때문에 발생하는 모든 위험을 제거할 수 있습니다. 하지만 SSH 보안 인증을 일정 기간 보관하고, SFTP 사용자에게 과도한 부담을 주지 않는 주기를 설정하는 방법이 더 보편적입니다. 가장 일반적인 주기는 3개월입니다.

**참고**  
코드형 인프라를 사용하여 SSH 키를 자동으로 교체하려면 섹션을 참조하세요[Transfer Family Terraform 모듈](terraform.md).

SSH 키 교체는 2가지 방식으로 실행합니다.
+ 콘솔에서 새 SSH 퍼블릭 키를 업로드하고 기존 SSH 퍼블릭 키를 삭제할 수 있습니다.
+ API를 사용하면 [DeletesSHPublickey](https://docs.aws.amazon.com//transfer/latest/APIReference/API_DeleteSshPublicKey.html) API를 사용하여 사용자의 SSH (Secure Shell) 퍼블릭 키를 삭제하고 [ImportSSHPublic Key](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ImportSshPublicKey.html) API를 사용하여 사용자 계정에 새 Secure Shell(SSH) 퍼블릭 키를 추가하여 기존 사용자를 업데이트할 수 있습니다.

------
#### [ Console ]

**콘솔에서 키 로테이션을 수행하려면**

1. [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) AWS Transfer Family 콘솔을 엽니다.

1. **서버** 페이지로 이동합니다.

1. **서버 ID** 열에서 식별자를 선택하여 **서버 세부 정보** 페이지를 표시합니다.

1. **사용자**에서 SSH 퍼블릭 키를 교체하려는 사용자의 확인란을 선택한 다음 **작업**을 선택하고 **키 추가**를 선택하여 **키 추가** 페이지를 확인합니다.

   또는

   **사용자 세부 정보** 페이지를 보려면 사용자 이름을 선택한 다음 **SSH 퍼블릭 키 추가**를 선택하여 **키 추가** 페이지를 확인합니다.

1. 새 SSH 퍼블릭 키를 입력하고 **키 추가**를 선택합니다.
**중요**  
SSH 퍼블릭 키의 형식은 생성한 키 타입에 따라 다릅니다.  
RSA 키의 경우, 그 형식은 `ssh-rsa string`입니다.
ED25519 키의 경우, 그 형식은 `ssh-ed25519 string`입니다.
ECDSA 키의 경우, 키는 생성한 키 크기에 따라 `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, 또는 `ecdsa-sha2-nistp521`(으)로 시작합니다. 그런 다음 다른 키 타입과 마찬가지로 시작 문자열 뒤에 `string`이(가) 옵니다.

   **사용자 세부 정보** 페이지로 돌아오면 방금 입력한 새 SSH 퍼블릭 키가 **SSH 퍼블릭 키** 섹션에 표시됩니다.

1. 삭제할 보안 인증 옆의 확인란을 선택하고 **삭제**를 선택합니다.

1. 단어 `delete`를 입력하여 삭제 작업을 확인한 다음 **삭제**를 선택합니다.

------
#### [ API ]

**API를 사용하여 키 로테이션을 수행하려면**

1. macOS, Linux 또는 Unix 작동 시스템에서는 명령 터미널을 엽니다.

1.  다음 명령을 입력하여 삭제하려는 SSH 키를 검색합니다. 이 명령을 사용하려면, `serverID`를 Transfer Family 서버의 서버 ID로 바꾸고 `username`를 사용자 이름으로 바꾸세요. 

   ```
   aws transfer describe-user --server-id='serverID' --user-name='username'
   ```

   이 명령은 사용자에 대한 세부 정보를 반환합니다. `"SshPublicKeyId":` 필드 내용을 복사합니다. 이 값은 이 절차의 뒷부분에서 입력해야 합니다.

   ```
   "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID",
      "DateImported": 1621969331.072 } ],
   ```

1.  다음으로, 사용자의 새 SSH 키를 가져옵니다. 프롬프트에 다음 명령을 입력합니다. 이 명령을 사용하려면 `serverID`를 Transfer Family 서버의 서버 ID로 바꾸고 `username`를 사용자 이름으로 바꾸고 `public-key`를 새 퍼블릭 키의 지문으로 바꾸세요. 

   ```
   aws transfer import-ssh-public-key --server-id='serverID' --user-name='username'
      --ssh-public-key-body='public-key'
   ```

   ``이 명령이 성공하면 출력이 반환되지 않습니다.

1.  마지막으로 다음 명령을 실행하여 이전 키를 삭제합니다. 이 명령을 사용하려면 `serverID`를 Transfer Family 서버의 서버 ID로 바꾸고 `username`를 사용자 이름으로 바꾸고 `keyID-from-step-2`를 이 절차의 2단계에서 복사한 키 ID 값으로 바꾸세요. 

   ```
   aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username'
      --ssh-public-key-id='keyID-from-step-2'
   ```

1. (옵션) 이전 키가 더 이상 존재하지 않는지 확인하려면 2단계를 반복합니다.

------

# PGP 키 생성
<a name="generate-pgp-keys"></a>

Transfer Family가 워크플로를 통해 처리하는 파일에 프리티 굿 프라이버시(PGP) 복호화을 사용할 수 있습니다. 워크플로 단계에서 복호화를 사용하려면 PGP 키를 제공합니다. 권장 사항 및 FIPS 규정 준수를 포함하여 PGP 키 알고리즘에 대한 자세한 내용은 섹션을 참조하세요[PGP 키 페어 알고리즘](key-management.md#pgp-key-algorithms).

 AWS 스토리지 블로그에는 Transfer Family 관리형 워크플로, [PGP 및를 사용한 암호화 및 암호화 해제를 사용하여 코드를 작성하지 않고 파일을 간단하게 해독하는 방법을 설명하는 게시물이 있습니다 AWS Transfer Family](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/).

PGP 키를 생성하는 데 사용하는 연산자는 운영 체제와 사용 중인 키 생성 소프트웨어의 버전에 따라 다릅니다.

Linux 또는 Unix를 사용하는 경우 패키지 설치 프로그램을 사용하여 `gpg`를 설치하세요. Linux 배포판에 따라 다음 명령 중 하나를 사용할 수 있습니다.

```
sudo yum install gnupg
```

```
sudo apt-get install gnupg
```

Windows 또는 macOS의 경우, [https://gnupg.org/download/](https://gnupg.org/download/)에서 필요한 것을 다운로드할 수 있습니다.

PGP 키 생성기 소프트웨어를 설치한 후 `gpg --full-gen-key` 또는 `gpg --gen-key` 명령을 실행하여 키 쌍을 생성합니다.

**참고**  
`GnuPG` 버전 2.3.0 이상을 사용하는 경우 `gpg --full-gen-key`를 실행해야 합니다. 생성할 키 타입을 묻는 메시지가 표시되면 RSA 또는 ECC를 선택합니다. **ECC**를 선택하는 경우 타원 곡선에 Curve25519 대해 NIST BrainPool 및 중에서 선택할 수 있습니다.

**유용한 `gpg` 하위 명령**

다음은 `gpg`에 유용한 몇 가지 하위 명령입니다: 
+ `gpg --help` – 이 명령에는 사용 가능한 옵션이 나열되며 몇 가지 예가 포함될 수 있습니다.
+ `gpg --list-keys` -이 명령은 생성한 모든 키 페어의 세부 정보를 나열합니다.
+ `gpg --fingerprint` -이 명령은 각 키의 지문을 포함하여 모든 키 페어에 대한 세부 정보를 나열합니다.
+ `gpg --export -a user-name` – 이 명령은 키가 생성될 때 사용된 `user-name` 키의 퍼블릭 키 부분을 내보냅니다. 

# PGP 키 관리
<a name="manage-pgp-keys"></a>

PGP 키를 관리하려면를 사용합니다 AWS Secrets Manager.

**참고**  
비밀 명칭에는 Transfer Family 서버 ID가 포함됩니다. 즉, PGP 키 정보를 AWS Secrets Manager에 저장하기에 앞서 *먼저* 서버를 식별하거나 생성했어야 합니다. 

모든 사용자에 대해 하나의 키와 패스프레이즈를 사용하려는 경우 PGP 키 블록 정보를 비밀 명칭 `aws/transfer/server-id/@pgp-default` 아래에 저장할 수 있습니다. 여기서 `server-id`은(는) Transfer Family 서버의 ID입니다. Transfer Family는가 워크플로를 실행하는 사용자와 `user-name` 일치하는 키가 없는 경우이 기본 키를 사용합니다.

특정 사용자에 대한 키를 생성할 수 있습니다. 이 경우 보안 암호 이름의 형식은 이며`aws/transfer/server-id/user-name`, 여기서는 Transfer Family 서버의 워크플로를 실행하는 사용자와 `user-name` 일치합니다.

**참고**  
사용자당 Transfer Family 서버당 최대 3개의 PGP 프라이빗 키를 저장할 수 있습니다.

**복호화에 사용할 PGP 키를 구성하려면**

1. 사용 중인 GPG 버전에 따라 다음 명령 중 하나를 실행하여 PGP 키 페어를 생성합니다.
   + **GnuPG** 버전 2.3.0 이상을 사용하는 경우, 다음 명령을 실행합니다.

     ```
     gpg --full-gen-key
     ```

     **RSA**를 선택하거나,를 선택한 경우 타원 곡선**Curve25519**에 대해 **NIST** **BrainPool** 또는를 선택할 **ECC**수 있습니다. `gpg --gen-key` 대신를 실행하는 경우 ECC Curve 25519 암호화 알고리즘을 사용하는 키 페어를 생성합니다.
   + RSA가 기본 암호화 타입이므로 2.3.0 이전의 **GnuPG** 버전의 경우, 다음 명령을 사용할 수 있습니다.

     ```
     gpg --gen-key
     ```
**중요**  
키 생성 프로세스 중에 패스프레이즈와 이메일 주소를 제공해야 합니다. 이러한 값을 기록해 두세요. 이 절차의 AWS Secrets Manager 뒷부분에서 키의 세부 정보를에 입력할 때 암호를 제공해야 합니다. 그리고 다음 단계에서 프라이빗 키를 내보내려면 동일한 이메일 주소를 제공해야 합니다.

1. 프라이빗 키를 내보내려면 다음 명령을 실행합니다. 이 명령을 사용하려면 `private.pgp`를 프라이빗 키 블록을 저장할 파일 명칭으로, `marymajor@example.com`를 키 쌍을 생성할 때 사용한 이메일 주소로 바꾸세요. 

   ```
   gpg --output private.pgp --armor --export-secret-key marymajor@example.com
   ```

1. <a name="store-pgp-key-details"></a> AWS Secrets Manager 를 사용하여 PGP 키를 저장합니다.

   1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) AWS Secrets Manager 콘솔을 엽니다.

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

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

   1. **암호 타입 선택** 페이지의 **암호 타입**에 대해 **다른 타입의 암호**를 선택합니다.

   1. **키/값 쌍** 섹션에서 **키/값** 탭을 선택합니다.
      + **키** – **PGPPrivateKey**를 입력합니다.
**참고**  
**PGPPrivateKey** 문자열을 정확히 입력해야 합니다: 문자 앞이나 사이에 공백을 추가하지 마세요.
      + **값** — 프라이빗 키의 텍스트를 값 필드에 붙여넣습니다. 이 절차의 앞부분에서 키를 내보낼 때 지정한 파일 (예: `private.pgp`) 에서 프라이빗 키의 텍스트를 찾을 수 있습니다. 키는 `-----BEGIN PGP PRIVATE KEY BLOCK-----`(으)로 시작하고 `-----END PGP PRIVATE KEY BLOCK-----`(으)로 끝납니다.
**참고**  
텍스트 블록에는 프라이빗 키만 포함되고 퍼블릭 키는 포함되지 않는지 확인하세요.

   1. **행 추가**를 선택하고 **키/값 쌍** 섹션에서 **키/값** 탭을 선택합니다.
      + **키** – **PGPPassphrase**를 입력합니다.
**참고**  
**PGPPassphrase** 문자열을 정확히 입력해야 합니다: 문자 앞이나 사이에 공백을 추가하지 마세요.
      + **값** – PGP 키 쌍을 생성할 때 사용한 패스프레이즈를 입력합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/pgp-secrets-01.png)
**참고**  
최대 3세트의 키와 패스프레이즈를 추가할 수 있습니다. 두 번째 세트를 추가하려면 새 행 두 개를 추가하고 키에 **PGPPrivateKey2**와(과) **PGPPassphrase2**를 입력한 다음 다른 프라이빗 키와 패스프레이즈를 붙여넣습니다. 세 번째 세트를 추가하려면 키 값이 **PGPPrivateKey3** 및 **PGPPassphrase3**여야 합니다.

   1. **다음**을 선택합니다.

   1. **암호 구성** 페이지에 암호를 위한 명칭과 설명을 입력합니다.
      + 기본 키, 즉 모든 Transfer Family 사용자가 사용할 수 있는 키를 만들려면 다음을 입력하세요**aws/transfer/*server-id*/@pgp-default**. `server-id`를 복호화 단계가 있는 워크플로가 포함된 서버의 ID로 바꾸세요.
      + 특정 Transfer Family 사용자가 사용할 키를 만들려면 **aws/transfer/*server-id*/*user-name***를 입력하세요. `server-id`를 복호화 단계가 있는 워크플로가 포함된 서버의 ID로 바꾸고 `user-name`를 워크플로를 실행하는 사용자 이름으로 바꾸세요. `user-name`은(는) Transfer Family 서버가 사용하는 ID 제공자에 저장됩니다.

   1. **다음**을 선택하고 **순환 구성** 페이지의 기본값을 그대로 사용합니다. 그 다음 **다음**을 선택합니다.

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

다음 스크린샷은 특정 Transfer Family 서버의 사용자 **marymajor**의 세부 정보를 보여줍니다. 이 예에서는 세 개의 키와 해당 패스프레이즈를 보여줍니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/pgp-secrets-02.png)


# 지원되는 PGP 클라이언트
<a name="pgp-key-clients"></a>

다음 클라이언트는 Transfer Family에서 테스트되었으며 PGP 키를 생성하고 워크플로를 통해 해독하려는 파일을 암호화하는 데 사용할 수 있습니다.
+ **Gpg4win \$1 Kleopatra**.
**참고**  
**파일 서명/암호화**를 선택할 때는 **서명 주체** 선택을 취소해야 합니다: 현재 암호화된 파일에 대한 서명은 지원하지 않습니다.  

![\[\]](http://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/images/workflows-step-decrypt-kleopatra.png)

암호화된 파일에 서명하고 복호화 워크플로를 사용하여 Transfer Family 서버에 업로드하려고 하면 다음 오류가 발생합니다.  

  ```
  Encrypted file with signed message unsupported
  ```
+ 주요 **GnuPG** 버전: 2.4, 2.3, 2.2, 2.0, 1.4.

다른 PGP 클라이언트도 작동할 수 있지만 여기에 언급된 클라이언트만 Transfer Family로 테스트되었습니다.

# 에 대한 자격 증명 및 액세스 관리 AWS Transfer Family
<a name="security-iam"></a>

AWS Identity and Access Management (IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어하는 데 도움이 AWS 서비스 되는 입니다. IAM 관리자는 누가 AWS Transfer Family 리소스를 사용할 수 있는 *인증*(로그인) 및 *권한*(권한 있음)을 받을 수 있는지 제어합니다. IAM은 추가 비용 없이 사용할 수 AWS 서비스 있는 입니다.

**Topics**
+ [대상](#security_iam_audience)
+ [ID를 통한 인증](#security_iam_authentication)
+ [정책을 사용하여 액세스 관리](#security_iam_access-manage)
+ [AWS Transfer Family 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md)
+ [AWS Transfer Family 자격 증명 기반 정책 예제](security_iam_id-based-policy-examples.md)
+ [AWS Transfer Family 태그 기반 정책 예제](security_iam_tag-based-policy-examples.md)
+ [AWS Transfer Family 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md)
+ [조직 거버넌스를 위한 IAM 조건 키](transfer-condition-keys.md)

## 대상
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM)를 사용하는 방법은 역할에 따라 다릅니다.
+ **서비스 사용자** - 기능에 액세스할 수 없는 경우 관리자에게 권한 요청(참조[AWS Transfer Family 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md))
+ **서비스 관리자** - 사용자 액세스 결정 및 권한 요청 제출([AWS Transfer Family 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md) 참조)
+ **IAM 관리자** - 액세스를 관리하기 위한 정책 작성([AWS Transfer Family 자격 증명 기반 정책 예제](security_iam_id-based-policy-examples.md) 참조)

## ID를 통한 인증
<a name="security_iam_authentication"></a>

인증은 자격 증명 자격 증명을 AWS 사용하여에 로그인하는 방법입니다. AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할을 수임하여 인증되어야 합니다.

 AWS IAM Identity Center (IAM Identity Center), Single Sign-On 인증 또는 Google/Facebook 자격 증명과 같은 자격 증명 소스의 자격 증명을 사용하여 페더레이션 자격 증명으로 로그인할 수 있습니다. 로그인하는 방법에 대한 자세한 내용은 *AWS Sign-In 사용 설명서*의 [AWS 계정에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 섹션을 참조하세요.

프로그래밍 방식 액세스를 위해는 요청에 암호화 방식으로 서명할 수 있는 SDK 및 CLI를 AWS 제공합니다. 자세한 내용은 *IAM 사용 설명서*의 [API 요청용AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 섹션을 참조하세요.

### AWS 계정 루트 사용자
<a name="security_iam_authentication-rootuser"></a>

 를 생성할 때 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 AWS 계정 *theroot 사용자*라는 하나의 로그인 자격 증명으로 AWS 계정시작합니다. 일상적인 태스크에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 자격 증명이 필요한 작업은 *IAM 사용 설명서*의 [루트 사용자 자격 증명이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) 섹션을 참조하세요.

### 페더레이션 ID
<a name="security_iam_authentication-federateduser"></a>

가장 좋은 방법은 인간 사용자에게 자격 증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 서비스 사용하여에 액세스하도록 요구하는 것입니다.

*페더레이션 자격 증명*은 엔터프라이즈 디렉터리, 웹 자격 증명 공급자 또는 자격 증명 소스의 자격 증명을 AWS 서비스 사용하여 Directory Service 에 액세스하는 사용자입니다. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 수임합니다.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center를 추천합니다. 자세한 정보는 *AWS IAM Identity Center 사용 설명서*의 [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 참조하세요.

### IAM 사용자 및 그룹
<a name="security_iam_authentication-iamuser"></a>

*[IAM 사용자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가진 ID입니다. 장기 자격 증명이 있는 IAM 사용자 대신 임시 자격 증명을 사용하는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 자격 [증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 사용하여에 액세스하도록 인간 사용자에게 요구](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)하기를 참조하세요.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)은 IAM 사용자 모음을 지정하고 대규모 사용자 집합에 대한 관리 권한을 더 쉽게 만듭니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자 사용 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) 섹션을 참조하세요.

### IAM 역할
<a name="security_iam_authentication-iamrole"></a>

*[IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*은 임시 자격 증명을 제공하는 특정 권한이 있는 자격 증명입니다. [사용자에서 IAM 역할(콘솔)로 전환하거나 또는 API 작업을 호출하여 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) 수임할 수 있습니다. AWS CLI AWS 자세한 내용은 *IAM 사용 설명서*의 [역할 수임 방법](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)을 참조하세요.

IAM 역할은 페더레이션 사용자 액세스, 임시 IAM 사용자 권한, 교차 계정 액세스, 교차 서비스 액세스 및 Amazon EC2에서 실행되는 애플리케이션에 유용합니다. 자세한 내용은 *IAM 사용 설명서*의 [교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## 정책을 사용하여 액세스 관리
<a name="security_iam_access-manage"></a>

정책을 AWS 생성하고 자격 증명 또는 리소스에 연결하여 AWS 에서 액세스를 제어합니다. 정책은 자격 증명 또는 리소스와 연결될 때 권한을 정의합니다.는 보안 주체가 요청할 때 이러한 정책을 AWS 평가합니다. 대부분의 정책은에 JSON 문서 AWS 로 저장됩니다. JSON 정책 문서에 대한 자세한 내용은 *IAM 사용 설명서*의 [JSON 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) 섹션을 참조하세요.

정책을 사용하여 관리자는 어떤 **보안 주체**가 어떤 **리소스**에 대해 어떤 **조건**에서 **작업**을 수행할 수 있는지 정의하여 누가 무엇을 액세스할 수 있는지 지정합니다.

기본적으로 사용자 및 역할에는 어떠한 권한도 없습니다. IAM 관리자는 IAM 정책을 생성하고 사용자가 수임할 수 있는 역할에 추가합니다. IAM 정책은 작업을 수행하기 위해 사용하는 방법과 관계없이 작업에 대한 권한을 정의합니다.

### ID 기반 정책
<a name="security_iam_access-manage-id-based-policies"></a>

ID 기반 정책은 ID(사용자, 사용자 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서입니다. 이러한 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

ID 기반 정책은 *인라인 정책*(단일 ID에 직접 포함) 또는 *관리형 정책*(여러 ID에 연결된 독립 실행형 정책)일 수 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 *IAM 사용 설명서*의 [관리형 정책 및 인라인 정책 중에서 선택](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) 섹션을 참조하세요.

### 리소스 기반 정책
<a name="security_iam_access-manage-resource-based-policies"></a>

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 예를 들어 IAM *역할 신뢰 정책* 및 Amazon S3 *버킷 정책*이 있습니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책입니다. 리소스 기반 정책에서는 IAM의 AWS 관리형 정책을 사용할 수 없습니다.

### 액세스 제어 목록(ACL)
<a name="security_iam_access-manage-acl"></a>

액세스 제어 목록(ACL)은 어떤 위탁자(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACL은 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

Amazon S3 AWS WAF및 Amazon VPC는 ACLs. ACL에 관한 자세한 내용은 *Amazon Simple Storage Service 개발자 가이드*의 [액세스 제어 목록(ACL) 개요](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)를 참조하세요.

### 기타 정책 타입
<a name="security_iam_access-manage-other-policies"></a>

AWS 는 보다 일반적인 정책 유형에서 부여한 최대 권한을 설정할 수 있는 추가 정책 유형을 지원합니다.
+ **권한 경계** - ID 기반 정책에서 IAM 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 엔터티의 권한 범위](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.
+ **서비스 제어 정책(SCP)** - AWS Organizations내 조직 또는 조직 단위에 대한 최대 권한을 지정합니다. 자세한 내용은AWS Organizations 사용 설명서의 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.**
+ **리소스 제어 정책(RCP)** – 계정의 리소스에 사용할 수 있는 최대 권한을 설정합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)을 참조하세요.
+ **세션 정책** – 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 자세한 내용은 *IAM 사용 설명서*의 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

### 여러 정책 유형
<a name="security_iam_access-manage-multiple-policies"></a>

여러 정책 유형이 요청에 적용되는 경우, 결과 권한은 이해하기가 더 복잡합니다. 에서 여러 정책 유형이 관련될 때 요청을 허용할지 여부를 AWS 결정하는 방법을 알아보려면 *IAM 사용 설명서*의 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)을 참조하세요.

# AWS Transfer Family 에서 IAM을 사용하는 방법
<a name="security_iam_service-with-iam"></a>

 AWS Identity and Access Management (IAM)을 사용하여 액세스를 관리하기 전에 어떤 IAM 기능을 사용할 수 있는지 이해해야 AWS Transfer Family합니다 AWS Transfer Family. AWS Transfer Family 및 기타 AWS 서비스에서 IAM을 사용하는 방법을 개괄적으로 알아보려면 *IAM 사용 설명서*의 [AWS IAM으로 작업하는 서비스를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 참조하세요.

**Topics**
+ [AWS Transfer Family 자격 증명 기반 정책](#security_iam_service-with-iam-id-based-policies)
+ [AWS Transfer Family 리소스 기반 정책](#security_iam_service-with-iam-resource-based-policies)
+ [AWS Transfer Family 태그 기반 권한 부여](#security_iam_service-with-iam-tags)
+ [AWS Transfer Family IAM 역할](#security_iam_service-with-iam-roles)

## AWS Transfer Family 자격 증명 기반 정책
<a name="security_iam_service-with-iam-id-based-policies"></a>

IAM 보안 인증 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스 및 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. AWS Transfer Family 은(는) 특정 작업, 리소스 및 조건 키를 지원합니다. JSON 정책에서 사용하는 모든 요소에 대해 알아보려면 *AWS Identity and Access Management 사용자 가이드*의 [IAM JSON 정책 요소 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)를 참조하세요.

### 작업
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 `Action`요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하세요.

의 정책 작업은 작업 앞에 접두사를 AWS Transfer Family 사용합니다`transfer:`. 예를 들어 Transfer Family `CreateServer` API 작업으로 서버를 생성할 수 있는 권한을 부여하려면 해당 정책에 `transfer:CreateServer` 작업을 포함합니다. 정책 명령문에는 `Action` 또는 `NotAction` 요소가 포함되어야 합니다. AWS Transfer Family 는 이 서비스로 수행할 수 있는 작업을 설명하는 고유한 작업 집합을 정의합니다.

명령문 하나에 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.

```
"Action": [
      "transfer:action1",
      "transfer:action2"
```

와일드카드(\$1)를 사용하여 여러 작업을 지정할 수 있습니다. 예를 들어, `Describe`라는 단어로 시작하는 모든 작업을 지정하려면 다음 작업을 포함합니다.

```
"Action": "transfer:Describe*"
```

 AWS Transfer Family 작업 목록을 보려면 *서비스 승인* 참조의에서 [정의한 작업을 AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html#awstransferfamily-actions-as-permissions) 참조하세요.

### 리소스
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Resource` JSON 정책 요소는 작업이 적용되는 하나 이상의 객체를 지정합니다. 모범 사례에 따라 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)을 사용하여 리소스를 지정합니다. 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(\$1)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

```
"Resource": "*"
```

Transfer Family 서버 리소스에는 다음 ARN이 있습니다.

```
arn:aws:transfer:${Region}:${Account}:server/${ServerId}
```

예를 들어, 명령문에 `s-01234567890abcdef` Transfer Family 서버를 지정하려면 다음 ARN을 사용합니다.

```
"Resource": "arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef"
```

ARN 형식에 대한 자세한 설명은 *서비스 승인 참조*에서 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 또는 *IAM 사용자 가이드*에서 [IAM ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)을 참조하세요.

특정 계정에 속하는 모든 인스턴스를 지정하려면 와일드카드(\$1)를 사용합니다.

```
"Resource": "arn:aws:transfer:us-east-1:123456789012:server/*"
```

일부 AWS Transfer Family 작업은 IAM 정책에 사용되는 리소스와 같은 여러 리소스에서 수행됩니다. 이러한 경우, 와일드카드(\$1)를 사용해야 합니다.

```
"Resource": "arn:aws:transfer:*:123456789012:server/*"
```

Transfer Family 서버 및 사용자에 대한 액세스를 허용하는 정책을 만드는 경우와 같이 둘 이상의 리소스 타입을 지정해야 하는 경우도 있습니다. 단일 명령문에서 여러 리소스를 지정하려면 ARN을 쉼표로 구분합니다.

```
"Resource": [
      "resource1",
      "resource2"
            ]
```

 AWS Transfer Family 리소스 목록을 보려면 *서비스 승인* 참조의에서 [정의한 리소스 유형을 AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html#awstransferfamily-resources-for-iam-policies) 참조하세요.

### 조건 키
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Condition` 요소는 정의된 기준에 따라 문이 실행되는 시기를 지정합니다. 같음(equals) 또는 미만(less than)과 같은 [조건 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다. 모든 AWS 전역 조건 키를 보려면 *IAM 사용 설명서*의 [AWS 전역 조건 컨텍스트 키를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 참조하세요.

AWS Transfer Family 는 자체 조건 키 세트를 정의하고 일부 전역 조건 키 사용을 지원합니다. AWS Transfer Family 조건 키 목록을 보려면 *서비스 승인* 참조의에 [대한 조건 키를 AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html#awstransferfamily-policy-keys) 참조하세요.

### 예제
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

자격 AWS Transfer Family 증명 기반 정책의 예를 보려면 섹션을 참조하세요[AWS Transfer Family 자격 증명 기반 정책 예제](security_iam_id-based-policy-examples.md). VPC 엔드포인트별 IAM 정책은 섹션을 참조하세요[Transfer Family 서버에 대한 VPC 엔드포인트 액세스 제한](create-server-in-vpc.md#limit-vpc-endpoint-access).

## AWS Transfer Family 리소스 기반 정책
<a name="security_iam_service-with-iam-resource-based-policies"></a>

리소스 기반 정책은 지정된 보안 주체가 AWS Transfer Family 리소스에 대해 수행할 수 있는 작업과 조건을 지정하는 JSON 정책 문서입니다. Amazon S3은 Amazon S3 *버킷*에 대한 리소스 기반 권한 정책을 지원합니다. 리소스 기반 정책을 사용하여 리소스별로 다른 계정에 사용 권한을 부여할 수 있습니다. 리소스 기반 정책을 사용하여 AWS 서비스가 Amazon S3 *버킷*에 액세스하도록 허용할 수도 있습니다.

교차 계정 액세스를 활성화하려는 경우, 전체 계정이나 다른 계정의 IAM 엔터티를 [리소스 기반 정책의 위탁자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)로 지정할 수 있습니다. 리소스 기반 정책에 교차 계정 위탁자를 추가하는 것은 트러스트 관계 설정의 절반밖에 되지 않는다는 것을 유념하세요. 보안 주체와 리소스가 서로 다른 AWS 계정에 있는 경우 보안 주체 엔터티에 리소스에 액세스할 수 있는 권한도 부여해야 합니다. 엔터티에 자격 증명 기반 정책을 연결하여 권한을 부여합니다. 하지만 리소스 기반 정책이 동일 계정의 보안 주체에 액세스를 부여하는 경우 추가 보안 인증 기반 정책이 필요하지 않습니다. 자세한 내용은 *AWS Identity and Access Management 사용자 가이드*의 [IAM 역할과 리소스 기반 정책의 차이](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)를 참조하세요.

Amazon ECR 서비스는 리소스 기반 정책 중 한 가지 타입만 지원하는데, 이 정책 타입은 **버킷* 정책*이라고 하며 *버킷*에 연결되어 있습니다. 이 정책은 객체에서 작업을 수행할 수 있는 보안 주체 엔터티(계정, 사용자, 역할 및 연동 사용자)를 정의합니다.

### 예제
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>



 AWS Transfer Family 리소스 기반 정책의 예를 보려면 섹션을 참조하세요[AWS Transfer Family 태그 기반 정책 예제](security_iam_tag-based-policy-examples.md).

## AWS Transfer Family 태그 기반 권한 부여
<a name="security_iam_service-with-iam-tags"></a>

 AWS Transfer Family 리소스에 태그를 연결하거나 요청에 태그를 전달할 수 있습니다 AWS Transfer Family. 태그에 근거하여 액세스를 제어하려면 `transfer:ResourceTag/key-name`, `aws:RequestTag/key-name`또는 `aws:TagKeys`조건 키를 사용하여 정책의 [조건 요소](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)에 태그 정보를 제공합니다. 태그를 사용하여 AWS Transfer Family 리소스에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 섹션을 참조하세요[AWS Transfer Family 태그 기반 정책 예제](security_iam_tag-based-policy-examples.md).

## AWS Transfer Family IAM 역할
<a name="security_iam_service-with-iam-roles"></a>

[IAM 역할은](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) 특정 권한이 있는 AWS 계정 내 엔터티입니다.

### 에서 임시 자격 증명 사용 AWS Transfer Family
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

임시 보안 인증을 사용하여 페더레이션을 통해 로그인하거나, IAM 역할을 맡거나, 교차 계정 역할을 맡을 수 있습니다. [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 또는 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)과 같은 AWS STS API 작업을 호출하여 임시 보안 자격 증명을 얻습니다.

AWS Transfer Family 는 임시 자격 증명 사용을 지원합니다.

# AWS Transfer Family 자격 증명 기반 정책 예제
<a name="security_iam_id-based-policy-examples"></a>

기본적으로 IAM 사용자 및 역할은 AWS Transfer Family 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 또한 AWS Management Console AWS CLI또는 AWS API를 사용하여 작업을 수행할 수 없습니다. IAM 관리자는 지정된 리소스에서 특정 API 작업을 수행할 수 있는 권한을 사용자와 역할에게 부여하는 IAM 정책을 생성해야 합니다. 그런 다음 관리자는 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 정책을 연결해야 합니다.

이러한 예 JSON 정책 설명서를 사용하여 IAM 보안 인증 기반 정책을 생성하는 방법을 알아보려면 *AWS Identity and Access Management 사용자 가이드*의 [JSON 탭에서 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)을 참조하세요.

**Topics**
+ [정책 모범 사례](#security_iam_service-with-iam-policy-best-practices)
+ [AWS Transfer Family 콘솔 사용](#security_iam_id-based-policy-examples-console)
+ [사용자가 자신이 권한을 볼 수 있도록 허용](#security_iam_id-based-policy-examples-view-own-permissions)

## 정책 모범 사례
<a name="security_iam_service-with-iam-policy-best-practices"></a>

자격 증명 기반 정책에 따라 계정에서 사용자가 AWS Transfer Family 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부가 결정됩니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. ID 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따르세요.
+ ** AWS 관리형 정책을 시작하고 최소 권한으로 전환 -** 사용자 및 워크로드에 권한 부여를 시작하려면 많은 일반적인 사용 사례에 대한 권한을 부여하는 *AWS 관리형 정책을* 사용합니다. 에서 사용할 수 있습니다 AWS 계정. 사용 사례에 맞는 AWS 고객 관리형 정책을 정의하여 권한을 추가로 줄이는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 또는 [AWS 직무에 대한 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.
+ **최소 권한 적용** – IAM 정책을 사용하여 권한을 설정하는 경우, 작업을 수행하는 데 필요한 권한만 부여합니다. 이렇게 하려면 *최소 권한*으로 알려진 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의합니다. IAM을 사용하여 권한을 적용하는 방법에 대한 자세한 정보는 *IAM 사용 설명서*에 있는 [IAM의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.
+ **IAM 정책의 조건을 사용하여 액세스 추가 제한** – 정책에 조건을 추가하여 작업 및 리소스에 대한 액세스를 제한할 수 있습니다. 예를 들어, SSL을 사용하여 모든 요청을 전송해야 한다고 지정하는 정책 조건을 작성할 수 있습니다. AWS 서비스와 같은 특정를 통해 사용되는 경우 조건을 사용하여 서비스 작업에 대한 액세스 권한을 부여할 수도 있습니다 CloudFormation. 자세한 내용은 *IAM 사용 설명서*의 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.
+ **IAM Access Analyzer를 통해 IAM 정책을 확인하여 안전하고 기능적인 권한 보장** - IAM Access Analyzer에서는 IAM 정책 언어(JSON)와 모범 사례가 정책에서 준수되도록 새로운 및 기존 정책을 확인합니다. IAM Access Analyzer는 100개 이상의 정책 확인 항목과 실행 가능한 추천을 제공하여 안전하고 기능적인 정책을 작성하도록 돕습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM Access Analyzer에서 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.
+ **다중 인증(MFA) 필요 -**에서 IAM 사용자 또는 루트 사용자가 필요한 시나리오가 있는 경우 추가 보안을 위해 MFA를 AWS 계정켭니다. API 작업을 직접적으로 호출할 때 MFA가 필요하면 정책에 MFA 조건을 추가합니다. 자세한 내용은 *IAM 사용 설명서*의 [MFA를 통한 보안 API 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)를 참조하세요.

IAM의 모범 사례에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

## AWS Transfer Family 콘솔 사용
<a name="security_iam_id-based-policy-examples-console"></a>

 AWS Transfer Family 콘솔에 액세스하려면 최소 권한 집합이 있어야 합니다. 이러한 권한은 AWS 계정의 AWS Transfer Family 리소스에 대한 세부 정보를 나열하고 볼 수 있도록 허용해야 합니다. 최소 필수 권한보다 더 제한적인 보안 인증 기반 정책을 만들면 콘솔이 해당 정책에 연결된 개체(IAM 사용자 또는 역할)에 대해 의도대로 작동하지 않습니다. 자세한 내용은 *AWS Identity and Access Management 사용자 가이드*의 [사용자에게 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)를 참조하세요.

 AWS CLI 또는 AWS API만 호출하는 사용자에게는 최소 콘솔 권한을 허용할 필요가 없습니다. 그 대신, 수행하려는 API 작업과 일치하는 작업에만 액세스할 수 있도록 합니다.

## 사용자가 자신이 권한을 볼 수 있도록 허용
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

이 예제는 IAM 사용자가 자신의 사용자 ID에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI 또는 AWS API를 사용하여 프로그래밍 방식으로이 작업을 완료할 수 있는 권한이 포함됩니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS Transfer Family 태그 기반 정책 예제
<a name="security_iam_tag-based-policy-examples"></a>

다음은 태그를 기반으로 AWS Transfer Family 리소스에 대한 액세스를 제어하는 방법의 예입니다.

## 태그를 사용하여 AWS Transfer Family 리소스에 대한 액세스 제어
<a name="tag-access-control"></a>

IAM 정책의 조건은 AWS Transfer Family 리소스에 대한 권한을 지정하는 데 사용하는 구문의 일부입니다. AWS Transfer Family 리소스의 태그를 기반으로 리소스(예: 사용자, 서버, 역할 및 기타 엔터티)에 대한 액세스를 제어할 수 있습니다. 태그는 키/값 쌍입니다. 리소스 태그 지정에 대한 자세한 내용은의 [AWS 리소스 태그 지정](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)을 참조하세요*AWS 일반 참조*.

에서 AWS Transfer Family리소스에는 태그가 있을 수 있으며 일부 작업에는 태그가 포함될 수 있습니다. IAM 정책을 생성하면 태그 조건 키를 사용하여 다음을 통제할 수 있습니다.
+  AWS Transfer Family 리소스에 있는 태그를 기반으로 리소스에 대해 작업을 수행할 수 있는 사용자입니다.
+ 어떤 태그가 작업의 요청에서 전달될 수 있는지 통제합니다.
+ 요청에서 특정 키를 사용할 수 있는지 여부를 통제합니다.

태그 기반 액세스 통제를 사용하면 API 수준에서보다 더 세밀한 통제를 적용할 수 있습니다. 또한 리소스 기반 액세스 통제를 사용하는 것보다 더 동적인 통제를 적용할 수 있습니다. 요청에서 제공된 태그(요청 태그)를 기반으로 작업을 허용하거나 거부하는 IAM 정책을 생성할 수 있습니다. 작업 중인 리소스에 대한 태그(리소스 태그)를 기반으로 IAM 정책을 생성할 수 있습니다. 일반적으로 리소스 태그는 리소스에 이미 있는 태그용이고, 요청 태그는 리소스에 태그를 추가하거나 리소스에서 태그를 제거할 때 사용됩니다.

태그 조건 키의 전체 구문 및 의미는 *IAM 사용자 가이드*의 [AWS 리소스 태그를 사용한 액세스 통제](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)를 참조하세요. API Gateway로 IAM 정책을 지정하는 방법에 대한 자세한 설명은 *API Gateway 개발자 가이드*의 [IAM 권한으로 API에 대한 액세스 통제](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html)를 참조하세요.

### 예 1: 리소스 태그 기반 작업 거부
<a name="transfer-deny-actions-resource-tag"></a>

태그를 기반으로 리소스에서 수행할 작업을 거부할 수 있습니다. 다음 예 정책은 사용자 또는 서버 리소스에 키 `stage`와(과) 값 `prod`이(가) 태그 지정된 경우 `TagResource`, `UntagResource`, `StartServer`, `StopServer`, `DescribeServer`, `DescribeUser` 작업을 거부합니다. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 예 2: 리소스 태그 기반 작업 허용
<a name="transfer-allow-actions-resource-tag"></a>

태그를 기반으로 리소스에서 작업을 수행하도록 허용할 수 있습니다. 다음 예 정책은 사용자 또는 서버 리소스에 키 `stage`와(과) 값 `prod`이(가) 태그 지정된 경우 `TagResource`, `UntagResource`, `StartServer`, `StopServer`, `DescribeServer`, `DescribeUser` 작업을 거부합니다. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 예 3: 요청 태그에 따른 사용자 또는 서버 생성 거부
<a name="transfer-deny-server-creation-tag"></a>

다음의 정책 예에는 명령문이 2개입니다. 첫 번째 명령문은 태그의 코스트 센터 키에 값이 없는 경우 모든 리소스에 대한 `CreateServer` 작업을 거부합니다.

두 번째 명령문은 태그의 코스트 센터 키에 1, 2 또는 3을 제외한 다른 값이 포함된 경우 `CreateServer` 작업을 거부합니다.

**참고**  
이 정책은 `1`, `2`, 또는 `3` 라는 `costcenter` 키와 값을 포함하는 리소스를 만들거나 삭제할 수 있도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        { 
            "Effect": "Deny",
            "Action": [
                "transfer:CreateServer"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "Null":  {
                    "aws:RequestTag/costcenter": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "transfer:CreateServer",
            "Resource": [
                "*"
            ],
            "Condition": {
                "ForAnyValue:StringNotEquals": {
                    "aws:RequestTag/costcenter": [
                        "1",
                        "2",
                        "3"
                    ]
                }
            }
        }           
    ]
}
```

# AWS Transfer Family 자격 증명 및 액세스 문제 해결
<a name="security_iam_troubleshoot"></a>

다음 정보를 사용하여 및 IAM으로 작업할 때 발생할 수 있는 일반적인 문제를 진단 AWS Transfer Family 하고 수정할 수 있습니다.

**Topics**
+ [에서 작업을 수행할 권한이 없음 AWS Transfer Family](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole을 수행하도록 인증되지 않음](#security_iam_troubleshoot-passrole)
+ [내 AWS 계정 외부의 사람이 내 AWS Transfer Family 리소스에 액세스하도록 허용하고 싶습니다.](#security_iam_troubleshoot-cross-account-access)

## 에서 작업을 수행할 권한이 없음 AWS Transfer Family
<a name="security_iam_troubleshoot-no-permissions"></a>

에서 작업을 수행할 권한이 없다는 AWS Management Console 메시지가 표시되면 관리자에게 문의하여 도움을 받아야 합니다. 관리자는 로그인 보안 인증 정보를 제공한 사람입니다.

다음 예 오류는 `mateojackson` IAM 사용자가 콘솔을 사용하여 *위젯*에 대한 세부 정보를 보려고 하지만 `transfer:GetWidget` 권한이 없는 경우에 발생합니다.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: transfer:GetWidget on resource: my-example-widget
```

이 경우, Mateo는 `my-example-widget` 작업을 사용하여 `transfer;:GetWidget` 리소스에 액세스하도록 허용하는 정책을 업데이트하라고 관리자에게 요청합니다.

## iam:PassRole을 수행하도록 인증되지 않음
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` 작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 AWS Transfer Family에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.

일부 AWS 서비스 에서는 새 서비스 역할 또는 서비스 연결 역할을 생성하는 대신 기존 역할을 해당 서비스에 전달할 수 있습니다. 이렇게 하려면 역할을 서비스에 전달할 권한이 있어야 합니다.

다음 예 오류는 `marymajor`라는 IAM 사용자가 콘솔을 사용하여 AWS Transfer Family에서 작업을 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 권한이 없습니다.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

이 경우, Mary가 `iam:PassRole`작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

다음 예 정책에는 역할을 AWS Transfer Family에 전달할 권한이 포함되어 있습니다. **123456789012**를 AWS 계정 ID로 바꾸고 **MyTransferRole**를 실제 IAM 역할 이름으로 바꿉니다.

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      { "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::123456789012:role/MyTransferRole",
        "Effect": "Allow"
      } 
   ]
}
```

## 내 AWS 계정 외부의 사람이 내 AWS Transfer Family 리소스에 액세스하도록 허용하고 싶습니다.
<a name="security_iam_troubleshoot-cross-account-access"></a>

다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우, 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.

자세한 내용은 다음을 참조하세요.
+ 에서 이러한 기능을 AWS Transfer Family 지원하는지 여부를 알아보려면 섹션을 참조하세요[AWS Transfer Family 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md).
+ 소유 AWS 계정 한의 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 [IAM 사용 설명서의 소유한 다른의 IAM 사용자에게 액세스 권한 제공을 참조 AWS 계정 하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html). ** 
+ 타사에 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [타사가 AWS 계정 소유한에 대한 액세스 권한 제공을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) AWS 계정참조하세요.
+ ID 페더레이션을 통해 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [외부에서 인증된 사용자에게 액세스 권한 제공(ID 페더레이션)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)을 참조하세요.
+ 크로스 계정 액세스에 대한 역할과 리소스 기반 정책 사용의 차이점을 알아보려면 *IAM 사용 설명서*의 [IAM의 크로스 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

# 조직 거버넌스를 위한 IAM 조건 키
<a name="transfer-condition-keys"></a>

AWS Transfer Family 는 모든 IAM 정책에서 리소스 구성을 제한할 수 있는 IAM 조건 키를 제공합니다. 이러한 조건 키는 사용자 또는 역할에 연결된 자격 증명 기반 정책 또는 조직 거버넌스를 위한 서비스 제어 정책(SCPs)에 사용할 수 있습니다.

서비스 제어 정책은 전체 AWS 조직에 적용되는 IAM 정책으로, 여러 계정에 걸쳐 예방 가드레일을 제공합니다. SCPs에서 이러한 조건 키를 사용하면 조직 전체에서 보안 및 규정 준수 요구 사항을 적용하는 데 도움이 됩니다.

**참고 항목**
+ [Transfer Family에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)
+ [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)
+ 서비스 제어 정책을 사용하여 예방 가드레일을 적용하는 방법을 설명하는 동영상  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/mEO05mmbSms/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/mEO05mmbSms)

## 사용 가능한 조건 키
<a name="scp-condition-keys"></a>

AWS Transfer Family 는 IAM 정책에 사용할 수 있는 다음과 같은 조건 키를 지원합니다.

`transfer:RequestServerEndpointType`  
엔드포인트 유형(PUBLIC, VPC, VPC\$1ENDPOINT)에 따라 서버 생성 및 업데이트를 제한합니다. 일반적으로 퍼블릭 엔드포인트를 방지하는 데 사용됩니다.

`transfer:RequestServerProtocols`  
지원되는 프로토콜(SFTP, FTPS, FTP, AS2)을 기반으로 서버 생성 및 업데이트를 제한합니다.

`transfer:RequestServerDomain`  
도메인 유형(S3, EFS)에 따라 서버 생성을 제한합니다.

`transfer:RequestConnectorProtocol`  
프로토콜(AS2, SFTP)을 기반으로 커넥터 생성을 제한합니다.

## 지원되는 작업
<a name="scp-supported-actions"></a>

조건 키는 다음 AWS Transfer Family 작업에 적용할 수 있습니다.
+ `CreateServer`: `RequestServerEndpointType`, `RequestServerProtocols`및 `RequestServerDomain` 조건 키 지원
+ `UpdateServer`: `RequestServerEndpointType` 및 `RequestServerProtocols` 조건 키 지원
+ `CreateConnector`: `RequestConnectorProtocol` 조건 키 지원

## SCP 정책 예제
<a name="scp-example-policy"></a>

다음 예제 SCP는 조직 전체에서 퍼블릭 AWS Transfer Family 서버 생성을 방지합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyPublicTransferServers",
        "Effect": "Deny",
        "Action": ["transfer:CreateServer", "transfer:UpdateServer"],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "transfer:RequestServerEndpointType": "PUBLIC"
            }
        }
    }]
}
```

# 에 대한 규정 준수 검증 AWS Transfer Family
<a name="transfer-compliance"></a>

타사 감사자는 여러 규정 준수 프로그램의 AWS Transfer Family 일환으로의 보안 및 AWS 규정 준수를 평가합니다. 여기에는 SOC, PCI, HIPAA 등이 포함됩니다. 전체 목록은 [AWS 규정 준수 프로그램 제공 범위 내 서비스를 참조하세요](https://aws.amazon.com/compliance/services-in-scope).

특정 규정 준수 프로그램 범위의 AWS 서비스 목록은 [AWS 규정 준수 프로그램별 범위 내 서비스를](https://aws.amazon.com/compliance/services-in-scope/) 참조하세요. 일반 정보는 [AWS 규정 준수 프로그램](https://aws.amazon.com/compliance/programs/)을 참조하세요.

를 사용하여 타사 감사 보고서를 다운로드할 수 있습니다 AWS Artifact. 자세한 내용은 [에서 보고서 다운로드를 참조하세요 AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

사용 시 규정 준수 책임은 데이터의 민감도, 회사의 규정 준수 목표 및 관련 법률과 규정에 따라 결정됩니다. AWS Transfer Family 는 규정 준수를 지원할 다음과 같은 리소스를 AWS 제공합니다.
+ [보안 및 규정 준수 빠른 시작 가이드](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) -이 배포 가이드에서는 아키텍처 고려 사항에 대해 설명하고 보안 및 규정 준수 중심 기준 환경을 배포하기 위한 단계를 제공합니다 AWS.
+ [HIPAA 보안 및 규정 준수를 위한 설계 백서 ](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/introduction.html)-이 백서에서는 기업이를 사용하여 HIPAA 준수 애플리케이션을 AWS 생성하는 방법을 설명합니다.
+ [AWS 규정 준수 리소스](https://aws.amazon.com/compliance/resources/) – 사용자의 업계와 위치에 해당할 수 있는 워크북 및 가이드 모음입니다.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) -이 AWS 서비스는 리소스 구성이 내부 관행, 업계 지침 및 규정을 얼마나 잘 준수하는지 평가합니다.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) -이 AWS 서비스는 보안 업계 표준 및 모범 사례 준수를 확인하는 데 도움이 AWS 되는 내 보안 상태에 대한 포괄적인 보기를 제공합니다.

# 의 복원력 AWS Transfer Family
<a name="disaster-recovery-resiliency"></a>

 AWS 글로벌 인프라는 AWS 리전 및 가용 영역을 중심으로 구축됩니다. AWS 리전은 물리적으로 분리되고 격리된 여러 가용 영역을 제공하며,이 가용 영역은 지연 시간이 짧고 처리량이 높으며 중복성이 높은 네트워킹과 연결됩니다. 가용 영역을 사용하면 중단 없이 가용 영역 간에 자동으로 장애 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다. 가용 영역은 기존의 단일 또는 복수 데이터 센터 인프라보다 가용성, 내결함성, 확장성이 뛰어납니다.

AWS Transfer Family 는 최대 3개의 가용 영역을 지원하며 연결 및 전송 요청을 위한 Auto Scaling 중복 플릿을 지원합니다.

모든 Transfer Family 엔드포인트의 경우:
+  가용 영역 수준 중복성이 서비스에 내장되어 있습니다.
+ 각 AZ에는 중복 플릿이 있습니다.
+ 이 중복성은 자동으로 제공됩니다.

**참고**  
Virtual Private Cloud(VPC)의 엔드포인트의 경우 단일 서브넷을 제공할 수 있습니다. 그러나 가용 영역 중단 중 서비스 중단 위험을 줄이려면 VPC 내의 여러 가용 영역에 엔드포인트를 생성하는 것이 좋습니다.

**참고 항목**
+ VPC에서 Transfer Family 서버를 생성하는 방법에 대한 자세한 내용은 섹션을 참조하세요[Virtual Private Cloud(VPC)에 서버 생성](create-server-in-vpc.md).
+  AWS 리전 및 가용 영역에 대한 자세한 내용은 [AWS 글로벌 인프라를](https://aws.amazon.com/about-aws/global-infrastructure/) 참조하세요.
+ 지연 시간 기반 라우팅을 사용하여 중복성을 높이고 네트워크 지연 시간을 최소화하는 방법에 대한 예는 블로그 게시물 [AWS Transfer Family 서버의 네트워크 지연 시간 최소화를 참조하세요](https://aws.amazon.com/blogs/storage/minimize-network-latency-with-your-aws-transfer-for-sftp-servers/).

# VPC와 AWS Transfer Family APIs 간에 프라이빗 연결 생성
<a name="vpc-api-endpoints"></a>

PrivateLink로 구동되는 *인터페이스 VPC 엔드포인트를 생성하여 VPC*와 AWS Transfer Family APIs 간에 프라이빗 연결을 설정할 수 있습니다. [AWS PrivateLink](https://aws.amazon.com/privatelink/) 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결을 사용하지 않고 VPC에 있는 것처럼 AWS Transfer Family APIs에 액세스할 수 있습니다. VPC의 인스턴스는 AWS Transfer Family API와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않습니다.

인터페이스 엔드포인트에 대해 사용 설정하는 각 서브넷에서 엔드포인트 네트워크 인터페이스를 생성합니다. 자세한 내용은 [PrivateLink 가이드의 Access AWS services AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) throughPrivateLink를 참조하세요. *AWS PrivateLink * AWS Transfer Family APIs에 대한 인터페이스 VPC 엔드포인트를 설정하기 전에 *AWS PrivateLink 가이드*의 [고려 사항을](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints) 검토하세요.

## VPC 엔드포인트 정책을 사용하여 액세스 제어
<a name="vpc-endpoint-considerations"></a>

기본적으로 엔드포인트를 통해 AWS Transfer Family APIs에 대한 전체 액세스가 허용됩니다. VPC 엔드포인트 정책을 사용하여 인터페이스 엔드포인트에 대한 액세스를 제어할 수 있습니다. AWS Transfer Family APIs. 이 정책은 다음 정보를 지정합니다.
+ 작업을 수행할 수 있는 **위탁자**.
+ 수행할 수 있는 **작업**.
+ 작업을 수행할 수 있는 **리소스**.

자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC 엔드포인트를 통해 서비스에 대한 액세스 제어](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)를 참조하세요.

다음은 AWS Transfer Family APIs. 엔드포인트에 연결되면이 정책은 키 `Environment` 및 값으로 태그가 지정된 리소스를 제외한 모든 리소스의 모든 AWS Transfer Family APIs 작업에 대한 액세스 권한을 부여합니다`Test`.

```
{
    "Statement": [{
        "Effect": "Deny",
        "Action": "transfer:StartFileTransfer",
        "Principal": "*",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:ResourceTag/Environment": "Test"
            }
        }
    }, {
        "Effect": "Allow",
        "Action": "transfer:*",
        "Principal": "*",
        "Resource": "*"
    }]
}
```

## AWS Transfer Family APIs용 인터페이스 VPC 엔드포인트 생성
<a name="create-vpc-endpoint"></a>

Amazon VPC 콘솔 또는 AWS 명령줄 인터페이스()를 사용하여 AWS Transfer Family APIs에 대한 VPC 엔드포인트를 생성할 수 있습니다AWS CLI. 자세한 내용은 *AWS PrivateLink 가이드*의 [VPC 엔드포인트 생성을](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) 참조하세요.

다음 서비스 이름 중 하나를 사용하여 AWS Transfer Family APIs용 VPC 엔드포인트를 생성합니다.
+ `com.amazonaws.region.transfer`
+ `com.amazonaws.region.transfer-fips` - FIPS(Federal Information Processing Standard) Publication 140-3 미국 정부 표준을 준수하는 인터페이스 VPC 엔드포인트를 생성합니다.

엔드포인트에 대해 프라이빗 DNS를 활성화하는 경우 리전의 기본 DNS 이름, 예를 들어를 사용하여 AWS Transfer Family APIs에 API를 요청할 수 있습니다`transfer.us-east-1.amazonaws.com`.

# 의 인프라 보안 AWS Transfer Family
<a name="infrastructure-security"></a>

관리형 서비스인는 AWS 글로벌 네트워크 보안으로 보호 AWS Transfer Family 됩니다. AWS 보안 서비스 및가 인프라를 AWS 보호하는 방법에 대한 자세한 내용은 [AWS 클라우드 보안을](https://aws.amazon.com/security/) 참조하세요. 인프라 보안 모범 사례를 사용하여 환경을 설계하려면 *보안 원칙 AWS Well‐Architected Framework*의 [인프라 보호를](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) 참조하세요 AWS .

 AWS 게시된 API 호출을 사용하여 네트워크를 AWS Transfer Family 통해에 액세스합니다. 클라이언트는 다음을 지원해야 합니다.
+ Transport Layer Security(TLS). TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ DHE(Ephemeral Diffie-Hellman) 또는 ECDHE(Elliptic Curve Ephemeral Diffie-Hellman)와 같은 완전 전송 보안(PFS)이 포함된 암호 제품군. Java 7 이상의 최신 시스템은 대부분 이러한 모드를 지원합니다.

## NLBs와 NATs를 AWS Transfer Family 서버 앞에 배치하지 마세요.
<a name="nlb-considerations"></a>

**참고**  
FTP 및 FTPS 프로토콜로 구성된 서버는 VPC로만 구성을 허용합니다. FTP/FTPS에 사용할 수 있는 퍼블릭 엔드포인트가 없습니다.

많은 고객이 트래픽을 AWS Transfer Family 서버로 라우팅하도록 Network Load Balancer(NLB)를 구성합니다. 일반적으로 VPC 내부와 인터넷 모두에서 서버에 액세스하거나 인터넷에서 FTP를 지원하는 방법을 AWS 제공하기 전에 서버를 생성했기 때문에이 작업을 수행합니다. 이 구성은 고객의 비용을 증가시킬 뿐만 아니라이 단원에서 설명하는 다른 문제를 일으킬 수도 있습니다.

NAT 게이트웨이는 클라이언트가 기업 방화벽 뒤의 고객 프라이빗 네트워크에서 연결할 때 필수 구성 요소입니다. 그러나 많은 클라이언트가 동일한 NAT 게이트웨이 뒤에 있는 경우 성능 및 연결 제한에 영향을 미칠 수 있다는 점에 유의해야 합니다. 클라이언트에서 FTP 또는 FTPS 서버로의 통신 경로에 NLB 또는 NAT가 있는 경우는 NLB 또는 NAT의 IP 주소만 AWS Transfer Family 보기 때문에 서버가 클라이언트의 IP 주소를 정확하게 인식할 수 없습니다.

NLB 뒤에 있는 Transfer Family 서버의 구성을 사용하는 경우 NLB를 사용하는 대신 VPC 엔드포인트로 이동하고 탄력적 IP 주소를 사용하는 것이 좋습니다. NAT 게이트웨이를 사용할 때는 아래 설명된 연결 제한 사항에 유의하세요.

FTPS 프로토콜을 사용하는 경우이 구성은 서버에 액세스하는 사용자를 감사하는 기능을 줄일 뿐만 아니라 성능에도 영향을 미칠 수 있습니다.는 소스 IP 주소를 AWS Transfer Family 사용하여 데이터 영역 전체에서 연결을 샤드합니다. FTPS의 경우 10,000개의 동시 연결이 있는 대신 통신 경로에 NLB 또는 NAT 게이트웨이가 있는 Transfer Family 서버는 300개의 동시 연결로만 제한됩니다.

 AWS Transfer Family 서버 앞에서 Network Load Balancer를 사용하지 않는 것이 좋지만 FTP 또는 FTPS 구현에 클라이언트의 통신 경로에 NLB 또는 NAT가 필요한 경우 다음 권장 사항을 따르세요.
+ NLB의 경우 포트 8192-8200 대신 상태 확인에 포트 21을 사용합니다.
+  AWS Transfer Family 서버의 경우를 설정하여 TLS 세션 재개를 활성화합니다`TlsSessionResumptionMode = ENFORCED`.
**참고**  
이는 향상된 보안을 제공하므로 권장되는 모드입니다.  
클라이언트가 후속 연결에 TLS 세션 재개를 사용해야 합니다.
일관된 암호화 파라미터를 보장하여 더 강력한 보안 보장을 제공합니다.
잠재적 다운그레이드 공격을 방지하는 데 도움이 됩니다.
성능을 최적화하면서 보안 표준 준수를 유지합니다.
+ 가능하면 NLB를 사용하지 않고 마이그레이션하여 성능 및 연결 제한을 최대한 활용 AWS Transfer Family 하세요.

NLB 대안에 대한 추가 지침은 AWS Support를 통해 AWS Transfer Family 제품 관리 팀에 문의하세요. 보안 태세 개선에 대한 자세한 내용은 블로그 게시물 [AWS Transfer Family 서버 보안을 개선하기 위한 6가지 팁을 참조하세요](https://aws.amazon.com/blogs/security/six-tips-to-improve-the-security-of-your-aws-transfer-family-server/).

## VPC 연결 인프라 보안
<a name="vpc-connectivity-infrastructure-security"></a>

VPC 송신 유형의 SFTP 커넥터는 네트워크 격리 및 프라이빗 연결을 통해 향상된 인프라 보안을 제공합니다.

### 네트워크 격리 이점
<a name="network-isolation-benefits"></a>
+ **프라이빗 네트워크 트래픽**: 프라이빗 SFTP 서버로의 모든 커넥터 트래픽은 퍼블릭 인터넷을 통과하지 않고 VPC 내에 유지됩니다.
+ **제어된 송신**: VPC를 통해 액세스하는 퍼블릭 엔드포인트의 경우 트래픽은 NAT 게이트웨이를 통해 라우팅되므로 송신 IP 주소 및 네트워크 정책을 제어할 수 있습니다.
+ **VPC 보안 제어**: 기존 VPC 보안 그룹, 네트워크 ACLs 및 라우팅 테이블을 활용하여 커넥터 네트워크 액세스를 제어합니다.
+ **하이브리드 연결**: 추가 인터넷 노출 없이 설정된 VPN 또는 Direct Connect 연결을 통해 온프레미스 SFTP 서버에 액세스합니다.

### Resource Gateway 보안 고려 사항
<a name="resource-gateway-security"></a>

Resource Gateway는 VPC 간 리소스 액세스를 위한 보안 수신 지점을 제공합니다.
+ **다중 AZ 배포**: Resource Gateway에는 고가용성 및 내결함성을 위해 두 개 이상의 가용 영역에 서브넷이 필요합니다.
+ **보안 그룹 제어**: 승인된 소스에서만 SFTP 포트(일반적으로 포트 22)에 대한 액세스를 제한하도록 보안 그룹을 구성합니다.
+ **프라이빗 서브넷 배치**: 프라이빗 SFTP 서버에 연결할 때 프라이빗 서브넷에 Resource Gateway를 배포하여 네트워크 격리를 유지합니다.
+ **연결 제한**: 각 Resource Gateway는 TCP 연결에 대해 350초 유휴 제한 시간으로 최대 350개의 동시 연결을 지원합니다.

# 웹 애플리케이션 방화벽 추가
<a name="web-application-firewall"></a>

AWS WAF 는 웹 애플리케이션 및 APIs으로부터 보호하는 데 도움이 되는 웹 애플리케이션 방화벽입니다. 사용자가 정의한 맞춤형 웹 보안 규칙 및 조건에 따라 웹 요청을 허용, 차단 또는 계산하는 규칙 집합(*웹 액세스 통제 목록* 또는 웹 ACL)을 구성할 수 있습니다. 자세한 내용은 [AWS WAF 를 사용하여 APIs 보호를 참조하세요](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html).

**를 추가하려면 AWS WAF**

1. [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/)에서 Amazon API Gateway 콘솔을 엽니다.

1. **API** 탐색 창에서 맞춤 ID 제공자 템플릿을 선택합니다.

1. **단계**를 선택합니다.

1. **단계(Stages)** 창에서 단계 명칭을 선택합니다.

1. **Stage Editor(단계 편집기)** 창에서 **설정** 탭을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **웹 애플리케이션 방화벽(WAF)**에서 이 단계와 연계할 지역 **웹 ACL**을 선택합니다.
   + 필요한 웹 ACL이 없는 경우 다음과 같이 웹 ACL을 생성해야 합니다:

     1. **Create web ACL(웹 ACL 생성)**을 선택합니다.

     1.  AWS WAF 서비스 홈페이지에서 **웹 ACL 생성을** 선택합니다.

     1. **웹 ACL 세부 정보**에서 **명칭**에 웹 ACL의 명칭을 입력합니다.

     1. **규칙**에서 **규칙 추가**를 선택한 다음 **나만의 규칙 및 규칙 그룹 추가**를 선택합니다.

     1. **규칙 타입**에서 IP 세트를 선택하여 특정 IP 주소 목록을 식별합니다.

     1. **규칙**에는 규칙 명칭을 입력합니다.

     1. **IP 세트**의 경우 기존 IP 세트를 선택합니다. IP 집합을 생성하려면 [IP 세트 생성](https://docs.aws.amazon.com/waf/latest/developerguide/waf-ip-set-creating.html)을 참조하세요.

     1. **기원 주소로 사용할 IP 주소**의 경우 **헤더의 IP 주소**를 선택합니다.

     1. **헤더 필드 명칭**에 `SourceIP`을 입력합니다.

     1. **헤더 내 위치**의 경우 **첫 번째 IP 주소**를 선택합니다.

     1. **누락된 IP 주소를 위한 대처**를 위해, 헤더에서 유효하지 않거나 누락된 IP 주소를 처리하려는 방법에 따라 **일치** 또는 **불일치**를 선택합니다.

     1. **조치**에서 IP 세트 조치를 선택합니다.

     1. **어떤 규칙과도 일치하지 않는 요청에 대한 기본 웹 ACL 동작**의 경우 **허용** 또는 **차단**을 선택한 후 **다음**을 클릭합니다.

     1. 4단계와 5단계에서 **다음**을 선택합니다.

     1. **검토 및 생성**에서 옵션을 검토한 다음 **웹 ACL 생성**을 선택합니다.

1. **변경 사항 저장(Save Changes)**을 선택합니다.

1. **리소스**를 선택합니다.

1. **작업** 및 **API 배포**를 선택합니다.

 AWS 웹 애플리케이션 방화벽으로 Transfer Family를 보호하는 방법에 대한 자세한 내용은 AWS 스토리지 블로그의 [AWS 애플리케이션 방화벽 및 Amazon API Gateway로 Transfer Family 보호를](https://aws.amazon.com/blogs/storage/securing-aws-transfer-family-with-aws-web-application-firewall-and-amazon-api-gateway/) 참조하세요.

# 교차 서비스 혼동된 대리자 방지
<a name="confused-deputy"></a>

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 AWS교차 서비스 가장은 혼동된 대리자 문제를 초래할 수 있습니다. 교차 서비스 가장은 한 서비스(*직접 호출하는 서비스*)가 다른 서비스(*직접 호출되는 서비스*)를 직접 호출할 때 발생할 수 있습니다. 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS 에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 위탁자를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다. 이 문제에 대한 자세한 설명은 *IAM 사용자 가이드*의 [혼동되는 대리 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)를 참조하세요.

리소스 정책에서 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 및 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 전역 조건 컨텍스트 키를 사용하여 AWS Transfer Family가 리소스에 대해 갖는 권한을 제한하는 것이 좋습니다. 두 글로벌 조건 컨텍스트 키를 모두 사용하는 경우 `aws:SourceAccount` 값과 `aws:SourceArn` 값의 계정은 동일한 정책 명령문에서 사용할 경우 동일한 계정 ID를 사용해야 합니다.

혼동된 대리자 문제로부터 보호하는 가장 효과적인 방법은 허용하려는 리소스의 정확한 전체 Amazon 리소스 이름(ARN)을 사용하는 것입니다. 리소스의 전체 ARN을 모르거나 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드 문자(`*`)를 포함한 `aws:SourceArn` 글로벌 조건 컨텍스트 키를 사용합니다. 예를 들어 `arn:aws:transfer::region::account-id:server/*`입니다.

AWS Transfer Family는 다음과 같은 유형의 역할을 사용합니다.
+ **사용자 역할** - 서비스 관리 사용자가 필요한 Transfer Family 리소스에 액세스할 수 있도록 허용합니다. AWS Transfer Family는 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의 컨텍스트에서 이 역할을 담당합니다.

자세한 내용은 *IAM 사용자 가이드*에서 [IAM의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.

**참고**  
다음 예에서는 자신의 정보로 각각의 *사용자 입력 자리 표시자*를 바꿉니다.

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

## AWS Transfer Family 사용자 역할 교차 서비스 혼동된 대리자 방지
<a name="user-role-cross-service"></a>

다음 예 정책은 계정에 있는 모든 서버의 모든 사용자가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/*"
                }
            }
        }
    ]
}
```

다음 예 정책은 특정 서버의 모든 사용자가 역할을 수임하도록 허용합니다.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "transfer.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/*"
        }
      }
    }
  ]
}
```

다음 예 정책은 특정 서버의 특정 사용자가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/user-name"
                }
            }
        }
    ]
}
```

## AWS Transfer Family 워크플로 역할 교차 서비스 혼동된 대리자 방지
<a name="workflow-role-cross-service"></a>

다음 예 정책은 계정의 모든 워크플로가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/*"
                }
            }
        }
    ]
}
```

다음 예 정책은 특정 워크플로가 역할을 가정하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id"
                }
            }
        }
    ]
}
```

## AWS Transfer Family 커넥터 역할 교차 서비스 혼동된 대리자 방지
<a name="connector-role-cross-service"></a>

다음 예제 정책은 계정의 모든 커넥터가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/*"
                }
            }
        }
    ]
}
```

다음 예제 정책은 특정 커넥터가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/connector-id"
                }
            }
        }
    ]
}
```

## AWS Transfer Family 로깅 및 호출 역할 교차 서비스 혼동된 대리자 방지
<a name="logging-role-cross-service"></a>

**참고**  
다음 예는 로깅 및 호출 역할 모두에 사용할 수 있습니다.  
이 예제에서는 서버에 워크플로가 연결되어 있지 않은 경우 워크플로에 대한 ARN 세부 정보를 제거할 수 있습니다.

다음 예제 로깅/호출 정책은 계정의 모든 서버(및 워크플로)가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAllServersWithWorkflowAttached",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                   "aws:SourceArn": [
                     "arn:aws:transfer:us-west-2:111122223333:server/*",
                     "arn:aws:transfer:us-west-2:111122223333:workflow/*"
                   ]
                }
            }
        }
    ]
}
```

다음 예제 로깅/호출 정책은 특정 서버(및 워크플로)가 역할을 수임하도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSpecificServerWithWorkflowAttached",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnEquals": {
                   "aws:SourceArn": [
                       "arn:aws:transfer:us-west-2:111122223333:server/server-id",
                       "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id"
                   ]
                }
            }
        }
    ]
}
```

# AWS AWS Transfer Family에 대한 관리형 정책
<a name="security-iam-awsmanpol"></a>

사용자, 그룹 및 역할에 권한을 추가하려면 직접 정책을 작성하는 것보다 AWS 관리형 정책을 사용하는 것이 더 쉽습니다. 팀에 필요한 권한만 제공하는 [고객 관리형 정책을 생성 AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)하려면 시간과 전문 지식이 필요합니다. 빠르게 시작하려면 AWS 관리형 정책을 사용할 수 있습니다. 이 정책은 일반적인 사용 사례를 다루며 사용자의 AWS 계정에서 사용할 수 있습니다. AWS 관리형 정책에 대한 자세한 정보는 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)에서 *AWS 관리형 정책*을 참조하세요. 모든 AWS 관리형 정책의 자세한 목록은 [AWS 관리형 정책 참조 가이드를](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html) 참조하세요.

AWS 서비스는 AWS 관리형 정책을 유지 관리하고 업데이트합니다. AWS 관리형 정책에서는 권한을 변경할 수 없습니다. 서비스에서 때때로 추가 권한을 AWS 관리형 정책에 추가하여 새로운 기능을 지원합니다. 이 유형의 업데이트는 정책이 연결된 모든 ID(사용자, 그룹 및 역할)에 적용됩니다. 서비스는 새로운 기능이 시작되거나 새 작업을 사용할 수 있을 때 AWS 관리형 정책에 업데이트됩니다. 서비스는 AWS 관리형 정책에서 권한을 제거하지 않으므로 정책 업데이트로 인해 기존 권한이 손상되지 않습니다.

또한는 여러 서비스에 걸쳐 있는 직무에 대한 관리형 정책을 AWS 지원합니다. 예를 들어 관리`ReadOnlyAccess` AWS 형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스를 제공합니다. 서비스가 새 기능을 시작하면는 새 작업 및 리소스에 대한 읽기 전용 권한을 AWS 추가합니다. 직무 정책의 목록과 설명은 *IAM 사용 설명서*의 [직무에 관한AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.

## AWS 관리형 정책: AWSTransferConsoleFullAccess
<a name="security-iam-awsmanpol-transferconsolefullaccess"></a>

이 `AWSTransferConsoleFullAccess` 정책은 AWS 관리 콘솔을 통해 Transfer Family에 대한 전체 액세스 권한을 제공합니다. 자세한 내용은 [AWS Transfer Family의 서비스 연결 역할을 참조하세요](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferConsoleFullAccess.html).

## AWS 관리형 정책: AWSTransferFullAccess
<a name="security-iam-awsmanpol-transferfullaccess"></a>

 또한 `AWSTransferFullAccess` 정책은 Transfer Family 서비스에 대한 전체 액세스 권한을 제공합니다. 자세한 내용은 [AWS Transfer Family의 서비스 연결 역할을 참조하세요](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferFullAccess.html).

## AWS 관리형 정책: AWSTransferLoggingAccess
<a name="security-iam-awsmanpol-transferloggingaccess"></a>

 이 `AWSTransferLoggingAccess` 정책은 AWS Transfer Family에 로그 스트림 및 그룹을 생성하고 로그 이벤트를 계정에 넣을 수 있는 모든 액세스 권한을 부여합니다. 자세한 내용은 [AWS Transfer Family의 서비스 연결 역할을 참조하세요](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferLoggingAccess.html).

## AWS 관리형 정책: AWSTransferReadOnlyAccess
<a name="security-iam-awsmanpol-transferreadonlyaccess"></a>

 `AWSTransferReadOnlyAccess` 정책은 Transfer Family 서비스에 대한 읽기 전용 액세스를 제공합니다. 자세한 내용은 [AWS Transfer Family의 서비스 연결 역할을 참조하세요](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferReadOnlyAccess.html).

## AWS AWS 관리형 정책에 대한 Transfer Family 업데이트
<a name="security-iam-awsmanpol-updates"></a>

이 서비스가 이러한 변경 사항을 추적하기 시작한 이후부터 AWS Transfer Family의 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받아보려면 [에 대한 문서 기록 AWS Transfer Family](doc-history.md) 페이지에서 RSS 피드를 구독하세요.




| 변경 | 설명 | Date | 
| --- | --- | --- | 
|   설명서 업데이트   |  Transfer Family 관리 정책 각각에 대한 섹션이 추가되었습니다.  |  2022년 1월 27일  | 
|   [AWSTransferReadOnlyAccess](#security-iam-awsmanpol-transferreadonlyaccess) – 기존 정책 업데이트   |  AWS Transfer Family는 정책이를 읽을 수 있도록 허용하는 새 권한을 추가했습니다 AWS Managed Microsoft AD.  |  2021년 9월 30일  | 
|  AWS Transfer Family에서 변경 사항 추적 시작  |  AWS Transfer Family가 AWS 관리형 정책에 대한 변경 사항 추적을 시작했습니다.  | 2021년 6월 15일 | 