

# 게이트웨이 대상에 액세스할 권한 부여 유형 및 자격 증명을 지정합니다.
<a name="gateway-building-adding-targets-authorization"></a>

[CreateGatewayTarget](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateGatewayTarget.html) 요청 본문에서 `credentialProviderConfigurations` 배열에 자격 증명 공급자 구성을 지정합니다. 구성은 설정한 아웃바운드 권한 부여 유형에 따라 다릅니다. 자격 증명 공급자 구성의 API 구조에 대한 참조 정보는 [CredentialProviderConfiguration](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CredentialProviderConfiguration.html)을 참조하세요. 아웃바운드 권한 부여에 대한 자세한 내용은 [게이트웨이에 대한 아웃바운드 권한 부여 설정을 참조하세요](gateway-outbound-auth.md).

자격 증명 공급자 구성에 대해 자세히 알아보려면 주제를 선택합니다.

**Topics**
+ [AgentCore Gateway 서비스 역할(IAM) 권한 부여](#gateway-building-adding-targets-authorization-service-role)
+ [OAuth 권한 부여](#gateway-building-adding-targets-authorization-oauth)
+ [API 키 권한 부여](#gateway-building-adding-targets-authorization-api-key)
+ [호출자 IAM 자격 증명 권한 부여](#gateway-building-adding-targets-authorization-caller-iam)
+ [JWT 패스스루 권한 부여](#gateway-building-adding-targets-authorization-jwt-passthrough)

## AgentCore Gateway 서비스 역할(IAM) 권한 부여
<a name="gateway-building-adding-targets-authorization-service-role"></a>

대상에 대한 AgentCore Gateway 서비스 역할을 통해 IAM 권한 부여를 사용하는 경우를 `GATEWAY_IAM_ROLE` `credentialProviderType`로 지정합니다. 구성은 대상 유형에 따라 다릅니다.

 **Lambda, API Gateway, Smithy 및 Connector 대상의 경우** 

대상 서비스 이름이 AgentCore Gateway 서비스에 이미 알려져 있으므로 `iamCredentialProvider` 구성이 필요하지 않습니다. 다음 예제와 같이 `credentialProviderType` 구성만 사용합니다.

```
{
    "credentialProviderType": "GATEWAY_IAM_ROLE"
}
```

 **MCP 서버 및 OpenAPI 대상의 경우** 

MCP 서버 및 OpenAPI 대상의 경우 서명 버전 `iamCredentialProvider` 4(Sig V4) 서명에 사용되는 서비스 이름도에 제공해야 합니다. [AWS V4](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) `service` 필드는 필수 사항입니다. `region` 필드는 선택 사항이며 기본적으로 게이트웨이의 리전으로 설정됩니다.

```
{
    "credentialProviderType": "GATEWAY_IAM_ROLE",
    "credentialProvider": {
        "iamCredentialProvider": {
            "service": "execute-api",
            "region": "us-west-2"
        }
    }
}
```

다음 표에서는 `iamCredentialProvider` 객체의 필드를 설명합니다.


| Field | 필수 | 설명 | 
| --- | --- | --- | 
|  `service`  | 예 | SigV4 서명에 사용되는 AWS 서비스 이름입니다. 이 값은 SigV4 서명을 확인할 때 대상이 예상하는 서비스 이름과 일치해야 합니다. 다음은 일반적인 값입니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/bedrock-agentcore/latest/devguide/gateway-building-adding-targets-authorization.html) | 
|  `region`  | 아니요 | SigV4 서명을 위한 AWS 리전입니다. 생략하면 기본적으로 게이트웨이의 리전으로 설정됩니다. | 

## OAuth 권한 부여
<a name="gateway-building-adding-targets-authorization-oauth"></a>

OAuth 권한 부여를 사용하는 경우를 `OAUTH` `credentialProviderType`로 지정합니다. `credentialProvider` 필드가 매핑되는 객체에서 `oauthCredentialProvider` 필드 이름을 [OAuthCredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_OAuthCredentialProvider.html) 객체에 매핑하고 아웃바운드 권한 부여 설정에 따라 값을 제공합니다.

[OAuthCredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_OAuthCredentialProvider.html)의 구조는 설정한 인증 패턴 유형에 따라 다릅니다. 다양한 인증 패턴에 대한 자세한 내용은 [지원되는 인증 패턴을 참조하세요](common-use-cases.md).
+ 클라이언트 자격 증명 권한 부여 또는 2-레그 OAuth(2LO)라고도 하는 machine-to-machine 인증을 설정하는 경우 **클라이언트 자격 증명** 탭의 구조를 따릅니다.
+ 권한 부여 코드 권한 부여 또는 3-레그 OAuth(3LO)라고도 하는 사용자 위임 액세스를 설정하는 경우 **권한 부여 코드** 탭의 구조를 따릅니다.
+ 인증된 사용자의 자격 증명을 다운스트림 서비스에 전파하거나 액터 컨텍스트를 사용하여 액세스 토큰을 얻도록 on-behalf-of 대리 토큰 교환을 설정한 경우 **토큰 교환(On-behalf-of)** 탭의 구조를 따릅니다.

다음 방법 중 하나를 선택합니다.

**Example**  

1. 다음 예제와 같이 `CLIENT_CREDENTIALS`를 `grantType`로 지정합니다.

   ```
   {
       "credentialProviderType": "OAUTH",
       "credentialProvider": {
           "oauthCredentialProvider": {
               "providerArn": "string",
               "grantType": "CLIENT_CREDENTIALS",
               "scopes": [
                   "string",
                   ...
               ],
               "customParameters": {
                   "string": "string"
               }
           }
       }
   }
   ```

1. 다음 예제와 같이 권한 부여 코드를 얻은 후 최종 사용자의 브라우저를 리디렉션할 URL을 `defaultReturnUrl` 필드에 `grantType` 로 지정`AUTHORIZATION_CODE`하고 포함합니다.

   ```
   {
       "credentialProviderType": "OAUTH",
       "credentialProvider": {
           "oauthCredentialProvider": {
               "providerArn": "string",
               "grantType": "AUTHORIZATION_CODE",
               "defaultReturnUrl": "string",
               "scopes": [
                   "string",
                   ...
               ],
               "customParameters": {
                   "string": "string"
               }
           }
       }
   }
   ```

   3LO 인증에 대한 자세한 내용은 [OAuth 2.0 권한 부여 URL 세션 바](oauth2-authorization-url-session-binding.md)인딩을 참조하세요.

1. `grantType`을 `TOKEN_EXCHANGE`으로 지정합니다. 게이트웨이는 자격 증명 공급자를 통해 인바운드 사용자의 액세스 토큰을 대상 범위의 토큰으로 교환합니다. 에 모든 IdP 관련 파라미터를 포함합니다`customParameters`. 자격 증명 공급자 구성에 대한 자세한 내용은 [토큰 교환On-behalf-of ](on-behalf-of-token-exchange.md)참조하십시오.

   ```
   {
       "credentialProviderType": "OAUTH",
       "credentialProvider": {
           "oauthCredentialProvider": {
               "providerArn": "string",
               "grantType": "TOKEN_EXCHANGE",
               "scopes": [
                   "string",
                   ...
               ],
               "customParameters": {
                   "subject_token_type": "urn:ietf:params:oauth:token-type:access_token"
               }
           }
       }
   }
   ```
**참고**  
`customParameters` 필드는 ID 제공업체의 토큰 엔드포인트에 직접 값을 전달합니다. 필수 파라미터는 공급자마다 다릅니다. 예를 들어 Okta에는 외에도 `audience` 파라미터가 필요합니다`subject_token_type`. 자세한 내용은 ID 제공업체의 설명서 및 [토큰 교환On-behalf-of](on-behalf-of-token-exchange.md)하세요.

## API 키 권한 부여
<a name="gateway-building-adding-targets-authorization-api-key"></a>

API 키 권한 부여를 설정하는 경우를 `API_KEY` `credentialProviderType`로 지정합니다. `credentialProvider` 필드가 매핑되는 객체에서 `apiKeyCredentialProvider` 필드 이름을 [ApiKeyCredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ApiKeyCredentialProvider.html) 객체에 매핑하고 아웃바운드 권한 부여 설정에 따라 값을 제공합니다. 다음 JSON은 구조를 보여줍니다.

```
{
    "credentialProviderType": "API_KEY",
    "credentialProvider": {
        "apiKeyCredentialProvider": {
            "providerArn": "string",
            "credentialLocation": "HEADER" | "QUERY_PARAMETER",
            "credentialParameterName": "string",
            "credentialPrefix": "string"
        }
    }
}
```

## 호출자 IAM 자격 증명 권한 부여
<a name="gateway-building-adding-targets-authorization-caller-iam"></a>

게이트웨이가 호출자의 IAM 자격 증명 및 권한을 사용하여 다운스트림 대상에 대한 요청에 서명하도록 하려면를 `credentialProviderType`로 지정합니다`CALLER_IAM_CREDENTIALS`. 이 권한 부여 유형을 사용하면 게이트웨이는 SigV4를 사용하여 게이트웨이 호출자를 대신하여 다운스트림 대상에 요청합니다. 이렇게 하면 다운스트림 대상이 원래 게이트웨이를 호출한 사용자를 기반으로 IAM 정책을 적용할 수 있습니다.

**참고**  
 `CALLER_IAM_CREDENTIALS`는 권한 부여자 유형`AUTHENTICATE_ONLY`으로 `AWS_IAM` 또는가 있는 게이트웨이에만 사용할 수 있습니다.

```
{
    "credentialProviderType": "CALLER_IAM_CREDENTIALS"
}
```

## JWT 패스스루 권한 부여
<a name="gateway-building-adding-targets-authorization-jwt-passthrough"></a>

게이트웨이가 수신 요청의 보유자 토큰을 수정하지 않고 다운스트림 대상으로 직접 전달하도록 하려면를 `credentialProviderType`로 지정합니다`JWT_PASSTHROUGH`. 게이트웨이는 인바운드 토큰을 검증한 다음 아웃바운드 요청의 대상으로 전달합니다. 이는 대상 서비스가 원래 호출자의 토큰을 사용하여 자체 인증을 처리할 때 유용합니다.

**참고**  
 `JWT_PASSTHROUGH`는 HTTP 대상(패스스루 및 AgentCore 런타임)에만 사용할 수 있습니다.

```
{
    "credentialProviderType": "JWT_PASSTHROUGH"
}
```