

# Apache Spark 암호화 활성화
<a name="notebooks-spark-encryption"></a>

Athena에서 Apache Spark 암호화를 활성화할 수 있습니다. 이렇게 하면 Spark 노드 간에 전송 중 데이터는 물론, Spark에서 로컬로 저장된 저장 데이터도 암호화됩니다. 이 데이터의 보안을 강화하기 위해 Athena는 다음과 같은 암호화 구성을 사용합니다.

```
spark.io.encryption.keySizeBits="256" 
spark.io.encryption.keygen.algorithm="HmacSHA384"
```

Spark 암호화를 활성화하려면 Athena 콘솔, AWS CLI 또는 Athena API를 사용할 수 있습니다.

## Athena 콘솔을 사용하여 새 노트북에서 Spark 암호화 활성화
<a name="notebooks-spark-encryption-athena-console-new-notebook"></a>

**Spark 암호화가 활성화된 새 노트북을 생성하려면**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **Notebook explorer**(노트북 탐색기)에서 **Create notebook**(노트북 생성)을 선택합니다.
   + **Notebook editor**(노트북 편집기)에서 **Create notebook**(노트북 생성)을 선택하거나 더하기 아이콘(**\+**)을 선택하여 노트북을 추가합니다.

1. **노트북 이름**에는 노트북의 이름을 입력합니다.

1. **Spark 속성** 옵션을 확장합니다.

1. **Spark 암호화 켜기**를 선택합니다.

1. **생성(Create)**을 선택합니다.

생성한 노트북 세션은 암호화됩니다. 평소처럼 새 노트북을 사용합니다. 나중에 노트북을 사용하는 새 세션을 시작하면 새 세션도 암호화됩니다.

## Athena 콘솔을 사용하여 기존 노트북에서 Spark 암호화 활성화
<a name="notebooks-spark-encryption-athena-console-existing-notebook"></a>

또한 Athena 콘솔을 사용하여 기존 노트북의 Spark 암호화를 활성화할 수도 있습니다.

**기존 노트북의 암호화를 활성화하려면**

1. 이전에 생성한 노트북의 [새 세션을 엽니다](notebooks-spark-managing.md#opening-a-previously-created-notebook).

1. 노트북 편집기의 오른쪽 상단 **Session**(세션) 메뉴에서 **Edit session**(세션 편집)을 선택합니다.

1. **세션 세부 정보 편집** 대화 상자에서 **Spark 속성**을 확장합니다.

1. **Spark 암호화 켜기**를 선택합니다.

1. **저장**을 선택합니다.

콘솔은 암호화가 활성화된 새 세션을 시작합니다. 이 노트북에 대해 생성한 이후 세션에서도 암호화가 활성화됩니다.

## AWS CLI를 사용하여 Spark 암호화 활성화
<a name="notebooks-spark-encryption-cli"></a>

AWS CLI를 사용하여 적절한 Spark 속성을 지정해 세션을 시작할 때 암호화를 활성화할 수 있습니다.

**AWS CLI를 사용하여 Spark 암호화를 활성화하려면**

1. 다음과 같은 명령을 사용하여 Spark 암호화 속성을 지정하는 엔진 구성 JSON 객체를 생성합니다.

   ```
   ENGINE_CONFIGURATION_JSON=$( 
     cat <<EOF 
   { 
       "CoordinatorDpuSize": 1, 
       "MaxConcurrentDpus": 20, 
       "DefaultExecutorDpuSize": 1, 
       "SparkProperties": { 
         "spark.authenticate": "true", 
         "spark.io.encryption.enabled": "true", 
         "spark.network.crypto.enabled": "true" 
       } 
   } 
   EOF 
   )
   ```

1. AWS CLI에서 다음 예제와 같이 `athena start-session` 명령을 사용하여 생성한 JSON 객체를 `--engine-configuration` 인수로 전달합니다.

   ```
   aws athena start-session \ 
      --region "{{region}}" \ 
      --work-group "{{your-work-group}}" \ 
      --engine-configuration "$ENGINE_CONFIGURATION_JSON"
   ```

## Athena API를 사용하여 Spark 암호화 활성화
<a name="notebooks-spark-encryption-api"></a>

Athena API를 사용하여 Spark 암호화를 활성화하려면 [StartSession](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartSession.html) 작업 및 해당 [EngineConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_EngineConfiguration.html) `SparkProperties` 파라미터를 사용하여 `StartSession` 요청의 암호화 구성을 지정합니다.