S3 버킷을 정적 웹 사이트 호스팅용으로 구성하려면? - Amazon Simple Storage Service

S3 버킷을 정적 웹 사이트 호스팅용으로 구성하려면?

Amazon S3에 정적 웹 사이트를 호스팅할 수 있습니다. 정적 웹 사이트에서 개별 웹 페이지는 정적 콘텐츠를 포함합니다. 정적 웹 사이트에는 클라이언트 측 스크립트가 포함될 수도 있습니다. 이와는 대조적으로, 동적 웹 사이트는 PHP, JSP 또는 ASP.NET 등 서버 측 스크립트를 포함한 서버 측 처리에 의존합니다. Amazon S3에서는 서버 측 암호화가 지원되지 않습니다.

다음과 같은 빠른 절차를 사용하여 Amazon S3 콘솔에서 정적 웹 사이트 호스팅을 위한 S3 버킷을 구성할 수 있습니다. 자세한 내용과 자세한 연습은 Amazon Simple Storage Service 개발자 가이드에서 Amazon S3의 정적 웹 사이트 호스팅을 참조하십시오.

1단계: 정적 웹 사이트 호스팅용 Amazon S3 버킷 구성

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷 이름 목록에서 정적 웹 사이트 호스팅을 활성화하려는 버킷의 이름을 선택합니다.

  3. [Properties]를 선택합니다.

  4. [Static website hosting]을 선택합니다.

  5. 이 버킷을 사용하여 웹 사이트를 호스팅합니다.를 선택합니다.

  6. 인덱스 문서에 인덱스 문서 이름을 입력합니다(일반적으로 index.html).

    웹 사이트 호스팅용 버킷을 구성하는 경우 인덱스 문서를 지정해야 합니다. 루트 도메인이나 임의의 하위 폴더로 요청이 전송되면 Amazon S3가 이 인덱스 문서를 반환합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드인덱스 문서 지원 구성을 참조하십시오.

  7. (선택 사항) 4XX 클래스 오류에 대한 사용자 지정 오류 문서를 제공하려면 오류 문서에서 사용자 지정 오류 문서 파일 이름을 입력합니다.

    사용자 지정 오류 문서를 지정하지 않았는데 오류가 발생하면 Amazon S3에서 기본 HTML 오류 문서를 반환합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드사용자 지정 오류 문서 지원 단원을 참조하십시오.

  8. (선택 사항) 고급 리디렉션 규칙을 지정하려면 Edit redirection rules(리디렉션 규칙 편집) 상자에서 규칙을 설명하는 XML을 입력하십시오.

    예를 들어, 요청의 특정 객체 키 이름 또는 접두사에 따라 조건부로 요청을 라우팅할 수 있습니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드고급 조건부 리디렉션을 참조하십시오.

  9. 저장을 선택합니다.

  10. 버킷에 인덱스 문서를 업로드합니다.

    S3 버킷에 객체를 업로드하는 방법에 대한 단계별 지침은 선택하여 클릭하기로 파일 업로드 단원을 참조하십시오.

  11. 선택적 사용자 지정 오류 문서를 포함하여 웹 사이트에 대한 다른 파일을 업로드합니다.

다음 단원에서는 정적 웹 사이트로 버킷에 액세스하는 데 필요한 권한을 설정합니다.

2단계: 퍼블릭 액세스 차단 설정 편집

기본적으로 Amazon S3은 계정 및 버킷에 대한 퍼블릭 액세스를 차단합니다. 버킷을 사용하여 정적 웹 사이트를 호스팅하려는 경우 이러한 단계를 사용하여 퍼블릭 액세스 차단 설정을 편집할 수 있습니다.

주의

이 단계를 완료하기 전에 Amazon S3 퍼블릭 액세스 차단 사용을 검토하여 퍼블릭 액세스 허용과 관련된 위험을 이해하고 이에 동의하는지 확인하십시오. 퍼블릭 액세스 차단 설정을 해제하여 버킷을 퍼블릭으로 만들면 인터넷상의 모든 사용자가 버킷에 액세스할 수 있습니다. 버킷에 대한 모든 퍼블릭 액세스를 차단하는 것이 좋습니다.

  1. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 정적 웹 사이트로 구성한 버킷의 이름을 선택합니다.

  3. Permissions를 선택합니다.

  4. [Edit]를 선택합니다.

  5. Block all public access(모든 퍼블릭 액세스 차단)를 선택 취소하고 저장을 선택합니다.

    주의

    이 단계를 완료하기 전에 Amazon S3 퍼블릭 액세스 차단 사용을 검토하여 퍼블릭 액세스 허용과 관련된 위험을 이해하고 이에 동의하는지 확인하십시오. 퍼블릭 액세스 차단 설정을 해제하여 버킷을 퍼블릭으로 만들면 인터넷상의 모든 사용자가 버킷에 액세스할 수 있습니다. 버킷에 대한 모든 퍼블릭 액세스를 차단하는 것이 좋습니다.

  6. 확인 상자에 confirm을 입력한 다음 확인을 선택합니다.

    S3 버킷에서 버킷에 대한 액세스Objects can be public(객체가 퍼블릭이 될 수 있음)으로 업데이트됩니다. 이제 버킷의 객체를 공개적으로 읽기 가능하게 만들 버킷 정책을 추가할 수 있습니다. 액세스가 계속 Bucket and objects not public(버킷 및 객체가 퍼블릭이 아님)으로 표시되는 경우, 버킷 정책을 추가하기 전에 계정에 대해 퍼블릭 액세스 차단 설정을 편집해야 할 수도 있습니다.

3단계: 버킷 정책 추가

S3 퍼블릭 액세스 차단 설정을 편집한 후에는 버킷 정책을 추가하여 버킷에 퍼블릭 읽기 액세스 권한을 부여할 수 있습니다. 퍼블릭 읽기 액세스 권한을 부여하면 인터넷의 모든 사용자가 버킷에 액세스할 수 있습니다.

중요

다음 정책은 하나의 예일 뿐이며 버킷의 콘텐츠에 대한 전체 액세스를 허용합니다. 이 단계를 진행하기 전에 Amazon S3 버킷의 파일을 보호하려면 어떻게 해야 합니까?를 검토하여 S3 버킷의 파일 보안을 위한 모범 사례 및 퍼블릭 액세스 권한 부여와 관련된 위험을 파악할 수 있습니다.

  1. 버킷에서 버킷의 이름을 선택합니다.

  2. Permissions를 선택합니다.

  3. [Bucket Policy]를 선택합니다.

  4. 웹 사이트에 대한 퍼블릭 읽기 액세스 권한을 부여하려면 다음 버킷 정책을 복사한 후 버킷 정책 편집기에 붙여 넣습니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::example.com/*" ] } ] }
  5. Resource를 업데이트하여 버킷 이름을 포함합니다.

    앞의 예제 버킷 정책에서 example.com은 버킷 이름입니다. 자체 버킷에 이 버킷 정책을 사용하려면 자체 버킷 이름과 일치하도록 이 이름을 업데이트해야 합니다.

  6. 저장을 선택합니다.

    버킷에 퍼블릭 액세스 권한이 있음을 나타내는 경고가 나타납니다. 버킷 정책퍼블릭 레이블이 나타납니다.

    Policy has invalid resource라는 오류가 표시되면 버킷 정책의 버킷 이름이 사용자의 버킷 이름과 일치하는지 확인합니다. 버킷 정책 추가에 대한 자세한 내용은 S3 버킷 정책을 추가하려면 어떻게 해야 합니까?를 참조하십시오.

    오류 - 액세스 거부됨 경고가 표시되고 버킷 정책 편집기에서 버킷 정책을 저장할 수 없는 경우 계정 수준 및 버킷 수준 퍼블릭 액세스 차단 설정을 확인하여 버킷에 대한 퍼블릭 액세스를 허용하는지 확인하십시오.

3단계: 웹 사이트 엔드포인트 테스트

버킷을 정적 웹 사이트로 구성하고 권한을 설정하면 Amazon S3 웹 사이트 엔드포인트를 통해 웹 사이트에 액세스할 수 있습니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드웹 사이트 엔드포인트를 참조하십시오. Amazon S3 웹 사이트 엔드포인트의 전체 목록은 Amazon Web Services 일반 참조Amazon S3 웹 사이트 엔드포인트를 참조하십시오.