

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

# AWS SAM 커넥터를 사용하여 리소스 권한 관리
<a name="managing-permissions-connectors"></a>

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

## AWS SAM 커넥터의 이점
<a name="connector-benefits"></a>

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

## AWS SAM 커넥터 사용
<a name="what-are-connectors"></a>

`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>}}
  ...
```

## 커넥터 작동 방식
<a name="connectors-work"></a>

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

먼저, 탑재된 `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 템플릿에서 커넥터를 정의할 수도 있습니다. 소스 리소스가 커넥터와 별도의 템플릿에 정의된 경우 이 방법을 사용하는 것이 좋습니다.

그런 다음 이 연결에 필요한 액세스 정책이 자동으로 구성됩니다. 커넥터에서 생성된 리소스에 대한 자세한 내용은 [CloudFormation 지정할 때 생성된 리소스 AWS::Serverless::Connector](sam-specification-generated-resources-connector.md)을 잠조하세요.

## 커넥터의 예
<a name="what-are-connectors-example"></a>

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

![Lambda 함수는 AWS SAM 커넥터를 사용하여 DynamoDB 테이블에 데이터를 씁니다.](http://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/images/managing-connectors-example.png)


```
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 템플릿을에 배포하면 CloudFormation AWS SAM 는이 연결이 작동하는 데 필요한 액세스 정책을 자동으로 작성합니다.

## 소스 및 대상 리소스 간 지원되는 연결
<a name="supported-connector-resources"></a>

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

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

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

지원되는 리소스 연결 및 속성 요구 사항 목록은 [커넥터에 지원되는 소스 및 대상 리소스 유형](reference-sam-connector.md#supported-connector-resource-types)을 잠조하세요.

## 자세히 알아보기
<a name="connector-learn-more"></a>

 AWS SAM 커넥터 사용에 대한 자세한 내용은 다음 주제를 참조하세요.
+ [AWS::Serverless::Connector](sam-resource-connector.md)
+ [에서 읽기 및 쓰기 권한 정의 AWS SAM](connector-usage-define.md)
+ [에서 지원되는 다른 속성을 사용하여 리소스 정의 AWS SAM](connector-usage-other-properties.md)
+ [의 단일 소스에서 여러 커넥터 생성 AWS SAM](connector-usage-single-source.md)
+ [에서 다중 대상 커넥터 생성 AWS SAM](connector-usage-multi-destination.md)
+ [에서 읽기 및 쓰기 권한 정의 AWS SAM](connector-usage-define.md)
+ [의 커넥터를 사용하여 리소스 속성 정의 AWS SAM](connector-usage-resource-attributes.md)

## 피드백 제공
<a name="connector-feedback"></a>

커넥터에 대한 피드백을 제공하려면 *serverless-application-model AWS GitHub리포지토리*에서 [새 문제를 제출합니다](https://github.com/aws/serverless-application-model/issues/new?assignees=&labels=area%2Fconnectors,stage%2Fneeds-triage&template=other.md&title=%28Feature%20Request%29).