Common

Common

Overview


삼성 클라우드 플랫폼에서 제공하는 인프라/솔루션 상품을 이용할 수있도록 지원하는 명령줄 인터페이스(Command Line Interface, CLI)를 제공하고 있습니다.

본 가이드에서는 삼성 클라우드 플랫폼 Open API에 대한 간략한 설명 및 CLI 호출하는 방법을 제공합니다.

CLI에 따라 파라미터 값을 입력하고 등록, 수정, 삭제 , 조회 할 수 있습니다.

설치


CLI는 아래에서 다운로드 합니다.

windows

windows CLI Download

linux

linux CLI Download

다운 받은 파일에 실행권한을 부여 합니다.

chmod +x scp-cli

사전 필요 사항


인증키 발급

삼성 클라우드 플랫폼의 CLI 기능을 사용하시려면 인증키를 발급받아야 합니다.

인증키 발급은 삼성 클라우드 플랫폼 콘솔의 왼쪽 상단 [My 메뉴] > [My Info] > [인증키 관리] 에서 확인 할 수 있습니다.

인증키는 Access Key와 Access Secret Key의 한 쌍으로 구성되어 있습니다. 인증키는 API 인증 토큰을 발급할 때 사용됩니다.

  1. Samsung Cloud Platform Console에 로그인을 하세요.
  2. My 메뉴 > My Info > 인증키 관리 메뉴로 이동하여, 인증키 생성 버튼을 클릭하세요.
  3. 기간과 사용 용도를 작성하고, 확인 버튼을 클릭하여 인증키를 생성하세요.
  4. 인증키 목록에서 발급받은 Access KeyAccess Secret Key를 확인하세요.
    • Access Secret Key는 인증키 상세 페이지에서 확인할 수 있습니다.

임시 보안 자격 증명 (Optional)


임시 보안 자격 증명은 사용자가 정해진 시간 동안만 유효한 인증 정보를 통해 시스템에 접근할 수 있도록 하는 기능입니다. 이 자격 증명은 일반적으로 다음과 같은 목적을 위해 사용됩니다:

  • 보안 강화: 장기 자격 증명(예: API 키, 비밀번호) 유출 시의 피해를 줄이기 위해
  • 권한 위임: 외부 사용자나 시스템에 제한된 권한을 임시로 부여 가능
  • 자동 만료: 자격 증명이 일정 시간 후 자동으로 만료되므로 관리가 간편

구성 요소

임시 자격 증명은 일반적으로 다음 정보를 포함합니다:

  1. Access Key : 인증을 위한 식별자
  2. Secret Key : 암호화된 인증 서명 생성에 사용
  3. Session Token: 세션 식별 및 유효성 검사를 위한 토큰

임시 보안 자격 증명 생성하기

삼성 클라우드 플랫폼의 임시 보안 자격 증명 기능을 사용하시려면 역할을 생성하여야 합니다.

역할 생성은 삼성 클라우드 플랫폼 콘솔의 [My 메뉴] > [My Info] > [역할] 에서 확인 할 수 있습니다.

  • 수행 주체

    • 역할을 생성할시 해당 역할을 맡을 수 있는 수행 주체를 설정해 주어야 합니다.
    • 수행 주체는 역할을 맡을 수 있는 계정, 사용자 SRN, 자격 증명 공급자 등으로 지정합니다
  • 정책

    • 역할을 맡은 사람이 어떤 행동을 할 수 있는지 정의하는 정책을 설정해주어야 합니다.
    • 정책은 최소 권한 원칙(Principle of Least Privilege)을 준수하여 필요한 권한만 부여합니다
  1. Samsung Cloud Platform Console에 로그인을 하세요.
  2. My 메뉴 > My Info > 역할 메뉴로 이동하여, 역할 생성 버튼을 클릭하세요.
  3. 역할명을 작성하고 최대 세션 지속 시간을 선택하여 역할 수임의 유효시간을 설정하세요.
  4. 수행 주체 항목에서 구분 버튼을 눌러 수행 주체를 설정할 수 있으며, 추가 버튼을 눌러 여러 수행 주체 설정이 가능합니다
  5. 정책의 목록에서 원하는 정책을 확인한 후 왼쪽의 체크박스을 누르면 정책의 설정이 가능합니다
  6. 완료 버튼을 눌러 역할의 생성을 확인합니다

이후엔 역할자의 토큰을 생성해주어야 합니다. 이는 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인증 urlhttps://iam.s.samsungsdscloud.com/v1/endpoints
access_key발급받은 access keymy-access-key
access_secret_key발급받은 access secret keymy-access-secret-key
default_scp_region기본 region 이름kr-west1
(Optional) session_token임시 보안 자격 증명의 세션 토큰session_token

auth_url 예시

Environmentenv valueExample Service URL
for Samsungshttps://iam.s.samsungsdscloud.com/v1/endpoints
for Sovereignghttps://iam.g.samsungsdscloud.com/v1/endpoints
for Enterpriseehttps://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 목록

STATUSDescription
CURRENT현재 사용 권장되는 최신버전 (최신 1개만 유지)
SUPPORTED신규 기능의 추가는 없고 bug fix만 되는 버전
PLANNED미리 다음 버전 정보를 주기 위한 단계 API 호출 불가, 문서로만 제공
DEPRECATEDAPI 버전의 남은 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 를 통해 대화형 모드를 종료합니다.