

# AWS CLI를 사용한 Signer 예시
<a name="cli_signer_code_examples"></a>

다음 코드 예시는 Signer와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**Topics**
+ [작업](#actions)

## 작업
<a name="actions"></a>

### `cancel-signing-profile`
<a name="signer_CancelSigningProfile_cli_topic"></a>

다음 코드 예시에서는 `cancel-signing-profile`의 사용 방법을 보여줍니다.

**AWS CLI**  
**서명 프로파일 삭제**  
다음 `cancel-signing-profile` 예시에서는 AWS Signer에서 기존 서명 프로파일을 제거합니다.  

```
aws signer cancel-signing-profile \
    --profile-name MyProfile1
```
이 명령은 출력을 생성하지 않습니다.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [CancelSigningProfile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/cancel-signing-profile.html)을 참조하세요.

### `describe-signing-job`
<a name="signer_DescribeSigningJob_cli_topic"></a>

다음 코드 예시에서는 `describe-signing-job`의 사용 방법을 보여줍니다.

**AWS CLI**  
**서명 작업의 세부 정보 표시**  
다음 `describe-signing-job` 예시에서는 지정된 서명 작업의 세부 정보를 표시합니다.  

```
aws signer describe-signing-job \
    --job-id 2065c468-73e2-4385-a6c9-0123456789abc
```
출력:  

```
{
    "status": "Succeeded",
    "completedAt": 1568412037,
    "platformId": "AmazonFreeRTOS-Default",
    "signingMaterial": {
        "certificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc"
    },
    "statusReason": "Signing Succeeded",
    "jobId": "2065c468-73e2-4385-a6c9-0123456789abc",
    "source": {
        "s3": {
            "version": "PNyFaUTgsQh5ZdMCcoCe6pT1gOpgB_M4",
            "bucketName": "signer-source",
            "key": "MyCode.rb"
        }
    },
    "profileName": "MyProfile2",
    "signedObject": {
        "s3": {
            "bucketName": "signer-destination",
            "key": "signed-2065c468-73e2-4385-a6c9-0123456789abc"
        }
    },
    "requestedBy": "arn:aws:iam::123456789012:user/maria",
    "createdAt": 1568412036
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [DescribeSigningJob](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/describe-signing-job.html)을 참조하세요.

### `get-signing-platform`
<a name="signer_GetSigningPlatform_cli_topic"></a>

다음 코드 예시에서는 `get-signing-platform`의 사용 방법을 보여줍니다.

**AWS CLI**  
**서명 플랫폼의 세부 정보 표시**  
다음 `get-signing-platform` 예시에서는 지정된 서명 플랫폼의 세부 정보를 표시합니다.  

```
aws signer get-signing-platform \
    --platform-id AmazonFreeRTOS-TI-CC3220SF
```
출력:  

```
{
    "category": "AWS",
    "displayName": "Amazon FreeRTOS SHA1-RSA CC3220SF-Format",
    "target": "SHA1-RSA-TISHA1",
    "platformId": "AmazonFreeRTOS-TI-CC3220SF",
    "signingConfiguration": {
        "encryptionAlgorithmOptions": {
            "defaultValue": "RSA",
            "allowedValues": [
                "RSA"
            ]
        },
        "hashAlgorithmOptions": {
            "defaultValue": "SHA1",
            "allowedValues": [
                "SHA1"
            ]
        }
    },
    "maxSizeInMB": 16,
    "partner": "AmazonFreeRTOS",
    "signingImageFormat": {
        "defaultFormat": "JSONEmbedded",
        "supportedFormats": [
            "JSONEmbedded"
        ]
    }
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetSigningPlatform](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/get-signing-platform.html)을 참조하세요.

### `get-signing-profile`
<a name="signer_GetSigningProfile_cli_topic"></a>

다음 코드 예시에서는 `get-signing-profile`의 사용 방법을 보여줍니다.

**AWS CLI**  
**서명 프로파일의 세부 정보 표시**  
다음 `get-signing-profile` 예시에서는 지정된 서명 프로파일의 세부 정보를 표시합니다.  

```
aws signer get-signing-profile \
    --profile-name MyProfile3
```
출력:  

```
{
    "platformId": "AmazonFreeRTOS-TI-CC3220SF",
    "profileName": "MyProfile3",
    "status": "Active",
    "signingMaterial": {
        "certificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc"
    }
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetSigningProfile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/get-signing-profile.html)을 참조하세요.

### `list-signing-jobs`
<a name="signer_ListSigningJobs_cli_topic"></a>

다음 코드 예시에서는 `list-signing-jobs`의 사용 방법을 보여줍니다.

**AWS CLI**  
**모든 서명 작업 나열**  
다음 `list-signing-jobs` 예시에서는 계정의 모든 서명 작업에 대한 세부 정보를 표시합니다.  

```
aws signer list-signing-jobs
```
이 예시에서는 두 개의 작업이 반환됩니다. 하나는 성공이고 다른 하나는 실패입니다.  

```
{
    "jobs": [
        {
            "status": "Succeeded",
            "signingMaterial": {
                "certificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc"
            },
            "jobId": "2065c468-73e2-4385-a6c9-0123456789abc",
            "source": {
                "s3": {
                    "version": "PNyFaUTgsQh5ZdMCcoCe6pT1gOpgB_M4",
                    "bucketName": "signer-source",
                    "key": "MyCode.rb"
                }
            },
            "signedObject": {
                "s3": {
                    "bucketName": "signer-destination",
                    "key": "signed-2065c468-73e2-4385-a6c9-0123456789abc"
                }
            },
            "createdAt": 1568412036
        },
        {
            "status": "Failed",
            "source": {
                "s3": {
                    "version": "PNyFaUTgsQh5ZdMCcoCe6pT1gOpgB_M4",
                    "bucketName": "signer-source",
                    "key": "MyOtherCode.rb"
                }
            },
            "signingMaterial": {
                "certificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc"
            },
            "createdAt": 1568402690,
            "jobId": "74d9825e-22fc-4a0d-b962-0123456789abc"
        }
    ]
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListSigningJobs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/list-signing-jobs.html)를 참조하세요.

### `list-signing-platforms`
<a name="signer_ListSigningPlatforms_cli_topic"></a>

다음 코드 예시에서는 `list-signing-platforms`의 사용 방법을 보여줍니다.

**AWS CLI**  
**모든 서명 플랫폼 나열**  
다음 `list-signing-platforms` 예시에서는 사용 가능한 모든 서명 플랫폼의 세부 정보를 표시합니다.  

```
aws signer list-signing-platforms
```
출력:  

```
{
    "platforms": [
        {
            "category": "AWS",
            "displayName": "AWS IoT Device Management SHA256-ECDSA ",
            "target": "SHA256-ECDSA",
            "platformId": "AWSIoTDeviceManagement-SHA256-ECDSA",
            "signingConfiguration": {
                "encryptionAlgorithmOptions": {
                    "defaultValue": "ECDSA",
                    "allowedValues": [
                        "ECDSA"
                    ]
                },
                "hashAlgorithmOptions": {
                    "defaultValue": "SHA256",
                    "allowedValues": [
                        "SHA256"
                    ]
                }
            },
            "maxSizeInMB": 2048,
            "partner": "AWSIoTDeviceManagement",
            "signingImageFormat": {
                "defaultFormat": "JSONDetached",
                "supportedFormats": [
                    "JSONDetached"
                ]
            }
        },
        {
            "category": "AWS",
            "displayName": "Amazon FreeRTOS SHA1-RSA CC3220SF-Format",
            "target": "SHA1-RSA-TISHA1",
            "platformId": "AmazonFreeRTOS-TI-CC3220SF",
            "signingConfiguration": {
                "encryptionAlgorithmOptions": {
                    "defaultValue": "RSA",
                    "allowedValues": [
                        "RSA"
                    ]
                },
                "hashAlgorithmOptions": {
                    "defaultValue": "SHA1",
                    "allowedValues": [
                        "SHA1"
                    ]
                }
            },
            "maxSizeInMB": 16,
            "partner": "AmazonFreeRTOS",
            "signingImageFormat": {
                "defaultFormat": "JSONEmbedded",
                "supportedFormats": [
                    "JSONEmbedded"
                ]
            }
        },
        {
            "category": "AWS",
            "displayName": "Amazon FreeRTOS SHA256-ECDSA",
            "target": "SHA256-ECDSA",
            "platformId": "AmazonFreeRTOS-Default",
            "signingConfiguration": {
                "encryptionAlgorithmOptions": {
                    "defaultValue": "ECDSA",
                    "allowedValues": [
                        "ECDSA"
                    ]
                },
                "hashAlgorithmOptions": {
                    "defaultValue": "SHA256",
                    "allowedValues": [
                        "SHA256"
                    ]
                }
            },
            "maxSizeInMB": 16,
            "partner": "AmazonFreeRTOS",
            "signingImageFormat": {
                "defaultFormat": "JSONEmbedded",
                "supportedFormats": [
                    "JSONEmbedded"
                ]
            }
        }
    ]
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListSigningPlatforms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/list-signing-platforms.html)를 참조하세요.

### `list-signing-profiles`
<a name="signer_ListSigningProfiles_cli_topic"></a>

다음 코드 예시에서는 `list-signing-profiles`의 사용 방법을 보여줍니다.

**AWS CLI**  
**모든 서명 프로파일 나열**  
다음 `list-signing-profiles` 예시에서는 계정의 모든 서명 프로파일에 대한 세부 정보를 표시합니다.  

```
aws signer list-signing-profiles
```
출력:  

```
{
    "profiles": [
        {
            "platformId": "AmazonFreeRTOS-TI-CC3220SF",
            "profileName": "MyProfile4",
            "status": "Active",
            "signingMaterial": {
                "certificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc"
            }
        },
        {
            "platformId": "AWSIoTDeviceManagement-SHA256-ECDSA",
            "profileName": "MyProfile5",
            "status": "Active",
            "signingMaterial": {
                "certificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc"
            }
        }
    ]
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [ListSigningProfiles](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/list-signing-profiles.html)를 참조하세요.

### `put-signing-profile`
<a name="signer_PutSigningProfile_cli_topic"></a>

다음 코드 예시에서는 `put-signing-profile`의 사용 방법을 보여줍니다.

**AWS CLI**  
**서명 프로파일 생성**  
다음 `put-signing-profile` 예시에서는 지정된 인증서 및 플랫폼을 사용하여 서명 프로파일을 생성합니다.  

```
aws signer put-signing-profile \
    --profile-name MyProfile6 \
    --signing-material certificateArn=arn:aws:acm:us-west-2:123456789012:certificate/6a55389b-306b-4e8c-a95c-0123456789abc \
    --platform AmazonFreeRTOS-TI-CC3220SF
```
출력:  

```
{
    "arn": "arn:aws:signer:us-west-2:123456789012:/signing-profiles/MyProfile6"
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [PutSigningProfile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/put-signing-profile.html)을 참조하세요.

### `start-signing-job`
<a name="signer_StartSigningJob_cli_topic"></a>

다음 코드 예시에서는 `start-signing-job`의 사용 방법을 보여줍니다.

**AWS CLI**  
**서명 작업 시작**  
다음 `start-signing-job` 예시에서는 지정된 소스에서 찾은 코드에서 서명 작업을 시작합니다. 지정된 프로파일을 사용하여 서명을 수행하고 서명된 코드를 지정된 대상에 배치합니다.  

```
aws signer start-signing-job \
    --source 's3={bucketName=signer-source,key=MyCode.rb,version=PNyFaUTgsQh5ZdMCcoCe6pT1gOpgB_M4}' \
    --destination 's3={bucketName=signer-destination,prefix=signed-}' \
    --profile-name MyProfile7
```
출력은 서명 작업의 ID입니다.  

```
{
    "jobId": "2065c468-73e2-4385-a6c9-0123456789abc"
}
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [StartSigningJob](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/signer/start-signing-job.html)을 참조하세요.