AWS SAM 커넥터를 사용한 리소스 권한 관리 - AWS Serverless Application Model

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

AWS SAM 커넥터를 사용한 리소스 권한 관리

커넥터는 AWS Serverless Application Model (AWS SAM) 로 식별되는 추상 리소스 유형으로AWS::Serverless::Connector, 서버리스 애플리케이션 리소스 간에 간단하고 범위가 적절한 권한을 제공합니다.

커넥터의 이점 AWS SAM

커넥터는 리소스 간에 적절한 액세스 정책을 자동으로 구성하므로 AWS 인증 기능, 정책 언어 및 서비스별 보안 설정에 대한 전문 지식이 없어도 서버리스 애플리케이션을 작성하고 애플리케이션 아키텍처에 집중할 수 있습니다. 따라서 커넥터는 서버리스 개발을 처음 접하는 개발자나 개발 속도를 높이려는 노련한 개발자에게 큰 도움이 됩니다.

AWS SAM 커넥터 사용

Connectors 리소스 속성을 소스 리소스에 임베드하여 확인합니다. 그런 다음 대상 리소스를 정의하고 이러한 리소스 간에 데이터 또는 이벤트가 어떻게 이동해야 하는지 설명하세요. AWS SAM 그런 다음 필요한 상호 작용을 촉진하는 데 필요한 액세스 정책을 작성합니다.

다음은 이 리소스 속성의 작성 방법을 요약한 것입니다.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: <source-resource-logical-id>: Type: <resource-type> ... Connectors: <connector-name>: Properties: Destination: <properties-that-identify-destination-resource> Permissions: <permission-types-to-provision> ...

커넥터 작동 방식

참고

이 섹션에서는 커넥터가 보이지 않는 곳에서 필요한 리소스를 제공하는 방법을 설명합니다. 이는 커넥터를 사용할 때 자동으로 발생합니다.

먼저, 탑재된 Connectors 리소스 속성이 AWS::Serverless::Connector리소스 유형으로 변환됩니다. 논리 ID는 다음과 같이 자동으로 생성됩니다.<source-resource-logical-id><embedded-connector-logical-id>.

예를 들어 탑재된 커넥터는 다음과 같습니다.

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Lambda::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Read - Write MyTable: Type: AWS::DynamoDB::Table

그러면 다음과 같은 AWS::Serverless::Connector 리소스가 생성됩니다.

Transform: AWS::Serverless-2016-10-31 Resources: ... MyFunctionMyConn: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write
참고

이 구문을 사용하여 AWS SAM 템플릿에서 커넥터를 정의할 수도 있습니다. 소스 리소스가 커넥터와 별도의 템플릿에 정의된 경우 이 방법을 사용하는 것이 좋습니다.

그런 다음 이 연결에 필요한 액세스 정책이 자동으로 구성됩니다. 커넥터에서 생성된 리소스에 대한 자세한 내용은 AWS CloudFormation을 지정한 경우 생성되는 AWS::Serverless::Connector 리소스 을 잠조하세요.

커넥터의 예

다음 예제는 커넥터를 사용하여 AWS Lambda 함수의 데이터를 Amazon DynamoDB 테이블에 쓰는 방법을 보여줍니다.

커넥터를 사용하여 DynamoDB 테이블에 데이터를 쓰는 Lambda 함수입니다. AWS SAM
Transform: AWS::Serverless-2016-10-31 Resources: MyTable: Type: AWS::Serverless::SimpleTable MyFunction: Type: AWS::Serverless::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Write Properties: Runtime: nodejs16.x Handler: index.handler InlineCode: | const AWS = require("aws-sdk"); const docClient = new AWS.DynamoDB.DocumentClient(); exports.handler = async (event, context) => { await docClient.put({ TableName: process.env.TABLE_NAME, Item: { id: context.awsRequestId, event: JSON.stringify(event) } }).promise(); } Environment: Variables: TABLE_NAME: !Ref MyTable

Connectors 리소스 속성은 Lambda 함수 소스 리소스 내에 내장되어 있습니다. DynamoDB 테이블은 Id속성을 사용하는 대상 리소스로 정의됩니다. 커넥터는 이 두 리소스 간의 Write 권한을 프로비저닝합니다.

AWS SAM 템플릿을 에 배포하면 AWS SAM 이 AWS CloudFormation연결이 작동하는 데 필요한 액세스 정책이 자동으로 작성됩니다.

소스 및 대상 리소스 간 지원되는 연결

커넥터는 선별된 소스의 조합과 대상 리소스 연결 간 ReadWrite데이터 및 이벤트 권한 유형을 지원합니다. 예를 들어 커넥터는 Write 소스 리소스와 AWS::ApiGateway::RestApi 대상 리소스 간의 AWS::Lambda::Function 연결을 지원합니다.

지원되는 속성의 조합을 사용하여 소스 및 대상 리소스를 정의할 수 있습니다. 속성 요구 사항은 생성하는 연결 방식과 리소스가 정의된 위치에 따라 달라집니다.

참고

커넥터는 지원되는 서버리스 리소스 유형과 비서버리스 리소스 유형 간에 권한을 제공할 수 있습니다.

지원되는 리소스 연결 및 속성 요구 사항 목록은 커넥터에 지원되는 소스 및 대상 리소스 유형을 잠조하세요.

자세히 알아보기

AWS SAM 커넥터 사용에 대한 자세한 내용은 다음 항목을 참조하십시오.

피드백 제공

커넥터에 대한 피드백을 제공하려면 serverless-application-model AWS GitHub리포지토리에서 새 문제를 제출하십시오.