Overview
삼성 클라우드 플랫폼에서 제공하는 인프라/솔루션 상품을 이용할 수있도록 지원하는 명령줄 인터페이스(Command Line Interface, CLI)를 제공하고 있습니다.
본 가이드에서는 삼성 클라우드 플랫폼 Open API에 대한 간략한 설명 및 CLI 호출하는 방법을 제공합니다.
CLI에 따라 파라미터 값을 입력하고 등록, 수정, 삭제 , 조회 할 수 있습니다.
설치
CLI는 아래에서 다운로드 합니다.
windows
linux
다운 받은 파일에 실행권한을 부여 합니다.
chmod +x scp-cli
사전 필요 사항
인증키 발급
삼성 클라우드 플랫폼의 CLI 기능을 사용하시려면 인증키를 발급받아야 합니다.
인증키 발급은 삼성 클라우드 플랫폼 콘솔의 왼쪽 상단 [My 메뉴] > [My Info] > [인증키 관리] 에서 확인 할 수 있습니다.
인증키는 Access Key와 Access Secret Key의 한 쌍으로 구성되어 있습니다. 인증키는 API 인증 토큰을 발급할 때 사용됩니다.
- Samsung Cloud Platform Console에 로그인을 하세요.
- My 메뉴 > My Info > 인증키 관리 메뉴로 이동하여, 인증키 생성 버튼을 클릭하세요.
- 기간과 사용 용도를 작성하고, 확인 버튼을 클릭하여 인증키를 생성하세요.
- 인증키 목록에서 발급받은 Access Key와 Access Secret Key를 확인하세요.
- Access Secret Key는 인증키 상세 페이지에서 확인할 수 있습니다.
임시 보안 자격 증명 (Optional)
임시 보안 자격 증명은 사용자가 정해진 시간 동안만 유효한 인증 정보를 통해 시스템에 접근할 수 있도록 하는 기능입니다. 이 자격 증명은 일반적으로 다음과 같은 목적을 위해 사용됩니다:
- 보안 강화: 장기 자격 증명(예: API 키, 비밀번호) 유출 시의 피해를 줄이기 위해
- 권한 위임: 외부 사용자나 시스템에 제한된 권한을 임시로 부여 가능
- 자동 만료: 자격 증명이 일정 시간 후 자동으로 만료되므로 관리가 간편
구성 요소
임시 자격 증명은 일반적으로 다음 정보를 포함합니다:
- Access Key : 인증을 위한 식별자
- Secret Key : 암호화된 인증 서명 생성에 사용
- Session Token: 세션 식별 및 유효성 검사를 위한 토큰
임시 보안 자격 증명 생성하기
삼성 클라우드 플랫폼의 임시 보안 자격 증명 기능을 사용하시려면 역할을 생성하여야 합니다.
역할 생성은 삼성 클라우드 플랫폼 콘솔의 [My 메뉴] > [My Info] > [역할] 에서 확인 할 수 있습니다.
수행 주체
- 역할을 생성할시 해당 역할을 맡을 수 있는 수행 주체를 설정해 주어야 합니다.
- 수행 주체는 역할을 맡을 수 있는 계정, 사용자 SRN, 자격 증명 공급자 등으로 지정합니다
정책
- 역할을 맡은 사람이 어떤 행동을 할 수 있는지 정의하는 정책을 설정해주어야 합니다.
- 정책은 최소 권한 원칙(Principle of Least Privilege)을 준수하여 필요한 권한만 부여합니다
- Samsung Cloud Platform Console에 로그인을 하세요.
- My 메뉴 > My Info > 역할 메뉴로 이동하여, 역할 생성 버튼을 클릭하세요.
- 역할명을 작성하고 최대 세션 지속 시간을 선택하여 역할 수임의 유효시간을 설정하세요.
- 수행 주체 항목에서 구분 버튼을 눌러 수행 주체를 설정할 수 있으며, 추가 버튼을 눌러 여러 수행 주체 설정이 가능합니다
- 정책의 목록에서 원하는 정책을 확인한 후 왼쪽의 체크박스을 누르면 정책의 설정이 가능합니다
- 완료 버튼을 눌러 역할의 생성을 확인합니다
이후엔 역할자의 토큰을 생성해주어야 합니다. 이는 assume-role api를 수행하여야 하며, 결과 값으로는 Access key, Secret key, Session token을 받게 됩니다
assume-role 사용법 문서 : assume-role 사용법
실행 환경 설정 관리
CLI의 실행 환경 설정은 config 파일로 정의하여 수행합니다. 해당 파일은 PC 내, 해당위치에 파일 형태로 작성 되어야 합니다.
windows
C:\Users\{사용자명}\.scp\cli-config.json
linux
~/.scp/cli-config.json
설정 파일의 포멧은 JSON 포멧을 지원하며, 아래와 같이 설정합니다.
{
"auth_url": "https://iam.s.samsungsdscloud.com/v1/endpoints",
"access_key": "my-access-key",
"access_secret_key": "my-access-secret-key",
"default_scp_region": "kr-west1",
(Optional) "session_token": "session_token"
}
설정 항목 확인
| key | 설명 | 예시 |
|---|---|---|
| auth_url | 인증 url | https://iam.s.samsungsdscloud.com/v1/endpoints |
| access_key | 발급받은 access key | my-access-key |
| access_secret_key | 발급받은 access secret key | my-access-secret-key |
| default_scp_region | 기본 region 이름 | kr-west1 |
| (Optional) session_token | 임시 보안 자격 증명의 세션 토큰 | session_token |
auth_url 예시
| Environment | env value | Example Service URL |
|---|---|---|
| for Samsung | s | https://iam.s.samsungsdscloud.com/v1/endpoints |
| for Sovereign | g | https://iam.g.samsungsdscloud.com/v1/endpoints |
| for Enterprise | e | https://iam.e.samsungsdscloud.com/v1/endpoints |
CLI 명령어
명령어 도움말
CLI 명령어 형식은 아래와 같습니다.
scp-cli [서비스] [리소스] [actcion] [--option and parameters]
// e.g. ( 예제의 입출력 결과는 예시를 위한 것이며 실제와 다를 수 있습니다. )
> scp-cli iam user create --user-name TestUser
사용 가능한 명령어는 –help를 통해 확인할 수 있습니다.
scp-cli iam policy create --help
usage: scp-cli iam policy create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--noindent] [--prefix PREFIX] [--max-width <integer>] [--fit-width]
[--print-empty] --Version [VERSION] --Statement [STATEMENT ...] --policy_name [POLICY_NAME]
[--default_version_id [DEFAULT_VERSION_ID]] [--description [DESCRIPTION]] [--policy_category [POLICY_CATEGORY]]
[--policy_type [POLICY_TYPE]] [--service_type [SERVICE_TYPE]] [--tags [TAGS ...]] [--policy_id [POLICY_ID]]
[--policy_version_id [POLICY_VERSION_ID]] [--policy_version_name [POLICY_VERSION_NAME]]
Create a policy
options:
-h, --help show this help message and exit
--Version [VERSION]
[Required] Policy Version.
--Statement [STATEMENT ...]
[Required] Statement.
--policy_name [POLICY_NAME]
[Required] Policy Name.
--default_version_id [DEFAULT_VERSION_ID]
[Optional] Default Version Id.
--description [DESCRIPTION]
[Optional] Description.
--policy_category [POLICY_CATEGORY]
[Optional] Policy Category.
--policy_type [POLICY_TYPE]
[Optional] Policy Type.
--service_type [SERVICE_TYPE]
[Optional] Service Type.
--tags [TAGS ...]
[Optional] Policy Tag.
--policy_id [POLICY_ID]
[Optional] Policy ID.
--policy_version_id [POLICY_VERSION_ID]
[Optional] Policy Version Id.
--policy_version_name [POLICY_VERSION_NAME]
[Optional] Policy Version Name.
옵션 설명에 “[Required]” 표시는 필수 옵션 항목이며, “[Optional]” 표시는 선택 옵션 항목입니다.
API 버저닝
CLI는 Micro version 형태의 API 버전을 지원하며 명령어를 통해 각 상품의 api 버전을 확인 할 수 있습니다.
기본적으로, 현재 상품이 지원하는 최신 버전이 호출 되며, CLI 버전에 따라 호출 가능한 기본버전이 따라 응답 출력이 다를 수 있습니다.
–{상품명}–api-version 인자를 통해, 고정된 버전의 CLI를 사용할 수 있습니다.
- 해당 인자는 global option 인자로 대화형 모드 사용 시, 진입시 설정이 필요합니다.
API 버전확인 CLI Command 호출예시
scp-cli versions show [--region-name <region_name>] [--service <service>] [--status <status>] [--timeout <timeout>]
API 버전 CLI 예시
+-------------+----------------------------+---------+-----------+---------------------------------------------------------+------------+
| Region Name | Service Name | Version | Status | Endpoint | Not Before |
+-------------+----------------------------+---------+-----------+---------------------------------------------------------+------------+
| kr-west1 | data-flow | 1.0 | CURRENT | https://data-flow.kr-west1.e.samsungsdscloud.com | None |
| kr-west1 | data-ops | 1.0 | CURRENT | https://data-ops.kr-west1.e.samsungsdscloud.com | None |
| kr-west2 | scp-aimlops-platform | 1.0 | CURRENT | https://aimlops-platform.kr-west2.e.samsungsdscloud.com | None |
| kr-west1 | scp-aimlops-platform | 1.0 | CURRENT | https://aimlops-platform.kr-west1.e.samsungsdscloud.com | None |
| kr-west1 | scp-apigateway | 1.1 | CURRENT | https://apigateway.kr-west1.e.samsungsdscloud.com | None |
API 버전 Status 목록
| STATUS | Description |
|---|---|
| CURRENT | 현재 사용 권장되는 최신버전 (최신 1개만 유지) |
| SUPPORTED | 신규 기능의 추가는 없고 bug fix만 되는 버전 |
| PLANNED | 미리 다음 버전 정보를 주기 위한 단계 API 호출 불가, 문서로만 제공 |
| DEPRECATED | API 버전의 남은 Not Before 기간이 90일 이하인 단계 |
대화형 모드
대화형 모드로 CLI를 실행하여, 사용 할 수 있습니다.
scp-cli <global 인자>
global 인자의 설정이 필요한 경우, 실행시 입력하여 설정 후 진입합니다.
global 인자 : CLI를 수행할 때 사용되는 명령어의 인자 외 제공 되는 인자. (ex. debug, microversion 등)
global 인자 사용 예시
scp-cli --iam-api-version 1.3 --vpc-api-version 1.3
실행 후 아래와 같은 프롬프트가 나타나며, 명령을 직접 입력하여 실행할 수 있습니다.
(scp-cli)
대화형 모드 사용 예시
(scp-cli) iam policy list
종료 하려면 Ctrl + D 를 통해 대화형 모드를 종료합니다.