• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

비밀 관리

암호 관리를 사용하면 민감한 데이터(예: 암호)를 구성 파일에 일반 텍스트로 쓰지 않고도 사용하도록 에이전트 및 온호스트 통합을 구성할 수 있습니다. 현재 Hashicorp Vault, AWS KMS, CyberArk, New Relic CLI 난독화 및 사용자 지정 명령이 지원됩니다.

이 NerdBytes 비디오(5분 12초)에서 자세히 알아보십시오.

비밀 정의

구성 YAML 파일에서 비밀을 사용하려면:

  1. variables 섹션을 정의합니다. 여기서 각 항목은 비밀 객체의 이름입니다.
  2. 각 항목에 비밀 소스와 해당 비밀을 검색하기 위한 적절한 구성을 포함합니다.
  3. 일반 구성 섹션에서 비밀 개체의 속성으로 자동 대체될 ${variable.property} 자리 표시자를 설정합니다. 비밀 개체는 간단한 문자열 또는 json 개체로 정의할 수 있습니다.

중요

비밀 검색이 실패하면 인프라 에이전트에 실행에 필요한 모든 데이터가 없기 때문에 통합이 실행되지 않습니다.

예를 들어, 다음 구성은 Vault에서 creds 라는 객체를 검색합니다(비밀에 대한 객체의 이름을 정의할 수 있음). 저장된 객체가 user 라는 속성과 password라는 다른 속성을 가진 유효한 JSON이라고 가정 해 봅시다. 이를 사용하여 Nginx 온 호스트 통합에서 status_url 속성의 기본 HTTP 자격 증명을 설정하려고합니다.

variables:
creds:
vault:
http:
url: http://my.vault.host/v1/newengine/data/secret
headers:
X-Vault-Token: my-vault-token
integrations:
- name: nri-nginx
env:
METRICS: "true"
STATUS_URL: http://${creds.user}:${creds.password}@example.com/status
STATUS_MODULE: discover
REMOTE_MONITORING: true
interval: 30s
labels:
env: production
role: load_balancer

단순 문자열과 유효한 JSON 개체는 모두 변수에서 검색할 수 있습니다.
JSON 객체를 사용할 때 키와 값이 모두 큰따옴표로 묶여 있는지 확인하십시오.

환경 변수 사용

환경 변수는 {{MY_ENV_VAR}} 표기법을 사용하여 variables 섹션에 사용할 수 있습니다. 이렇게 하면 환경 변수가 확장되고 해당 값이 런타임에 바뀝니다.

토큰이나 난독화 키와 같은 민감한 값이 구성 파일에 포함되지 않도록 하려면 이 방법을 사용하십시오.

호스트 내 통합 구성 파일에서 환경 변수를 사용하는 경우 passthrough_environment 설정을 정의해야 합니다.

비밀 변수

variables 섹션에서 각 구성의 비밀을 정의합니다. 각 항목은 검색된 비밀의 속성을 저장할 사용자 정의 비밀 이름입니다. 각 변수에는 다음 속성이 포함될 수 있습니다.

YAML 키

설명

ttl

유형: 문자열

보안 비밀이 새로 고쳐지기까지의 시간입니다. 숫자 다음에 시간 단위가 올 수 있습니다( s , m 또는 h ).

예: 30s , 10m , 1h

기본: 1h

aws-kms

AWS KMS 암호 검색 구성

vault

볼트 비밀 검색 구성

cyberark-cli

CyberArk 명령줄 인터페이스 구성

cyberark-api

CyberArk REST API 구성

obfuscated

New Relic CLI 난독화

AWS KMS 암호

Amazon KMS에서 보안 비밀을 검색하려면 aws-kms 섹션에서 다음 속성을 설정할 수 있습니다. 모든 필드가 필요한 것은 아닙니다. 예를 들어 인코딩된 KMS 문자열을 제공하려면 data , file 또는 http 이 필요합니다.

YAML 키

설명

data

유형: 문자열

해독할 Base64로 인코딩된 KMS 문자열

file

유형: 문자열

복호화할 Base64로 인코딩된 KMS 문자열이 포함된 파일 경로

http

유형: YAML 속성

Base64로 인코딩된 KMS 문자열을 해독하도록 요청하는 데 사용할 HTTP 구성입니다. 자세한 내용은 Vault http 를 참조하십시오.

credential_file

유형: 문자열

AWS 자격 증명 파일 경로

config_file

유형: 문자열

AWS 구성 파일 경로

region

유형: 문자열

AWS KMS 리전

type

유형: 문자열( plain , equal 또는 json )

비밀 값 형식:

  • plain: 대상 변수에 직접 저장할 원시 문자열입니다.

  • equal: 대상 변수에 객체 속성으로 저장할 key=property 한 줄 문자열입니다.

  • json: 대상 변수에 속성으로 저장할 JSON 개체입니다.

    plain 또는 json 유형의 비밀은 점 표기법을 사용합니다. 예: ${mysecret.nestedkey} .

다음 예에서는 AWS KMS에서 일반 암호 문자열을 검색할 수 있습니다. 제공된 data 인코딩된 문자열에서 암호를 해독해야 합니다.

variables:
myPassword:
aws-kms:
data: T0hBSStGTEVY
region: ap-southeast-2
credential_file: "./my-aws-credentials-file"
config_file: "./my-aws-config-file"
type: plain

금고 비밀

Vault는 Vault에 연결하는 데 사용되는 HTTP 구성이 포함된 http 필드를 활성화해야 합니다. http 항목에는 다음 항목이 포함될 수 있습니다.

YAML 키

설명

url

유형: 문자열

데이터를 요청할 URL

tls_config

유형: YAML 속성

TLS 구성 속성 사용

headers

유형: YAML 맵

요청 헤더

tls_config 속성

중요

비밀은 점 표기법을 사용해야 합니다(예: ${mysecret.nestedkey} .

YAML 키

설명

enable

유형: 부울

TLS 활성화

기본: false

insecure_skip_verify

유형: 부울

서버의 인증서 체인 및 호스트 확인 건너뛰기

기본: false

min_version

유형: UInt16

허용되는 최소 SSL/TLS 버전

기본값: 0 (TLS 버전 1.0 사용)

max_version

유형: UInt16

허용되는 최대 SSL/TLS 버전

기본값: 0 (TLS 버전 1.3 사용)

ca

유형: 문자열

TLS 인증서

""

다음 예에서는 보안 서버에서 Vault 토큰을 사용하여 비밀을 검색하고 서버 인증서 확인을 건너뜁니다.

variables:
mydata:
vault:
http:
url: https://my.vault.host/v1/newengine/data/secret
headers:
X-Vault-Token: my-vault-token
tls_config:
insecure_skip_verify: true

CyberArk 명령줄 인터페이스

CyberArk 명령줄 인터페이스(CLI)에서 비밀을 검색하려면 다음 구성을 사용하십시오. 모든 키가 필요합니다.

YAML 키

설명

cli

유형: 문자열

CyberArk CLI 실행 파일의 전체 경로

기본: ""

app-ID

유형: 문자열

비밀 보유자의 애플리케이션 ID

기본: ""

safe

유형: 문자열

비밀이 담긴 금고

기본: ""

folder

유형: 문자열

비밀이 들어 있는 폴더

기본: ""

object

유형: 문자열

비밀이 연결된 개체

기본: ""

다음 예에서는 명령줄 인터페이스를 사용하여 CyberArk 암호를 검색합니다.

variables:
credentials:
cyberark-cli:
cli: /full/path/to/clipasswordsdk
app-id: my-appid
safe: my-safe
folder: my-folder
object: my-object

사이버아크 REST API

CyberArk REST API를 사용하여 비밀을 검색하려면 HTTP 구성이 포함된 http 키가 있어야 합니다. http 키에는 다음 하위 키가 포함되며 url 만 필요합니다.

YAML 키

설명

url

유형: 문자열

데이터를 요청할 URL, 이 키가 필요합니다.

기본값: 없음

tls_config

유형: YAML 속성

TLS 구성 속성 사용

headers

유형: YAML 맵

요청 헤더

다음 예는 서버 인증서 확인을 건너뛰고 CyberArk REST API를 사용하여 비밀을 검색합니다.

variables:
credentials:
cyberark-api:
http:
url: https://hostname/AIMWebService/api/Accounts?AppID=myAppID&Query=Safe=mySafe;Object=myObject
tls_config:
insecure_skip_verify: true

New Relic CLI 난독화

중요

가능하면 단순한 난독화 대신 지원되는 비밀 공급자를 사용하는 것이 좋습니다.

구성 파일에 난독화 키가 포함되지 않도록 환경 변수를 정의하려면 아래 지침을 참조하세요.

명령 프롬프트 창이 예기치 않은 방식으로 인용 부호를 처리할 수 있으므로 명령 프롬프트 창 대신 Windows 호스트에서 Powershell을 사용하십시오.

Infrastructure Agent 1.14.0 이상이 필요합니다.

New Relic CLI obfuscate 명령을 사용하여 인프라 에이전트 또는 온-호스트 통합 구성 파일의 민감한 정보를 숨길 수 있습니다.

단계:

newrelic agent config obfuscate --value '<plain_text_config_value>' --key '<obfuscation_key>'
  • 아래 예와 같이 cli 명령의 결과를 obfuscated 섹션의 text 인수에 복사합니다.
  • 구성 YML 파일에서 여러 값을 참조해야 하는 경우 JSON 블록을 난독화할 수 있습니다. Windows 호스트에서 백슬래시를 사용하여 따옴표 "" 를 이스케이프해야 할 수도 있습니다. 예: '{\"attribute\":\"value\"... . 또한 명령 프롬프트 창이 예기치 않은 방식으로 인용 부호를 처리할 수 있으므로 명령 프롬프트 창보다 Windows 호스트에서 Powershell을 사용하십시오.
newrelic agent config obfuscate --value '{"attribute":"value","attribute2":"value2"}' --key '<obfuscation_key>'

YAML 키

설명

열쇠

유형: 문자열

New Relic CLI를 사용하여 일반 텍스트 값을 난독화할 때 사용되는 문자열

기본값: 없음

secret

유형: 문자열

newrelic-cli 명령의 출력

기본값: 없음

통합 구성 예
다음 예에서는 New Relic CLI를 사용하여 난독화된 Nginx 사용자 및 암호를 검색할 수 있습니다. 난독화된 값이 JSON 블록이었기 때문에 이 예에서는 자격 증명을 검색할 때 점 표기법을 사용합니다.

variables:
creds:
obfuscated:
key: 'random_key_used_in_cli'
secret: 'obscured_output_from_cli'
integrations:
- name: nri-nginx
env:
METRICS: "true"
STATUS_URL: http://${creds.user}:${creds.password}@example.com/status
STATUS_MODULE: discover
REMOTE_MONITORING: true
interval: 30s
labels:
env: production
role: load_balancer

아래 예와 같이 난독화 인수에 환경 변수를 사용하는 것이 좋습니다.

variables:
creds:
obfuscated:
key: {{OBFUSCATION_KEY}}
secret: {{OBFUSCATION_TEXT}}
integrations:
- name: nri-nginx
env:
METRICS: "true"
STATUS_URL: http://${creds.user}:${creds.password}@example.com/status
STATUS_MODULE: discover
REMOTE_MONITORING: true
interval: 30s
labels:
env: production
role: load_balancer

에이전트 구성 예
이 예에서는 프록시 세부 정보(사용자, 암호 및 호스트)가 포함된 문자열을 검색할 수 있습니다.

variables:
obfuscated_proxy:
obfuscated:
key: 'random_key_used_in_cli'
secret: 'obscured_output_from_cli'
proxy: ${obfuscated_proxy}

사용자 지정 명령

중요

command 구성에는 인프라 에이전트 1.41.0 이상이 필요합니다. 에이전트에 환경 요구 사항에 따라 구성된 command 를 실행하는 데 필요한 권한이 있는지 확인하십시오.

동일한 호스트에서 사용 가능한 사용자 지정 명령에서 에이전트 또는 통합 구성을 로드할 수 있습니다. 인프라 에이전트는 구성이 처음에 command 출력에서 로드되어야 하는 시기를 감지하고 ttl 새로고침 시간을 기준으로 값을 업데이트된 상태로 유지합니다.

명령의 예상 출력 형식은 JSON 또는 문자열입니다.

JSON

다음 JSON 구조는 정의된 command의 기본 출력(stdout)으로 예상됩니다.

{
"data": {
"myKey": "myValue"
},
"ttl": "24h"
}
  • 최상위 data 필드가 필요합니다.
  • 최상위 ttl 필드가 필요합니다.

그런 다음 ${myVariable.key} 표기법을 사용하여 모든 구성 파일에서 사용할 수 있습니다. 다음 예에서는 domain 매개변수를 사용하여 my-custom-auth 명령을 실행한 다음 결과 token 을 에이전트 구성으로 로드합니다.

variables:
myToken:
command:
path: '/path/to/my-custom-auth-json'
args: ["--domain", "myDomain", "--other_param", "otherValue"]
ttl: 24h
# my-custom-auth output example: {"data":{"token":"XXXXYYYYZZZZ"}, "ttl": "24h"}
# the `token` result can be included as ${myToken.token} in any configuration.
http:
headers:
"Proxy-Authorization": ${myToken.token}

문자열(텍스트/일반)

명령 출력이 일반 문자열인 경우 ${myVar} 표기법을 사용하여 구성에서 참조할 수 있습니다.

예시:

variables:
myToken:
command:
path: '/path/to/my-custom-auth-string'
args: ["arg1", "arg2"]
ttl: 24h
# my-custom-auth output example: "XXXXYYYYZZZZ"
# the `token` result can be included as ${myToken} on any configuration.
http:
headers:
"Proxy-Authorization": ${myToken}
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.