

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

# 부록 A: 미리 서명된 URLs AWS 서비스 사용 방법
<a name="appendix-a"></a>

이 부록에서는 미리 서명된 URL을 사용하는 AWS 서비스 및 기능에 대한 정보를 제공합니다. URLs 이 정보는 다음 두 가지 목적으로 사용됩니다.
+ 제어를 구현하는 보안 엔지니어에게 해당 제어의 가능한 영향에 대한 정보를 제공합니다.
+ 이 위험이 URL 로깅 상호 작용과 관련이 있을 수 있는 상황에 대한 인식을 높입니다.

**중요**  
이 부록에서는 AWS 서비스 또는 미리 서명된 URLs 사용에 대한 전체 목록을 제공하지 않습니다. 또한 사용자 지정 또는 타사 솔루션도 다루지 않습니다.

## Amazon S3 콘솔
<a name="s3-console"></a>

**보안 주체:** 콘솔 사용자

**기본 만료:** 5분

**면책 조항**  
 이 섹션에서는 Amazon S3 콘솔의 현재 동작을 설명합니다. AWS 콘솔 동작은 예고 없이 변경될 수 있습니다.

Amazon S3 콘솔은 객체 다운로드 및 업로드를 지원합니다. 다운로드는 만료 시간이 300초(5분)인 미리 서명된 URL을 사용합니다.   URL은에 대한 요청에 의해 생성됩니다`https://<bucket-region>.console.aws.amazon.com/s3/batchOpsServlet-proxy`.

이 요청은 사용자가 다운로드 버튼을 클릭할 때 시작되므로 다운로드에 대한 명시적 요청이 발생할 때까지 URL이 미리 생성되거나 클라이언트로 전송되지 않습니다.

업로드는 콘솔이 2개의 요청을 전송한다는 점을 제외하면 비슷합니다. 하나는 사전 CORS 검사`OPTIONS`이고 다른 하나는 입니다`PUT`. 두 요청 모두 동일한 서명을 사용합니다.

서명에 사용되는 자격 증명은 현재 로그인한 사용자와 연결된 임시 자격 증명입니다. 이러한 임시 자격 증명을 얻는 방법에 대한 세부 정보는이 가이드의 범위를 벗어납니다.

## Amazon S3 Object Lambda
<a name="s3-object-lambda"></a>

**보안 주체:** 액세스 포인트 호출자

**기본 만료:** 61초

**참고**  
2025년 11월 7일부터 S3 객체 Lambda는 현재 서비스를 사용하고 있는 기존 고객과 선택 AWS Partner Network (APN) 파트너만 사용할 수 있습니다. S3 객체 Lambda와 유사한 기능의 경우 [Amazon S3 객체 Lambda 가용성 변경에서 자세히 알아보세요.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html)

[Amazon S3 객체 Lambda](https://aws.amazon.com/s3/features/object-lambda/)는 AWS Lambda 함수를 사용하여 Amazon S3에서 검색되는 데이터를 자동으로 처리하고 변환합니다. S3 객체 Lambda가 함수를 호출하면 함수에는 지원 액세스 포인트에서 원본 객체를 다운로드하는 데 사용할 수 있는 미리 서명된 URL(`inputS3Url`)이 제공됩니다.

이러한 미리 서명된 URLs은 [ S3 객체 Lambda를 구성할 때 제공되는 지원 Amazon S3 액세스 포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-security.html#olap-access-points-security)에 대해 서명됩니다. S3 (이는 객체 Lambda 액세스 포인트와 동일하지 않습니다.) Lambda 함수에 바인딩된 역할을 사용하는 대신 원래 호출자의 자격 증명을 사용하여 URL에 서명되며 URL을 사용할 때 해당 사용자의 권한이 적용됩니다. URL에 서명된 헤더가 있는 경우 Lambda 함수는 Amazon S3에 대한 호출에 이러한 헤더를 포함해야 합니다.

반환되는 미리 서명된 URL의 만료 시간은 61초입니다(S3 객체 Lambda 함수의 최대 기간보다 1초 더 김). 생성된 URL은 지원 액세스 포인트에서만 사용할 수 있습니다. S3 객체 Lambda 액세스 포인트의 호출자는이 액세스 포인트에 액세스할 수 있어야 합니다. 조건을 사용하여 S3 객체 Lambda의 컨텍스트에 대한 액세스를 제한할 수 있습니다`"aws:CalledVia": ["s3-object-lambda.amazonaws.com"]`. 해당 조건이 지원 액세스 포인트 또는 버킷에 연결되면 사용자는 지원 액세스 포인트 또는 버킷에 직접 액세스할 수 없습니다.

이 접근 방식의 가치는 Lambda 함수에 S3 버킷 또는 액세스 포인트에 대한 액세스 권한을 부여할 필요가 없다는 것입니다. Lambda 함수와 연결된 역할에는 **WriteGetObjectResponse**에 대한 권한이 필요하지만 **GetObject**에 대한 권한은 필요하지 않습니다.

S3 객체 Lambda는 미리 서명된 URLs 생성할 때 네트워크 제한을 추가하지 않으므로 Lambda 함수 외부에서 URL을 사용할 수 있습니다. 그러나 S3 객체 Lambda의 호출자에게 적용되는 모든 제한은 여전히 적용됩니다. 예를 들어 Lambda 함수가 VPC에서 실행되고 호출자가 VPC 엔드포인트를 사용하도록 제한하는 경우 미리 서명된 URL을 소유한 사람은 누구나 해당 VPC 엔드포인트를 통해 전송할 수 있어야 합니다.이 제한은 **SourceIp** 및 **VpcSourceIp**에도 적용됩니다. 

**참고**  
VPC에서 S3 객체 Lambda 함수를 사용하려면 VPC에 **WriteGetObjectResponse**를 호출하는 퍼블릭 S3 엔드포인트에 대한 경로가 있어야 합니다. 이는 VPC 엔드포인트를 사용하기 위한 요구 사항이 버킷에서 데이터를 검색하기 위한 요청에 적용되지 않음을 의미하지 않습니다.

## AWS Lambda 리전 간 CopyObject
<a name="lambda-cross-region-copy-object"></a>

**보안 주체: **AWS 내부

**기본 만료: **3600초

[CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 또는 [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) API를 사용하여 복사하는 경우 AWS 리전 Amazon S3는 내부적으로 미리 서명된 URLs 사용합니다. 이러한 APIs SDKs 또는 `aws s3api copy-object` 및 AWS CLI 명령에서 직접 호출할 수 있습니다`aws s3api upload-part`. 이러한 APIs는 Amazon S3 복제에 사용되지 않지만 소스 및 대상이 S3 버킷인 경우 및 `aws s3 sync` 명령에서 사용됩니다 AWS CLI `aws s3 cp`. 또한 variousSDK의 `TransferManager` 구현에서도 지원됩니다. AWS SDKs

## AWS Lambda GetFunction
<a name="lambda-get-function"></a>

**보안 주체:** AWS 내부

**기본 만료:** 10분

AWS Lambda 는 Lambda 팀이 소유한 S3 버킷에 사용자 버전을 저장합니다. Lambda 컨테이너에 배포된 자산을 생성하기 전에  [GetFunction](https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunction.html) API를 호출합니다.이 API는 로 응답합니다. `Code.Location` - 10분 동안 유효한 미리 서명된 URL을 포함합니다(이 만료 시간은 게시된 계약이 아닌 현재 동작임). 코드를 원하지 않는 경우 [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConfiguration.html)의 조합을 사용할 수 있습니다. [GetFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConcurrency.html), 및 [ListTags](https://docs.aws.amazon.com/lambda/latest/dg/API_ListTags.html)를 사용하여에서 반환되는 다른 데이터를 검색합니다`GetFunction`.

반환된 URL은 현재 로그인한 사용자의 자격 증명으로 서명되지 않고 Lambda에서 사용자를 대신하여 서명됩니다. 따라서 현재 로그인한 사용자 또는 사용자의 임시 세션 자격 증명에 적용되는 조건 키(예: `aws:SourceIP`)는 생성된 URL에 적용되지 않습니다. 조건 키가 **GetFunction**에만 적용되거나 사용자 또는 세션의 모든 AWS API 사용량에 적용되는 경우에도 마찬가지입니다.

또한 Lambda 콘솔은 **GetFunction**과 반환되는 미리 서명된 URL을 사용합니다. 콘솔은 현재 로그인한 사용자와 연결된 임시 자격 증명을 사용하여 **GetFunction**을 호출합니다. 이러한 임시 자격 증명을 얻는 방법에 대한 세부 정보는이 문서의 범위를 벗어납니다.

## Amazon ECR
<a name="ecr"></a>

**보안 주체:** AWS 내부

**기본 만료:** 1시간

Amazon Elastic Container Registry(Amazon ECR)는 1시간 동안 유효한 미리 서명된 URL을 반환하고 Amazon ECR 이미지에서 단일 계층 다운로드를 지원하는 [GetDownloadUrlForLayer](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetDownloadUrlForLayer.html) API를 제공합니다. 그러나이 작업은 Amazon ECR 프록시에서 사용되며 일반적으로 사용자가 이미지를 가져오고 푸시하는 데 사용되지 않습니다.

## Amazon Redshift Spectrum
<a name="spectrum"></a>

**보안 주체: **를 통해 [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html)에 전달된 역할 `IAM_ROLE`

**기본 만료: **1시간

Amazon Redshift Spectrum은 내부적으로 미리 서명된 URLs 사용하며 [미리 서명된 URLs을 제한하는 버킷과 Amazon Redshift 역할의 조합에 대한 제한을 금지합니다](https://docs.aws.amazon.com/redshift/latest/mgmt/spectrum-enhanced-vpc.html#spectrum-enhanced-vpc-considerations-policies). 16분의 `s3:signatureAge` 값을 사용할 수 있지만 매우 낮은 값은 신뢰할 수 없습니다. 사용할 수 있는 최소값은 쿼리의 타이밍과 크기에 따라 다릅니다. 16분 미만의 값은 많은 시나리오에서 작동하지만 테스트가 필요합니다. 역할은 Redshift Spectrum에서만 사용하도록 제한할 수 있으며 제한해야 합니다. 그러면 생성되는 URLs이 공개되지 않으므로 만료 값이 낮은 일반적인 정당화가 완화됩니다.

## Amazon SageMaker AI Studio
<a name="sagemaker-studio"></a>

Amazon SageMaker AI Studio는 [CreatePresignedDomainUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedDomainUrl.html)과 [CreatePresignedNotebookInstanceUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html)이라는 두 가지 API 작업을 지원합니다. 그러나 이러한 APIs는 서명 버전 4 미리 서명된 URL 기능과 관련이 없습니다. 이러한 APIs는 `authToken` 파라미터를 사용하는 URL을 생성하지만 표준 서명 버전 4 쿼리 파라미터는 지원하지 않습니다.

`authToken`는 다른 메커니즘이지만 미리 서명된 URLs. 쿼리 문자열 파라미터로 전송되며 5분의 만료 시간을 지원합니다.

SageMaker AI는 네트워크 제한을 지원합니다. `sagemaker:CreatePresignedDomainUrl` 작업에 제한을 두면 해당 작업은 [CreatePresignedDomainUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedDomainUrl.html) 호출과 생성된 URL 사용에 모두 적용됩니다. 유효한 네트워크에서 URL을 생성한 다음 유효하지 않은 네트워크에서 전송하는 경우 URL을 생성하기 위한 API 호출은 성공하지만 URL을 보내는 요청은 실패합니다. [CreatePresignedNotebookInstanceUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) 및 `sagemaker:CreatePresignedNotebookInstanceUrl` 작업도 마찬가지입니다.

자세한 내용은 [SageMaker AI 설명서를](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-access-ws.html) 참조하세요.