테넌트 계정 및 연결을 구성합니다
클라이언트 응용 프로그램에서 연결을 허용하도록 StorageGRID를 구성하려면 하나 이상의 테넌트 계정을 만들고 연결을 설정해야 합니다.
Swift 테넌트 계정을 생성하고 구성합니다
Swift API 클라이언트가 StorageGRID에 객체를 저장하고 검색하기 전에 Swift 테넌트 계정이 필요합니다. 각 테넌트 계정에는 고유한 계정 ID, 그룹 및 사용자, 컨테이너 및 객체가 있습니다.
Swift 테넌트 계정은 그리드 관리자 또는 그리드 관리 API를 사용하여 StorageGRID 그리드 관리자가 만듭니다.
시기 "Swift 테넌트 계정을 생성하는 중입니다"그리드 관리자는 다음 정보를 지정합니다.
-
"테넌트의 표시 이름입니다" (테넌트의 계정 ID는 자동으로 할당되며 변경할 수 없음)
-
선택적으로, a "테넌트 계정의 스토리지 할당량입니다" — 테넌트 객체에 대해 사용 가능한 최대 GB, 테라바이트 또는 PB입니다. 테넌트의 스토리지 할당량은 물리적 크기(디스크 크기)가 아닌 논리적 양(오브젝트 크기)을 나타냅니다.
-
If(경우 "SSO(Single Sign-On)" 는 StorageGRID 시스템에서 사용되지 않습니다. 테넌트 계정이 자체 ID 소스를 사용하거나 그리드의 ID 소스를 공유할지 여부 및 테넌트의 로컬 루트 사용자에 대한 초기 암호를 공유할지 여부입니다.
-
SSO가 설정된 경우 테넌트 계정을 구성할 수 있는 루트 액세스 권한이 있는 통합 그룹이 있습니다.
Swift 테넌트 계정이 생성된 후 루트 액세스 권한이 있는 사용자는 테넌트 관리자에 액세스하여 다음과 같은 작업을 수행할 수 있습니다.
-
ID 통합을 설정하고(ID 소스를 그리드와 공유하지 않는 경우) 로컬 그룹 및 사용자를 만듭니다
-
스토리지 사용량 모니터링
Swift 사용자는 에 대한 루트 액세스 권한이 있어야 합니다 "테넌트 관리자를 액세스합니다". 그러나 루트 액세스 권한은 사용자가 Swift REST API에 인증하여 컨테이너를 생성하고 객체를 수집하는 것을 허용하지 않습니다. 사용자는 Swift REST API에 인증할 수 있는 Swift 관리자 권한이 있어야 합니다. |
클라이언트 연결 구성 방법
그리드 관리자는 Swift 클라이언트가 StorageGRID에 연결하여 데이터를 저장 및 검색하는 방법에 영향을 주는 구성을 선택합니다. 연결에 필요한 특정 정보는 선택한 구성에 따라 다릅니다.
클라이언트 응용 프로그램은 관리 노드 또는 게이트웨이 노드의 부하 분산 서비스에 연결하거나 선택적으로 관리 노드 또는 게이트웨이 노드의 고가용성(HA) 그룹의 가상 IP 주소에 연결하여 개체를 저장하거나 검색할 수 있습니다.
로드 밸런싱을 제공하기 위해 StorageGRID에 의존하는 모든 애플리케이션은 로드 밸런서 서비스를 사용하여 연결해야 합니다. |
-
외부 로드 밸런서가 있거나 없는 스토리지 노드
StorageGRID를 구성할 때 그리드 관리자는 그리드 관리자 또는 그리드 관리 API를 사용하여 다음 단계를 수행할 수 있습니다. 이 모든 단계는 선택 사항입니다.
-
로드 밸런서 서비스의 끝점을 구성합니다.
로드 밸런서 서비스를 사용하려면 끝점을 구성해야 합니다. 관리 노드 또는 게이트웨이 노드의 부하 분산 서비스는 들어오는 네트워크 연결을 클라이언트 애플리케이션에서 스토리지 노드로 분산합니다. 로드 밸런서 끝점을 만들 때 StorageGRID 관리자는 포트 번호, 엔드포인트가 HTTP 또는 HTTPS 연결을 수락하는지 여부, 엔드포인트를 사용할 클라이언트 유형(S3 또는 Swift) 및 HTTPS 연결에 사용할 인증서(해당하는 경우)를 지정합니다. SWIFT는 이를 지원합니다 "끝점 유형".
-
신뢰할 수 없는 클라이언트 네트워크를 구성합니다.
StorageGRID 관리자가 노드의 클라이언트 네트워크를 신뢰할 수 없도록 구성하는 경우 노드는 로드 밸런서 끝점으로 명시적으로 구성된 포트의 클라이언트 네트워크에서 인바운드 연결만 허용합니다.
-
고가용성 그룹을 구성합니다.
관리자가 HA 그룹을 생성하면 여러 관리 노드 또는 게이트웨이 노드의 네트워크 인터페이스가 액티브-백업 구성에 배치됩니다. HA 그룹의 가상 IP 주소를 사용하여 클라이언트 연결이 이루어집니다.
을 참조하십시오 "HA 그룹에 대한 구성 옵션" 를 참조하십시오.
요약: 클라이언트 연결을 위한 IP 주소 및 포트
클라이언트 애플리케이션은 그리드 노드의 IP 주소와 해당 노드의 서비스 포트 번호를 사용하여 StorageGRID에 접속합니다. HA(고가용성) 그룹이 구성되어 있는 경우 클라이언트 애플리케이션은 HA 그룹의 가상 IP 주소를 사용하여 연결할 수 있습니다.
클라이언트 연결을 만드는 데 필요한 정보입니다
이 표에는 클라이언트가 StorageGRID에 연결할 수 있는 다양한 방법과 각 연결 유형에 사용되는 IP 주소 및 포트가 요약되어 있습니다. 을 참조하십시오 "클라이언트 연결용 IP 주소 및 포트" 자세한 내용은 StorageGRID 관리자에게 문의하십시오.
연결 위치 | 클라이언트가 연결하는 서비스입니다 | IP 주소입니다 | 포트 |
---|---|---|---|
HA 그룹 |
로드 밸런서 |
HA 그룹의 가상 IP 주소입니다 |
|
관리자 노드 |
로드 밸런서 |
관리 노드의 IP 주소입니다 |
|
게이트웨이 노드 |
로드 밸런서 |
게이트웨이 노드의 IP 주소입니다 |
|
스토리지 노드 |
LDR |
스토리지 노드의 IP 주소입니다 |
기본 Swift 포트:
|
예
Swift 클라이언트를 게이트웨이 노드 HA 그룹의 로드 밸런서 끝점에 연결하려면 아래와 같이 구조화된 URL을 사용합니다.
-
https://VIP-of-HA-group:LB-endpoint-port
예를 들어 HA 그룹의 가상 IP 주소가 192.0.2.6이고 Swift 로드 밸런서 끝점의 포트 번호가 10444인 경우 Swift 클라이언트는 다음 URL을 사용하여 StorageGRID에 연결할 수 있습니다.
-
https://192.0.2.6:10444
클라이언트가 StorageGRID에 연결하는 데 사용하는 IP 주소에 대한 DNS 이름을 구성할 수 있습니다. 로컬 네트워크 관리자에게 문의하십시오.
HTTPS 또는 HTTP 연결을 사용하도록 결정합니다
로드 밸런서 끝점을 사용하여 클라이언트 연결을 만들 때는 해당 끝점에 지정된 프로토콜(HTTP 또는 HTTPS)을 사용하여 연결해야 합니다. 스토리지 노드에 대한 클라이언트 연결에 HTTP를 사용하려면 해당 사용을 설정해야 합니다.
기본적으로 클라이언트 애플리케이션이 스토리지 노드에 연결할 때는 모든 연결에 암호화된 HTTPS를 사용해야 합니다. 선택적으로 를 선택하여 보안성이 낮은 HTTP 연결을 활성화할 수 있습니다 "스토리지 노드 연결에 대해 HTTP를 설정합니다" 그리드 관리자의 옵션. 예를 들어, 클라이언트 애플리케이션은 비운영 환경에서 스토리지 노드에 대한 접속을 테스트할 때 HTTP를 사용할 수 있습니다.
요청 및 응답이 암호화되지 않은 상태로 전송되므로 프로덕션 그리드에 대해 HTTP를 설정할 때는 주의해야 합니다. |
스토리지 노드 연결에 HTTP 사용 * 옵션을 선택한 경우 클라이언트는 HTTPS에 사용하는 것과 다른 HTTP 포트를 사용해야 합니다.
Swift API 구성에서 연결을 테스트합니다
Swift CLI를 사용하여 StorageGRID 시스템에 대한 연결을 테스트하고 시스템에 개체를 읽고 쓸 수 있는지 확인할 수 있습니다.
-
Swift 명령줄 클라이언트인 python-swifftclient를 다운로드하여 설치해야 합니다.
-
StorageGRID 시스템에 Swift 테넌트 계정이 있어야 합니다.
보안을 구성하지 않은 경우 을 추가해야 합니다 --insecure
이러한 각 명령에 플래그를 지정합니다.
-
StorageGRID Swift 배포에 대한 정보 URL 쿼리:
swift -U <Tenant_Account_ID:Account_User_Name> -K <User_Password> -A https://<FQDN | IP>:<Port>/info capabilities
이는 Swift 배포가 제대로 작동하는지 테스트하는 데 충분합니다. 객체를 저장하여 계정 구성을 추가로 테스트하려면 추가 단계를 계속 진행합니다.
-
컨테이너에 개체 넣기:
touch test_object swift -U <Tenant_Account_ID:Account_User_Name> -K <User_Password> -A https://<FQDN | IP>:<Port>/auth/v1.0 upload test_container test_object --object-name test_object
-
컨테이너를 내려 개체를 확인합니다.
swift -U <Tenant_Account_ID:Account_User_Name> -K <User_Password> -A https://<FQDN | IP>:<Port>/auth/v1.0 list test_container
-
개체 삭제:
swift -U <Tenant_Account_ID:Account_User_Name> -K <User_Password> -A https://<FQDN | IP>:<Port>/auth/v1.0 delete test_container test_object
-
컨테이너를 삭제합니다.
swift -U `<_Tenant_Account_ID:Account_User_Name_>` -K `<_User_Password_>` -A `\https://<_FQDN_ | _IP_>:<_Port_>/auth/v1.0' delete test_container