기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
보안 Lightsail 오브젝트 스토리지 버킷
Amazon Lightsail 객체 스토리지는 자체 보안 정책을 개발하고 구현할 때 고려할 수 있는 여러 보안 기능을 제공합니다. 다음 모범 사례는 일반적인 지침이며 완벽한 보안 솔루션을 나타내지는 않습니다. 이러한 모범 사례는 환경에 적절하지 않거나 충분하지 않을 수 있으므로 참고용으로만 사용해 주십시오.
목차
예방적 보안 모범 사례
다음 모범 사례는 Lightsail 버킷의 보안 사고를 예방하는 데 도움이 될 수 있습니다.
최소 권한 액세스 구현
권한을 부여할 때는 누가 어떤 Lightsail 리소스에 어떤 권한을 부여할지 결정합니다. 해당 리소스에서 허용할 작업을 사용 설정합니다. 따라서 작업을 수행하는 데 필요한 권한만 부여해야 합니다. 최소 권한 액세스를 구현하는 것이 오류 또는 악의적인 의도로 인해 발생할 수 있는 보안 위험과 영향을 최소화할 수 있는 근본적인 방법입니다.
버킷을 관리하기 위한 IAM 정책 생성에 대한 자세한 내용은 버킷을 관리하는 IAM 정책을 참조하세요. Lightsail 버킷에서 지원하는 Amazon S3 작업에 대한 자세한 내용은 Amazon Lightsail API 참조의 객체 스토리지를 위한 작업을 참조하십시오.
Lightsail 버킷에 공개적으로 액세스할 수 없는지 확인하십시오.
기본적으로 버킷 및 객체는 프라이빗입니다. 버킷 액세스 권한을 모든 객체 프라이빗(All objects are private)으로 설정하여 버킷을 프라이빗으로 유지합니다. 대부분의 사용 사례의 경우 버킷이나 개별 객체를 퍼블릭으로 설정할 필요가 없습니다. 자세한 내용은 버킷에 있는 개별 객체에 대한 액세스 권한 구성을 참조하세요.
그러나 버킷을 사용하여 웹 사이트 또는 애플리케이션의 미디어를 호스팅하는 경우 특정 시나리오에서 버킷이나 개별 객체를 퍼블릭으로 설정해야 할 수 있습니다. 다음 옵션 중 하나를 구성하여 버킷 또는 개별 객체를 퍼블릭으로 설정할 수 있습니다.
-
버킷의 일부 객체만 인터넷의 모든 사용자에게 퍼블릭(읽기 전용)이 되어야 하는 경우 버킷 액세스 권한을 개별 객체는 퍼블릭 및 읽기 전용으로 설정 가능(Individual objects can be made public and read-only)으로 변경하고 퍼블릭이 되어야 하는 객체만 퍼블릭(읽기 전용)(Public (read-only))으로 변경합니다. 이 옵션은 버킷을 프라이빗으로 유지하지만 개별 객체를 퍼블릭으로 설정할 수 있는 옵션을 제공합니다. 공개적으로 액세스하지 않으려는 민감한 정보나 기밀 정보가 포함된 경우 개별 객체를 퍼블릭으로 설정하지 마십시오. 개별 객체를 퍼블릭으로 설정하는 경우 각 개별 객체의 퍼블릭 액세스 가능성을 주기적으로 확인해야 합니다.
-
버킷의 모든 객체가 인터넷상의 모든 사용자에게 퍼블릭(읽기 전용)이 되어야 하는 경우 버킷 액세스 권한을 모든 객체는 퍼블릭이며 읽기 전용(All objects are public and read-only)으로 변경합니다. 버킷의 객체에 민감한 정보나 기밀 정보가 포함된 경우 이 옵션을 사용하지 마십시오.
-
이전에 버킷을 퍼블릭으로 변경했거나 개별 객체를 퍼블릭으로 변경한 경우 버킷 액세스 권한을 모든 객체는 프라이빗(All objects are private)으로 변경하여 버킷과 모든 해당 객체를 프라이빗으로 빠르게 변경할 수 있습니다.
Amazon S3에서 퍼블릭 액세스 차단 사용
Lightsail 객체 스토리지 리소스는 퍼블릭 액세스를 허용하거나 거부할 때 Lightsail 버킷 액세스 권한과 Amazon S3 계정 수준의 블록 퍼블릭 액세스 구성을 모두 고려합니다. Amazon S3 계정 수준의 블록 퍼블릭 액세스를 사용하면 계정 관리자와 버킷 소유자가 Amazon S3 및 Lightsail 버킷에 대한 퍼블릭 액세스를 중앙에서 제한할 수 있습니다. 퍼블릭 액세스를 차단하면 리소스 생성 방법과 구성되었을 수 있는 개별 버킷 및 객체 권한에 관계없이 모든 Amazon S3 및 Lightsail 버킷을 비공개로 만들 수 있습니다. 자세한 내용은 버킷에 대한 퍼블릭 액세스 차단을 참조하세요.
버킷에 인스턴스를 연결하여 전체 프로그래밍 방식 액세스 권한 부여
Lightsail 오브젝트 스토리지 버킷에 인스턴스를 연결하는 것이 버킷에 대한 액세스를 제공하는 가장 안전한 방법입니다. 인스턴스를 버킷에 연결하는 방식인 리소스 액세스(Resource access) 기능은 인스턴스에 버킷에 대한 전체 프로그래밍 방식 액세스 권한을 부여합니다. 이 방법을 사용하면 인스턴스 또는 애플리케이션에 직접 버킷 자격 증명을 저장하지 않아도 되며 자격 증명을 주기적으로 교체하지 않아도 됩니다. 예를 들어 일부 WordPress 플러그인은 인스턴스가 액세스할 수 있는 버킷에 액세스할 수 있습니다. 자세한 내용은 버킷의 리소스 액세스 구성 및 자습서: WordPress 인스턴스에 버킷 연결을 참조하십시오.
그러나 애플리케이션이 Lightsail 인스턴스에 있지 않은 경우에는 버킷 액세스 키를 생성하고 구성할 수 있습니다. 버킷 액세스 키는 자동으로 교체되지 않는 장기 자격 증명입니다.
액세스 키를 생성하고 사용하여 애플리케이션 또는 플러그인에 버킷의 객체에 대한 전체 프로그래밍 방식 액세스 권한을 부여할 수 있습니다. 버킷에 액세스 키를 사용하는 경우 주기적으로 키를 교체하고 기존 키의 목록을 만들어야 합니다. 액세스 키가 마지막으로 사용된 날짜와 사용된 날짜가 키 사용 방식에 대한 예상과 일치하는지 확인하십시오. AWS 리전 액세스 키가 마지막으로 사용된 날짜는 Lightsail 콘솔, 즉 버킷 관리 페이지의 권한 탭에 있는 액세스 키 섹션에 표시됩니다. 사용되지 않는 액세스 키를 삭제합니다.
실수로 비밀 액세스 키를 일반 사용자와 공유한 경우 해당 키를 삭제하고 새 키를 만들어야 합니다. 버킷당 최대 2개의 액세스 키를 사용할 수 있습니다. 동시에 두 개의 다른 액세스 키를 가질 수 있지만 버킷에서 하나의 액세스 키를 사용하지 않는 것은 최소한의 가동 중단 시간으로 키를 교체해야 하는 경우에 유용합니다. 액세스 키를 교체하려면 새 키를 생성하고 소프트웨어에서 구성하여 테스트한 다음 이전 키를 삭제하면 됩니다. 액세스 키를 삭제하면 키가 영구 삭제되어 복원할 수 없습니다. 새 액세스 키로만 교체할 수 있습니다. 자세한 내용은 버킷 액세스 키 생성을 참조하세요.
교차 계정 액세스를 사용하여 다른 AWS 계정에 버킷의 객체에 대한 액세스 권한을 부여할 수 있습니다.
계정 간 액세스를 사용하면 버킷과 해당 객체를 공개하지 않고도 AWS 계정을 가진 특정 개인이 버킷의 객체에 액세스할 수 있습니다. 교차 계정 액세스를 구성한 경우 나열된 계정 ID가 버킷의 객체에 대한 액세스 권한을 부여하려는 올바른 계정인지 확인합니다. 자세한 내용은 버킷에 대한 크로스 계정 액세스 구성을 참조하세요.
데이터의 암호화
Lightsail은 Amazon 관리 키를 사용하여 서버 측 암호화를 수행하고 HTTPS (TLS) 를 적용하여 전송 중인 데이터를 암호화합니다. 서버 측 암호화를 사용하면 별도의 서비스에 저장되는 키로 데이터를 암호화하여 데이터에 대한 위험을 줄일 수 있습니다. 또한 전송 데이터를 암호화하면 잠재적 공격자가 또는 유사한 공격을 사용하여 네트워크 트래픽을 도청하거나 조작하는 것을 방지할 수 있습니다. person-in-the-middle
버전 관리 사용
버전 관리는 동일 버킷 내에 여러 개의 객체 변형을 보유하는 것을 의미합니다. 버전 관리를 사용하여 Lightsail 버킷에 저장된 모든 객체의 모든 버전을 보존, 검색 및 복원할 수 있습니다. 또한 의도치 않은 사용자 작업 및 애플리케이션 장애로부터 쉽게 복구할 수 있습니다. 자세한 내용은 버킷의 객체 버전 사용 설정 및 사용 중지를 참조하세요.
모니터링 및 감사 모범 사례
다음 모범 사례는 Lightsail 버킷의 잠재적 보안 취약점 및 사고를 탐지하는 데 도움이 될 수 있습니다.
액세스 로깅 활성화 및 주기적인 보안 및 액세스 감사 수행
액세스 로깅은 버킷에 대한 요청에 대한 자세한 레코드를 제공합니다. 이 정보에는 요청 유형(GET
, PUT
), 요청에 지정된 리소스 및 요청이 처리된 시간 및 날짜가 포함될 수 있습니다. 버킷에 대한 액세스 로깅을 활성화하고 주기적으로 보안 및 액세스 감사를 수행하여 버킷에 액세스하는 엔터티를 식별합니다. 기본적으로 Lightsail은 버킷에 대한 액세스 로그를 수집하지 않습니다. 액세스 로깅을 수동으로 활성화해야 합니다. 자세한 내용은 버킷 액세스 로그 및 버킷 액세스 로깅 활성화를 참조하세요.
Lightsail 버킷을 식별하고 태그를 지정하고 감사하십시오.
IT 자산 식별은 거버넌스와 보안의 중요한 측면입니다. Lightsail 버킷의 보안 상태를 평가하고 잠재적 취약점 영역에 대한 조치를 취하려면 모든 Lightsail 버킷에 대한 가시성이 있어야 합니다.
태그 지정을 사용하여 보안에 민감한 리소스 또는 감사에 민감한 리소스를 식별한 다음 이러한 리소스를 검색해야 할 때 해당 태그를 사용합니다. 자세한 내용은 태그를 참조하세요.
AWS 모니터링 도구를 사용하여 모니터링 구현
모니터링은 Lightsail 버킷 및 기타 리소스의 안정성, 보안, 가용성 및 성능을 유지하는 데 있어 중요한 부분입니다. Lightsail에서 버킷 크기 (BucketSizeBytes
) 및 Number of objects
(NumberOfObjects) 버킷 지표에 대한 알림 경보를 모니터링하고 생성할 수 있습니다. 예를 들어, 버킷의 크기가 특정 크기로 증가 또는 축소될 때 또는 버킷의 객체 수가 특정 숫자까지 올라가거나 줄어들 때 알림을 받을 수 있습니다. 자세한 내용은 버킷 지표 경보 생성을 참조하세요.
사용 AWS CloudTrail
AWS CloudTrail Lightsail에서 사용자, 역할 또는 AWS 서비스가 수행한 작업의 기록을 제공합니다. 에서 수집한 CloudTrail 정보를 사용하여 Lightsail에 대한 요청, 요청한 IP 주소, 요청한 사람, 요청 시기 및 추가 세부 정보를 확인할 수 있습니다. 예를 들어, 데이터 액세스에 영향을 미치는 작업에 대한 CloudTrail 항목 (특히CreateBucketAccessKey
,, 및) 을 식별할 수 있습니다. GetBucketAccessKeys
DeleteBucketAccessKey
SetResourceAccessForBucket
UpdateBucket
AWS 계정을 설정하면 이 기본적으로 CloudTrail 활성화됩니다. CloudTrail 콘솔에서 최근 이벤트를 볼 수 있습니다. Lightsail 버킷의 활동 및 이벤트에 대한 지속적인 기록을 생성하려면 콘솔에서 트레일을 생성할 수 있습니다. CloudTrail 자세한 내용은 AWS CloudTrail 사용 설명서의 추적을 위해 데이터 이벤트 로깅을 참조하세요.
보안 권고 사항을 모니터링하세요. AWS
계정에 등록된 기본 이메일 주소를 적극적으로 모니터링하십시오. AWS AWS 영향을 받을 수 있는 새로운 보안 문제에 대해 이 이메일 주소를 사용하여 연락을 드릴 것입니다.
AWS 광범위한 영향을 미치는 운영 문제는 AWS Service Health Dashboard에