View a markdown version of this page

커넥터 개발자를 위한 일반/사용자 지정 권한 부여 요구 사항 - 에 대한 관리형 통합 AWS IoT Device Management

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

커넥터 개발자를 위한 일반/사용자 지정 권한 부여 요구 사항

일반 권한 부여를 사용하면 커넥터가 OAuth 2.0 사용자 토큰 대신 자격 증명(예: API 키, 토큰 또는 사용자 이름/암호 조합)을 사용할 수 있습니다. 계정 연결을 통해 사용자 수준 권한을 제공하는 OAuth 2.0과 달리 일반 권한 부여를 사용하면 단일 자격 증명 세트가 여러 최종 사용자에 걸쳐 디바이스를 제어할 수 있습니다.

참고

이 설명서 전체에서 사용자 지정 권한 부여를 일반 권한 부여라고 합니다. 두 용어 모두 동일한 권한 부여 메커니즘을 설명합니다. 다음 섹션에서는 일관성을 위해 "일반 권한 부여"를 사용합니다.

이 섹션에서는 커넥터 AWS Lambda 함수에서 일반 권한 부여 지원을 구현하는 방법을 설명합니다. 기존 커넥터에 대한 일반 승인을 구성하는 고객인 경우 섹션을 참조하세요일반/사용자 지정 권한 부여 요구 사항.

일반 승인이란 무엇입니까?

일반 권한 부여는 커넥터가 고객 자격 증명을 사용하여 타사 플랫폼으로 권한을 부여할 수 있는 비 OAuth 권한 부여 메커니즘입니다. 일반 승인을 통해 관리형 통합은 자격 증명 관리를 커넥터에 위임하고 단일 자격 증명 세트는 여러 최종 사용자에 걸쳐 디바이스를 제어할 수 있습니다.

이는 디바이스 공급업체와 비즈니스 관계가 있고 개별 사용자 권한 부여 흐름 없이 대규모로 디바이스를 관리해야 하는 시나리오에 유용합니다.

일반 권한 부여를 사용해야 하는 경우

다음과 같은 경우 커넥터에서 일반 승인 지원을 구현하는 것이 좋습니다.

  • 타사 플랫폼은 OAuth 2.0을 지원하지 않습니다.

  • 타사 플랫폼은에 상주할 수 있는 API 키 또는 자격 증명과 같은 사용자 지정 권한 부여 자료를 제공합니다. AWS Secrets Manager

  • 개별 사용자 권한 부여 흐름 없이 대규모 디바이스를 관리해야 함

참고

커넥터는 두 권한 부여 유형을 병렬로 구현하여 다양한 권한 부여 프레임워크와의 호환성을 제공할 수 있습니다.

일반 권한 부여에서를 사용하는 방법 AWS Secrets Manager

AWS Secrets Manager 는 API 키 및 토큰과 같은 민감한 자격 증명을 보호하는 보안 암호 스토리지 서비스입니다. 보안 암호는 AWS Key Management Service 키를 사용하여 암호화됩니다. 자세한 내용은 AWS Secrets Manager 사용 설명서를 참조하십시오.

일반 권한 부여의 경우 고객은 Secrets Manager에 권한 부여 자격 증명을 저장하고 C2C 커넥터에 이러한 보안 암호에 액세스할 수 있는 권한을 부여합니다. 관리형 통합은 커넥터를 호출할 때 요청 헤더에 Secrets Manager ARN 및 버전 ID를 제공합니다. 커넥터는 보안 암호 값을 검색하고 이를 사용하여 타사 플랫폼으로 권한을 부여합니다.

이 접근 방식을 사용하면 관리형 통합이 장기 자격 증명을 직접 처리하지 않습니다. 커넥터는 자격 증명 관리 및 토큰 생성을 완벽하게 제어하여 타사 플랫폼에서 지원하는 모든 권한 부여 메커니즘으로 솔루션을 확장할 수 있습니다.

중요

관리형 통합은 고객의에 저장된 자격 증명에 액세스하거나 관리하지 않습니다 AWS Secrets Manager. 커넥터는 자격 증명 검색, 구문 분석 및 사용을 완벽하게 제어할 수 있습니다.

중요

민감한 자격 증명이나 토큰을 로그에 기록하지 않는 것이 좋습니다. 그러나 로그에 저장되는 경우 CloudWatch Logs 데이터 보호 정책을 사용하여 로그의 토큰을 마스킹하는 것이 좋습니다. 자세한 내용은 Help protect sensitive log data with masking을 참조하세요.

일반 권한 부여 요청 형식

Managed Integrations가 일반 승인 계정 연결을 위해 커넥터를 호출하면 요청 헤더에 OAuth 토큰 대신 AWS Secrets Manager 참조가 포함됩니다. 요청 구조는 모든 커넥터 작업(AWS.ActivateUser, AWS.DiscoverDevices, AWS.SendCommand및 AWS.DeactivateUser)에서 일관됩니다.

예예: 일반 권한 부여 요청
{ "header": { "auth": { "secretsManager": { "arn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-api-key-AbCdEf", "versionId": "a1b2c3d4-5678-90ab-cdef-1234567890ab" }, "type": "GeneralAuthorization" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", ... } }
예예: OAuth 2.0 요청(비교용)
{ "header": { "auth": { "token": "ashriu32yr97feqy7afsaf", "type": "OAuth2.0" } }, "payload": { "operationName": "AWS.DiscoverDevices", "operationVersion": "1.0", "connectorId": "Your-Connector-Id", ... } }
참고

커넥터는 두 요청 형식을 모두 처리해야 합니다. auth.type 필드를 확인하여 각 요청에 사용할 권한 부여 방법을 결정합니다.

일반 권한 부여 워크플로

커넥터가 일반 승인 요청을 받으면 다음 워크플로를 따릅니다.

  • 권한 부여 유형 확인 - 요청 헤더의 auth.type 필드를 확인하여 요청이 일반 권한을 사용하는지 확인합니다.

  • Secrets Manager 참조 추출 - auth.secretsManager 객체에서 AWS Secrets Manager ARN 및 버전 ID 추출

  • 보안 암호 검색 - 제공된 ARN 및 버전 ID를 사용하여 API를 호출합니다 AWS Secrets Manager GetSecretValue.

  • 자격 증명 구문 분석 - 보안 암호 값을 구문 분석하여 권한 부여 자격 증명을 추출합니다(형식은 타사 플랫폼의 요구 사항에 따라 다름).

  • 토큰 생성(필요한 경우) - 필요한 경우 자격 증명을 사용하여 액세스 토큰을 생성하거나 타사 플랫폼에 필요한 추가 권한 부여 단계를 수행합니다.

  • API 호출 권한 부여 - 자격 증명 또는 생성된 토큰을 사용하여 타사 플랫폼에 대한 API 호출 권한 부여

  • 프로세스 작업 - 승인된 연결을 사용하여 커넥터 작업(AWS.DiscoverDevicesAWS.SendCommand, 등)을 처리합니다.

참고

커넥터는 토큰 생성, 새로 고침, 오류 처리를 포함한 모든 자격 증명 관리를 담당합니다. 관리형 통합은 보안 암호에 대한 참조만 제공하며 자격 증명 자체는 관리하지 않습니다.

GeneralAuthorization에 대한 Lambda 권한

커넥터 Lambda 실행 역할에는 고객의에서 보안 암호를 검색할 수 있는 권한이 있어야 합니다 AWS Secrets Manager. Lambda 실행 역할 정책에 다음 권한을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.*.amazonaws.com" } } } ] }

권한 설명

  • secretsmanager:GetSecretValue - Lambda가 보안 암호 값을 검색하도록 허용

  • kms:Decrypt - 보안 암호는 AWS Key Management Service 키를 사용하여 암호화되므로 필요합니다.

참고

예제 정책은 모든 보안 암호에 대한 액세스를 허용합니다. 프로덕션 환경에서는 커넥터에 필요한 보안 암호로만 Resource 필드를 제한해야 합니다. 그러나 고객이 자체 보안 암호를 생성하므로 와일드카드를 사용하거나 고객이 따라야 하는 이름 지정 규칙을 문서화해야 할 수 있습니다.

또한 고객은 Lambda에 보안 암호의 리소스 정책을 통해 특정 보안 암호에 액세스할 수 있는 권한을 부여합니다.