이 문서에서는 Cloud FTP를 사용하여 내부 SFTP 서버를 만드는 방법을 보여줍니다. 내부 SFTP 서버는 Private Service Connect를 사용하여 가상 프라이빗 클라우드 (VPC) 네트워크 내에서만 액세스할 수 있습니다. 네트워크 내에 있는 직원과 내부 이해관계자는 서버를 사용하여 Cloud Storage로 또는 Cloud Storage에서 파일을 안전하게 전송할 수 있습니다.
서버에 연결할 수 있는 프로젝트를 지정합니다. 연결이 거부되는 프로젝트를 선택적으로 지정할 수 있습니다.
VPC에 대한 배경 정보는 VPC 개요를 참조하세요.
인터넷을 통해 액세스할 수 있는 외부 서버를 만드는 단계는 외부 SFTP 서버 만들기를 참조하세요. 서버가 생성된 후에는 서버가 외부 서버인지 내부 서버인지 변경할 수 없습니다.
시작하기 전에
gcloud
-
Google Cloud CLI를 설치합니다.
-
gcloud CLI에서 제휴 ID를 사용하도록 구성합니다.
자세한 내용은 제휴 ID로 gcloud CLI에 로그인을 참고하세요.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 Google Cloud 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할을 부여받은 프로젝트를 선택할 수 있습니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
-
프로젝트 Google Cloud 만들기:
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
생성한 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID를 Google Cloud 프로젝트 이름으로 바꿉니다.
-
이 가이드에 기존 프로젝트를 사용하는 경우 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다. 새 프로젝트를 만든 경우에는 이미 필요한 권한이 있습니다.
Cloud FTP API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 부여받을 수 있습니다. 역할 부여 방법 알아보기.gcloud services enable ftp.googleapis.com
-
서버 사용자에 대한 다음 정보를 수집합니다.
- 서버에 액세스할 수 있는 프로젝트 ID 또는 프로젝트 번호 목록
- (선택사항) 서버 액세스가 거부되는 프로젝트 ID 또는 프로젝트 번호 목록
필요한 역할
SFTP 서버를 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Cloud FTP 관리자 (roles/ftp.admin) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는
ftp.servers.create
권한이 포함되어 있으며,
이는 SFTP 서버를 만드는 데 필요합니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한 을 부여받을 수도 있습니다.
내부 서버 만들기
gcloud
내부 서버를 만들려면
gcloud alpha storage ftp servers create 명령어를
실행하고 --access-type=INTERNAL 플래그를 제공합니다.
아래의 명령어 데이터를 사용하기 전에, 다음을 바꿉니다.
- SERVER_ID: 서버의 고유 ID입니다. 소문자로 시작하고 소문자 또는 숫자로 끝나야 합니다. 소문자, 숫자, 하이픈을 포함할 수 있습니다. 최대 길이는 30자입니다.
-
LOCATION_ID: 서버의 Google Cloud 위치입니다(예:
us-west1).가장 빠른 데이터 전송 속도를 위해 데이터를 저장하는 Cloud Storage 버킷과 동일한 위치에 서버를 만듭니다. 버킷의 위치가 Cloud FTP에서 지원되지 않는 경우 가장 가까운 사용 가능한 위치를 선택합니다.
-
PROJECT_TO_ALLOW: Private Service Connect를 사용하여 서버에 연결할 수 있는 소비자 프로젝트의 프로젝트 ID 또는 번호입니다. 예를 들면,
example-allowed-project입니다. 프로젝트를 하나 이상 지정해야 합니다.최대 500개의 프로젝트를 허용할 수 있습니다. 쉼표로 구분된 목록으로 여러 프로젝트와 각 연결 한도를 제공합니다. 예를 들면,
--consumer-accept-list=projectA=20,projectB=15입니다. - CONNECTION_LIMIT: 소비자 프로젝트에서 만들 수 있는 Private Service Connect 엔드포인트의 최대 개수입니다. 값은 1~ 250개의 엔드포인트여야 합니다.
-
(선택사항) PROJECT_TO_REJECT: 서버에 연결할 수 없는 소비자 프로젝트의 프로젝트 ID 또는 번호입니다. 예를 들면
example-rejected-project입니다. 이 목록에 있는 프로젝트는 허용된 프로젝트 목록에 포함되어 있더라도 서버에 액세스할 수 없습니다.최대 64개의 프로젝트를 거부할 수 있습니다. 쉼표로 구분된 목록으로 여러 프로젝트를 제공합니다.
프로젝트를 명시적으로 거부하지 않으려면--consumer-reject-list플래그를 생략합니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL \ --location=LOCATION_ID \ --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT \ --consumer-reject-list=PROJECT_TO_REJECT
Windows(PowerShell)
gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ` --location=LOCATION_ID ` --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ` --consumer-reject-list=PROJECT_TO_REJECT
Windows(cmd.exe)
gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ^ --location=LOCATION_ID ^ --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ^ --consumer-reject-list=PROJECT_TO_REJECT
서버가 생성되는 데 약 10분이 걸립니다.
REST
내부 서버를 만들려면
servers.create 메서드
를 사용하고 internalConfig 액세스 구성을 제공합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 서버의 Google Cloud 프로젝트 ID입니다.
-
LOCATION_ID: 서버의 Google Cloud 위치입니다(예:
us-west1).가장 빠른 데이터 전송 속도를 위해 데이터를 저장하는 Cloud Storage 버킷과 동일한 위치에 서버를 만듭니다. 버킷의 위치가 Cloud FTP에서 지원되지 않는 경우 가장 가까운 사용 가능한 위치를 선택합니다.
- SERVER_ID: 서버의 고유 ID입니다. 소문자로 시작하고 소문자 또는 숫자로 끝나야 합니다. 소문자, 숫자, 하이픈을 포함할 수 있습니다. 최대 길이는 30자입니다.
-
PROJECT_TO_ALLOW: Private Service Connect를 사용하여 서버에 연결할 수 있는 소비자 프로젝트의 프로젝트 ID 또는 번호입니다. 예를 들면,
example-allowed-project입니다. 프로젝트를 하나 이상 지정해야 합니다.최대 500개의 프로젝트를 허용할 수 있습니다.
- CONNECTION_LIMIT: 소비자 프로젝트에서 만들 수 있는 Private Service Connect 엔드포인트의 최대 개수입니다. 값은 1~ 250개의 엔드포인트여야 합니다.
-
(선택사항) PROJECT_TO_REJECT: 서버에 연결할 수 없는 소비자 프로젝트의 프로젝트 ID 또는 번호입니다. 예를 들면
example-rejected-project입니다. 이 목록에 있는 프로젝트는 허용된 프로젝트 목록에 포함되어 있더라도 서버에 액세스할 수 없습니다.최대 64개의 프로젝트를 거부할 수 있습니다.
프로젝트를 명시적으로 거부하지 않으려면
consumerRejectList객체를 생략합니다.
HTTP 메서드 및 URL:
POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID
JSON 요청 본문:
{
"accessType": "INTERNAL",
"internalConfig": {
"consumerAcceptList": [
{
"project": "projects/PROJECT_TO_ALLOW",
"connectionLimit": CONNECTION_LIMIT
}
],
"consumerRejectList": [
{
"project": "projects/PROJECT_TO_REJECT"
}
]
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
응답은 장기 실행 작업을 식별합니다.서버가 생성되는 데 약 10분이 걸립니다.