

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 클라이언트 측 캐싱과 함께 Python을 사용하여 Secrets Manager 보안 암호 값 가져오기
<a name="retrieving-secrets_cache-python"></a>

보안 암호를 검색할 때 Secret Manager Python 기반 캐싱 구성 요소를 사용하여 나중에 사용할 수 있도록 캐싱할 수 있습니다. 캐싱된 보안 암호를 검색하는 것이 Secret Manager에서 검색하는 것보다 빠릅니다. Secrets Manager API를 호출하는 데는 비용이 발생하므로 캐시를 사용하면 비용을 줄일 수 있습니다. 암호를 검색할 수 있는 모든 방법은 [보안 암호 가져오기](retrieving-secrets.md)을(를) 참조하세요.

캐시 정책은 LRU(가장 오랫동안 사용되지 않음)이므로, 캐시에서 보안 암호를 폐기해야 하는 경우 가장 오랫동안 사용되지 않은 보안 암호가 삭제됩니다. 기본적으로 캐시는 보안 암호를 매시간 새로 고칩니다. 캐시에서 [보안 암호를 새로 고치는 주기](retrieving-secrets_cache-ref-secretcacheconfig.md)를 구성하고 [보안 암호 검색에 연결](retrieving-secrets_cache-ref-secretcachehook.md)하여 더 많은 기능을 추가할 수 있습니다.

캐시 참조가 해제되면 캐시는 가비지 수집을 강제로 적용하지 않습니다. 캐시 구현에는 캐시 무효화가 포함되지 않습니다. 캐시 구현은 캐시 자체에 중점을 두며, 보안을 강화하거나 보안에 초점을 맞추지 않습니다. 캐시에서 항목 암호화와 같은 추가 보안이 필요한 경우 제공된 인터페이스 및 추상 메서드를 사용하세요.

이 구성 요소를 사용하려면 다음이 필요합니다.
+ Python 3.6 이상
+ botocore 1.12 이상. [AWS SDK for Python](https://aws.amazon.com/sdk-for-python/) 및 [Botocore](https://botocore.amazonaws.com/v1/documentation/api/latest/index.html)를 참조하세요.
+ setuptools\$1scm 3.2 이상. [https://pypi.org/project/setuptools-scm/](https://pypi.org/project/setuptools-scm/)을 참조하세요.

소스 코드를 다운로드하려면 GitHub의 [Secrets Manager Python 기반 캐싱 클라이언트 구성 요소](https://github.com/aws/aws-secretsmanager-caching-python )를 참조하세요.

구성 요소를 설치하려면 다음 명령을 사용합니다.

```
$ pip install aws-secretsmanager-caching
```

**필요한 권한:**
+ `secretsmanager:DescribeSecret`
+ `secretsmanager:GetSecretValue`

자세한 내용은 [권한 참조](auth-and-access.md#reference_iam-permissions) 단원을 참조하십시오.

**Topics**
+ [

# SecretCache
](retrieving-secrets_cache-ref-secretcache.md)
+ [

# SecretCacheConfig
](retrieving-secrets_cache-ref-secretcacheconfig.md)
+ [

# SecretCacheHook
](retrieving-secrets_cache-ref-secretcachehook.md)
+ [

# @InjectSecretString
](retrieving-secrets_cache-decor-string.md)
+ [

# @InjectKeywordedSecretString
](retrieving-secrets_cache-decor-keyword.md)

**Example 보안 암호 검색**  
다음 예에서는 *mysecret*이라는 보안 암호에 대한 보안 암호 값을 가져오는 방법을 보여 줍니다.  

```
import botocore 
import botocore.session 
from aws_secretsmanager_caching import SecretCache, SecretCacheConfig 

client = botocore.session.get_session().create_client('secretsmanager')
cache_config = SecretCacheConfig()
cache = SecretCache( config = cache_config, client = client)

secret = cache.get_secret_string('mysecret')
```

# SecretCache
<a name="retrieving-secrets_cache-ref-secretcache"></a>

Secret Manager에서 검색된 암호에 대한 인 메모리 캐시. [get\$1secret\$1string](#retrieving-secrets_cache-ref-secretcache_get_secret_string) 또는 [get\$1secret\$1binary](#retrieving-secrets_cache-ref-secretcache_get_secret_binary)를 사용하여 캐시에서 보안 암호를 검색합니다. 생성자의 [SecretCacheConfig](retrieving-secrets_cache-ref-secretcacheconfig.md) 객체에 전달하여 캐시 설정을 구성할 수 있습니다.

예제를 포함한 자세한 내용은 [클라이언트 측 캐싱과 함께 Python을 사용하여 Secrets Manager 보안 암호 값 가져오기](retrieving-secrets_cache-python.md)을 참조하세요.

```
cache = SecretCache(
    config = SecretCacheConfig,
    client = [client](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager.html)
)
```

**Topics**
+ [

## get\$1secret\$1string
](#retrieving-secrets_cache-ref-secretcache_get_secret_string)
+ [

## get\$1secret\$1binary
](#retrieving-secrets_cache-ref-secretcache_get_secret_binary)

## get\$1secret\$1string
<a name="retrieving-secrets_cache-ref-secretcache_get_secret_string"></a>

보안 암호 문자열 값을 검색합니다.

요청 구문  

```
response = cache.get_secret_string(
    secret_id='string',
    version_stage='string' )
```

Parameters  
+ `secret_id`(*문자열*) [필수] 보안 암호의 ARN 이름.
+ `version_stage`(*문자열*) 검색하려는 보안 암호의 버전. 자세한 내용은 [보안 암호 버전](whats-in-a-secret.md)을 참조하세요. 기본값은 'AWSCURRENT'입니다.

반환 타입  
문자열

## get\$1secret\$1binary
<a name="retrieving-secrets_cache-ref-secretcache_get_secret_binary"></a>

보안 암호 이진 값을 검색합니다.

요청 구문  

```
response = cache.get_secret_binary(
    secret_id='string',
    version_stage='string'
)
```

Parameters  
+ `secret_id`(*문자열*) [필수] 보안 암호의 ARN 이름.
+ `version_stage`(*문자열*) 검색하려는 보안 암호의 버전. 자세한 내용은 [보안 암호 버전](whats-in-a-secret.md)을 참조하세요. 기본값은 'AWSCURRENT'입니다.

반환 타입  
[Base64로 인코딩](https://tools.ietf.org/html/rfc4648#section-4)된 문자열

# SecretCacheConfig
<a name="retrieving-secrets_cache-ref-secretcacheconfig"></a>

캐싱된 보안 암호에 대한 최대 캐시 크기 및 유지 시간(TTL)과 같은 [SecretCache](retrieving-secrets_cache-ref-secretcache.md)에 대한 캐시 구성 옵션.Parameters

`max_cache_size` (*int*)  
최대 캐시 크기. 기본값은 보안 암호 `1024`개입니다.

`exception_retry_delay_base` (*int*)  
예외가 발생한 후 요청을 재시도하기 전에 대기할 시간(초). 기본값은 `1`입니다.

`exception_retry_growth_factor` (*int*)pur  
실패한 요청 재시도 간의 대기 시간을 계산하는 데 사용할 성장 계수. 기본값은 `2`입니다.

`exception_retry_delay_max` (*int*)  
실패한 요청 사이에 대기할 최대 시간(초). 기본값은 `3600`입니다.

`default_version_stage` (*str*)  
캐싱할 보안 암호의 버전. 자세한 내용은 [보안 암호 버전](whats-in-a-secret.md#term_version)을 참조하세요. 기본값은 `'AWSCURRENT'`입니다.

`secret_refresh_interval` (*int*)  
캐싱된 보안 암호 정보를 새로 고치는 동안 대기할 시간(초). 기본값은 `3600`입니다.

`secret_cache_hook` (*SecretCacheHook*)  
`SecretCacheHook` 추상 클래스의 구현. 기본값은 `None`입니다.

# SecretCacheHook
<a name="retrieving-secrets_cache-ref-secretcachehook"></a>

캐시에 저장 중인 보안 암호에 대한 작업을 수행하기 위해 [SecretCache](retrieving-secrets_cache-ref-secretcache.md)에 연결되는 인터페이스.

**Topics**
+ [

## put
](#retrieving-secrets_cache-ref-secretcachehook_put)
+ [

## 시작
](#retrieving-secrets_cache-ref-secretcachehook_get)

## put
<a name="retrieving-secrets_cache-ref-secretcachehook_put"></a>

캐시에 저장할 객체를 준비합니다.

요청 구문  

```
response = hook.put(
    obj='secret_object'
)
```

Parameters  
+ `obj` (*객체*) -- [필수] 보안 암호 또는 보안 암호를 포함하는 객체.

반환 타입  
객체

## 시작
<a name="retrieving-secrets_cache-ref-secretcachehook_get"></a>

캐싱된 객체에서 객체를 추출합니다.

요청 구문  

```
response = hook.get(
    obj='secret_object'
)
```

Parameters  
+ `obj`(*객체*) [필수] 보안 암호 또는 보안 암호를 포함하는 객체.

반환 타입  
객체

# @InjectSecretString
<a name="retrieving-secrets_cache-decor-string"></a>

이 데코레이터는 첫 번째와 두 번째 인수로 보안 암호 ID 문자열과 [SecretCache](retrieving-secrets_cache-ref-secretcache.md)을(를) 기대합니다. 데코레이터는 보안 암호 문자열 값을 반환합니다. 보안 암호는 문자열을 포함해야 합니다.

```
from aws_secretsmanager_caching import SecretCache 
from aws_secretsmanager_caching import InjectKeywordedSecretString,  InjectSecretString 

cache = SecretCache()

@InjectSecretString ( 'mysecret' ,  cache ) 
def function_to_be_decorated( arg1,  arg2,  arg3):
```

# @InjectKeywordedSecretString
<a name="retrieving-secrets_cache-decor-keyword"></a>

이 데코레이터는 첫 번째와 두 번째 인수로 보안 암호 ID 문자열과 [SecretCache](retrieving-secrets_cache-ref-secretcache.md)을(를) 기대합니다. 나머지 인수는 래핑된 함수의 파라미터를 보안 암호의 JSON 키로 매핑합니다. 보안 암호에는 JSON 구조의 문자열이 포함되어야 합니다.

이 JSON이 포함된 보안 암호의 경우:

```
{
  "username": "saanvi",
  "password": "EXAMPLE-PASSWORD"
}
```

다음 예에서는 보안 암호에서 `username`과 `password`에 대한 JSON 값을 추출하는 방법을 보여줍니다.

```
from aws_secretsmanager_caching import SecretCache 
  from aws_secretsmanager_caching import InjectKeywordedSecretString,  InjectSecretString 
  
  cache = SecretCache()
  
  @InjectKeywordedSecretString ( secret_id = 'mysecret' ,  cache = cache ,  func_username = 'username' ,  func_password = 'password' ) 
  def function_to_be_decorated( func_username,  func_password):
       print( 'Do something with the func_username and func_password parameters')
```