AWS 계정을 New Relic에 연결하면 AWS 계정의 인벤토리를 생성하고 Lambda 함수에 대한 CloudWatch 지표를 수집할 수 있는 권한을 New Relic에 부여하는 것입니다. 그러면 AWS 계정의 리소스가 구성 정보로 장식된 탐색기 에 엔터티로 표시됩니다.
Lambda 서버리스 기능 모니터링이 작동하려면 API 폴링 또는 Metric Streams 통합이 필요합니다. 이 계정 연결을 시작하기 전에 통합 선택 항목을 설정하거나 CLI가 API 폴링 통합을 설치하도록 할 수 있습니다.
이 인벤토리를 생성하려면 최소한 이러한 IAM 권한을 부여하는 IAM 역할이 필요합니다.
Resource: "*"
Action:
"cloudwatch:GetMetricStatistics"
"cloudwatch:ListMetrics"
"cloudwatch:GetMetricData"
"lambda:GetAccountSettings"
"lambda:ListFunctions"
"lambda:ListAliases"
"lambda:ListTags"
"lambda:ListEventSourceMappings"
기본적으로 AWS 관리형 정책 ReadOnlyAccess 을 사용합니다. 이를 통해 인프라 통합에서 Lambda 함수 및 CloudWatch 지표뿐 아니라 계정의 모든 리소스를 볼 수 있습니다. New Relic은 이 기본값을 권장하지만 일부 조직은 타사 통합에 대해 매우 보수적인 보안 태세를 가지고 있다는 것을 알고 있습니다. 위의 권한이 있는 역할은 Lambda 원격 분석 수집을 허용하는 데 충분하지만 다른 서비스와 상호 작용하는 추적이 제대로 작동하지 않을 수 있습니다.
이 통합 단계에서는 New Relic 라이선스 키도 AWS Secrets Manager 서비스에 저장하여 원격 분석을 New Relic 계정으로 보낼 수 있습니다.
newrelic-lambda CLI는 보안 강화를 위해 AWS Secret Manager 의 보안 비밀로 New Relic 라이선스 키를 추가합니다.
팁
AWS Secrets Manager에 New Relic 라이선스 키 저장
귀하의 New Relic 라이선스 키 는 귀하를 New Relic에 대해 식별하고 인증하여 당사가 귀하의 원격 측정을 귀하의 New Relic 계정과 연결할 수 있도록 합니다. 원격 분석을 보내는 각 기능은 이 값에 액세스해야 하며 안전하게 관리해야 합니다. AWS Secrets Manager는 이러한 문제를 해결합니다.
조직에서 AWS Secrets Manager 사용을 금지하거나 리전당 둘 이상의 암호를 저장해야 하는 경우 아래에서 라이선스 키를 설정하는 대체 방법을 참조하십시오.
대체 방법
인프라 모니터링 UI
CLI는 계정을 연결하는 가장 간단한 방법입니다. 현재 CLI 동작은 지역당 하나의 관리 암호 설정을 제한합니다. 더 많은 제어가 필요하거나 지역당 하나 이상의 New Relic 계정을 통합해야 하는 경우 수동으로 연결 프로세스 를 진행할 수 있습니다. 모니터링할 서비스를 선택할 때 Lambda를 활성화해야 합니다.
AWS CLI 또는 AWS CloudFormation 콘솔을 사용하여 LicenseKey 매개변수를 제공하여 템플릿을 설치합니다. 여기에서 New Relic 라이센스 키를 찾을 수 있습니다. "INGEST - LICENSE"라는 레이블이 지정됩니다. 위의 인프라 UI로 구성한 계정의 라이선스 키를 사용해야 합니다.
AWS CLI 예:
YOUR_LICENSE_KEY 및 YOUR_ACCOUNT_ID 을 위에서 찾은 라이선스 키와 계정 ID로 바꿔야 합니다.
라이선스 키는 New Relic 계정에 연결되어 있고 보안 비밀은 라이선스 키가 포함된 AWS 관리형 보안 비밀의 이름입니다. NEW_RELIC_LICENSE_KEY 이 설정되지 않은 경우 NEW_RELIC_LICENSE_KEY_SECRET 에서 키를 찾습니다. 키 내용의 형식이 올바른지 확인하려면 CLI 를 사용하여 람다 모니터링을 활성화하는 것이 좋습니다.
조직에서 AWS Secrets Manager 사용을 허용하지 않는 경우 New Relic Lambda Extension은 NEW_RELIC_LICENSE_KEY 환경 변수를 수락합니다. newrelic-lambda integrations install 명령에서 --disable-license-key-secret 플래그를 추가합니다. 그런 다음 이 환경 변수를 Lambda 함수 구성의 New Relic 라이선스 키로 설정합니다.
여러 AWS 리전 및 계정
newrelic-lambda CLI는 --aws-region 매개변수를 사용하여 리전당 한 번 실행해야 합니다. 동일한 연결된 계정 이름을 사용하면 도구가 계정 연결이 이미 생성되었음을 감지합니다. 라이선스 키 암호는 각 지역에서 생성해야 합니다.
마찬가지로 여러 AWS 계정을 New Relic 계정에 연결할 수 있습니다. 각 계정에 서로 다른 연결 계정 이름을 지정합니다. CLI 도구에 대한 --aws-profile 인수는 명명된 프로필을 선택합니다. 이 도구는 AWS CLI와 동일한 구성을 사용합니다.
라이센스 키 검색 실패 AccessDeniedException
람다 코드에는 AWS Secrets Manager를 읽을 수 있는 권한이 있는 실행 역할이 필요합니다. 다음과 같은 로그를 찾으면 실행 역할의 정책에 적절한 권한을 추가하십시오. 이 예에서 이 권한을 부여하는 쉬운 방법을 보려면 template.yaml 파일을 확인하세요.
Failed to retrieve license key AccessDeniedException: User: <ARN> is not authorized to perform: secretsmanager:GetSecretValue on resource: <ARN>