STS

Overview

SCP에서 제공하는 IaaS/PaaS 상품을 프로그램적으로 이용할 수 있도록 지원하는 응용 프로그램 인터페이스(Application Programming Interface, API)를 제공합니다.

본 가이드는 STS 서비스에 대한 간략한 설명 및 API를 호출하는 방법을 제공합니다. API는 RESTful API 방식으로 제공되며, JSON 형식으로 응답합니다.

Version

Not Before 기간이 도래하거나 만료된 Deprecated 버전은 더 이상 지원하지 않습니다. 최신 버전 사용을 권장합니다.

VersionStatusNot Before
1.1CURRENT-
1.0DEPRECATED20260531

OpenAPI URL

https://sts.{environment}.samsungsdscloud.com

Environment and Region List

environmentregion
skr-west1
skr-east1
gkr-south1
gkr-south2
gkr-south3
ekr-west1
ekr-east1

API Version History

1.2

STS가 1.2 버전으로 업데이트되었습니다.

변경사항

  • 1.1 버전에서 변경사항 없음

1.1

STS가 1.1 버전으로 업데이트되었습니다.

변경사항

  • [신규] POST /sts/1.1/authenticate-token-with-context - Authenticate sts token and return context
  • [신규] POST /sts/1.1/role-keystone-token - Get Keystone token for assumed role

1.0

STS가 1.0 버전으로 업데이트되었습니다.

변경사항

  • [신규] POST /sts/1.0/assume-role - Acquire temporary role credential
  • [신규] POST /sts/1.0/assume-role-with-saml - Acquire temporary role credential from SAML Assertion
  • [신규] POST /sts/1.0/object-store-authorization - Create new Signature based on Session Token

1 - APIs

1.1 - Acquire temporary role credential

1.1.1 - 1.1

post /v1/assume-role

Description

Acquire temporary role credential

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.1-

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

StsAssumeRoleRequest

Responses

HTTP CodeDescriptionSchema
200OKStsAssumeRoleResponse
400Bad RequestNone
401권한이 없습니다None
403ForbiddenNone
404Not FoundNone

Example HTTP request

Request path

/v1/assume-role

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = sts 1.1"

Request body

{
    "duration_seconds": 900,
    "role_indicator": "qa2:afd580f490394896a6bceabf77683c6bd:role_name",
    "role_session_name": ""
}

Example HTTP response

Response 200

{
    "assumed_role_user": {
        "assumed_role_id": "",
        "srn": ""
    },
    "credentials": {
        "access_key_id": "",
        "expiration": "2024-01-15T10:30:00.000Z",
        "secret_access_key": "",
        "session_token": ""
    }
}

1.1.2 - 1.0

post /v1/assume-role

Description

Acquire temporary role credential

상태 ACTIVE (DEPRECATED)

Not Before 기간이 도래하거나 만료된 Deprecated 버전은 더 이상 지원하지 않습니다. 최신 버전 사용을 권장합니다.

버전최소 지원 보장일
1.020260531

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

StsAssumeRoleRequest

Responses

HTTP CodeDescriptionSchema
200OKStsAssumeRoleResponse
400Bad RequestNone
401권한이 없습니다None
403ForbiddenNone
404Not FoundNone

Example HTTP request

Request path

/v1/assume-role

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = sts 1.0"

Request body

{
    "duration_seconds": 900,
    "role_indicator": "qa2:afd580f490394896a6bceabf77683c6bd:role_name",
    "role_session_name": ""
}

Example HTTP response

Response 200

{
    "assumed_role_user": {
        "assumed_role_id": "",
        "srn": ""
    },
    "credentials": {
        "access_key_id": "",
        "expiration": "2024-01-15T10:30:00.000Z",
        "secret_access_key": "",
        "session_token": ""
    }
}

1.2 - Acquire temporary role credential from SAML Assertion

1.2.1 - 1.1

post /v1/assume-role-with-saml

Description

Acquire temporary role credential from SAML Assertion

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.1-

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

StsAssumeRoleWithSAMLRequest

Responses

HTTP CodeDescriptionSchema
200OKStsAssumeRoleWithSAMLResponse
400Bad RequestNone
401권한이 없습니다None
403ForbiddenNone
404Not FoundNone

Example HTTP request

Request path

/v1/assume-role-with-saml

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = sts 1.1"

Request body

{
    "duration_seconds": 900,
    "principal_indicator": "qa2:afd580f490394896a6bceabf77683c6bd:principal_name",
    "role_indicator": "qa2:afd580f490394896a6bceabf77683c6bd:role_name",
    "saml_assertion": ""
}

Example HTTP response

Response 200

{
    "assumed_role_user": {
        "assumed_role_id": "",
        "srn": ""
    },
    "audience": "",
    "credentials": {
        "access_key_id": "",
        "expiration": "2024-01-15T10:30:00.000Z",
        "secret_access_key": "",
        "session_token": ""
    },
    "issuer": "",
    "subject": "",
    "subject_type": ""
}

1.2.2 - 1.0

post /v1/assume-role-with-saml

Description

Acquire temporary role credential from SAML Assertion

상태 ACTIVE (DEPRECATED)

Not Before 기간이 도래하거나 만료된 Deprecated 버전은 더 이상 지원하지 않습니다. 최신 버전 사용을 권장합니다.

버전최소 지원 보장일
1.020260531

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

StsAssumeRoleWithSAMLRequest

Responses

HTTP CodeDescriptionSchema
200OKStsAssumeRoleWithSAMLResponse
400Bad RequestNone
401권한이 없습니다None
403ForbiddenNone
404Not FoundNone

Example HTTP request

Request path

/v1/assume-role-with-saml

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = sts 1.0"

Request body

{
    "duration_seconds": 900,
    "principal_indicator": "qa2:afd580f490394896a6bceabf77683c6bd:principal_name",
    "role_indicator": "qa2:afd580f490394896a6bceabf77683c6bd:role_name",
    "saml_assertion": ""
}

Example HTTP response

Response 200

{
    "assumed_role_user": {
        "assumed_role_id": "",
        "srn": ""
    },
    "audience": "",
    "credentials": {
        "access_key_id": "",
        "expiration": "2024-01-15T10:30:00.000Z",
        "secret_access_key": "",
        "session_token": ""
    },
    "issuer": "",
    "subject": "",
    "subject_type": ""
}

1.3 - Create new Signature based on Session Token

1.3.1 - 1.1

post /v1/object-store-authorization

Description

Create new Signature based on Session Token

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.1-

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

StsObjectStoreAuthRequest

Responses

HTTP CodeDescriptionSchema
200OKStsObjectStoreAuthResponse
400Bad RequestNone
401권한이 없습니다None
403ForbiddenNone

Example HTTP request

Request path

/v1/object-store-authorization

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = sts 1.1"

Request body

{
    "method": "",
    "region": "kr-west1",
    "service": "s3",
    "url": "",
    "x_amz_content_sha256": "",
    "x_amz_date": ""
}

Example HTTP response

Response 200

{
    "Authorization": ""
}

1.3.2 - 1.0

post /v1/object-store-authorization

Description

Create new Signature based on Session Token

상태 ACTIVE (DEPRECATED)

Not Before 기간이 도래하거나 만료된 Deprecated 버전은 더 이상 지원하지 않습니다. 최신 버전 사용을 권장합니다.

버전최소 지원 보장일
1.020260531

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

StsObjectStoreAuthRequest

Responses

HTTP CodeDescriptionSchema
200OKStsObjectStoreAuthResponse
400Bad RequestNone
401권한이 없습니다None
403ForbiddenNone

Example HTTP request

Request path

/v1/object-store-authorization

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = sts 1.0"

Request body

{
    "method": "",
    "region": "kr-west1",
    "service": "s3",
    "url": "",
    "x_amz_content_sha256": "",
    "x_amz_date": ""
}

Example HTTP response

Response 200

{
    "Authorization": ""
}

2 - Models

2.1 - StsAssumedRoleUser

NameDescriptionSchemaDefault
assumed_role_id
required
수임 역할 ID
Example :
string
srn
required
임시 자격 증명 SRN
Example :
string

2.2 - StsAssumeRoleRequest

NameDescriptionSchemaDefault
duration_seconds
optional
역할 세션의 초 단위 지속 시간
Example : 900
integer900
role_indicator
required
Identifier of the role to assume. [offering:account_id:role_name]
Example : qa2:afd580f490394896a6bceabf77683c6bd:role_name
Pattern : ^[^:]+:[^:]+:[^:]+$
Minimum length : 32
string
role_session_name
required
역할 세션명
Example :
Minimum length : 1
Maximum length : 64
string

2.3 - StsAssumeRoleResponse

NameDescriptionSchemaDefault
assumed_role_user
required
수임 역할 ID
StsAssumedRoleUser
credentials
required
임시 자격 증명
StsCredentials

2.4 - StsAssumeRoleWithSAMLRequest

NameDescriptionSchemaDefault
duration_seconds
optional
역할 세션의 초 단위 지속 시간
Example : 900
integer900
principal_indicator
required
SAML 제공자 표시자
Example : qa2:afd580f490394896a6bceabf77683c6bd:principal_name
Pattern : ^[^:]+:[^:]+:[^:]+$
Minimum length : 32
string
role_indicator
required
Identifier of the role to assume. [offering:account_id:role_name]
Example : qa2:afd580f490394896a6bceabf77683c6bd:role_name
Pattern : ^[^:]+:[^:]+:[^:]+$
Minimum length : 32
string
saml_assertion
required
SAML 어설션
Example :
Minimum length : 1
string

2.5 - StsAssumeRoleWithSAMLResponse

NameDescriptionSchemaDefault
assumed_role_user
required
수임 역할 ID
StsAssumedRoleUser
audience
required
수신자 값
Example :
string
credentials
required
임시 자격 증명
StsCredentials
issuer
required
발행자 값
Example :
string
subject
required
Name ID 값
Example :
string
subject_type
required
Name ID 형식
Example :
string

2.6 - StsCredentials

NameDescriptionSchemaDefault
access_key_id
required
임시 액세스 키 ID
Example :
string
expiration
required
임시 자격 증명 만료
Example : 2024-01-15T10:30:00.000Z
string (date-time)
secret_access_key
required
시크릿 액세스 키
Example :
string
session_token
required
임시 자격 증명을 사용하기 위해 사용자가 전달해야 하는 토큰
Example :
string

2.7 - StsObjectStoreAuthRequest

NameDescriptionSchemaDefault
method
required
HTTP 메서드
Example :
Minimum length : 1
string
region
optional
리전
Example : kr-west1
stringkr-west1
service
optional
서비스
Example : s3
strings3
url
required
요청의 URL
Example :
Minimum length : 1
string
x_amz_content_sha256
required
AMZ 콘텐츠 SHA256
Example :
Minimum length : 1
string
x_amz_date
required
AMZ 일자
Example :
Minimum length : 1
string

2.8 - StsObjectStoreAuthResponse

NameDescriptionSchemaDefault
Authorization
required
승인 헤더
Example :
string