프라이빗 키를 Amazon S3에 안전하게 저장 - AWS Elastic Beanstalk

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

프라이빗 키를 Amazon S3에 안전하게 저장

퍼블릭 인증서에 서명할 때 사용하는 프라이빗 키는 개인 소유로, 소스 코드에 커밋하면 안 됩니다. 프라이빗 키를 Amazon S3에 업로드한 후 애플리케이션 배포 중에 Amazon S3에서 이 파일을 다운로드하도록 Elastic Beanstalk를 구성하면 프라이빗 키를 구성 파일에 저장하지 않을 수 있습니다.

다음 예제에서는 구성 파일리소스파일 섹션이 Amazon S3 버킷에서 프라이빗 키 파일을 다운로드하는 것을 보여 줍니다.

예 .ebextensions/privatekey.config
Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["elasticbeanstalk-us-west-2-123456789012"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role" files: # Private key "/etc/pki/tls/certs/server.key": mode: "000400" owner: root group: root authentication: "S3Auth" source: https://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key

예제의 버킷 이름과 URL을 본인의 것으로 바꿉니다. 이 파일의 첫 번째 항목에서는 환경의 Auto Scaling 그룹의 메타데이터에 S3Auth라는 인증 방법을 추가합니다. 환경에 대해 사용자 지정 인스턴스 프로파일을 구성한 경우 이것이 사용되며, 그렇지 않은 경우 기본값인 aws-elasticbeanstalk-ec2-role이 적용됩니다. 기본 인스턴스 프로파일에는 Elastic Beanstalk 스토리지 버킷에서 읽을 권한이 있습니다. 다른 버킷을 사용하는 경우 인스턴스 프로파일에 권한을 추가합니다.

두 번째 항목에서는 S3Auth 인증 방법을 사용하여 지정된 URL에서 프라이빗 키를 다운로드하고 이를 /etc/pki/tls/certs/server.key에 저장합니다. 그러면 프록시 서버가 이 위치에서 프라이빗 키를 읽어 인스턴스에서 HTTPS 연결을 종료할 수 있습니다.

환경의 EC2 인스턴스에 할당된 인스턴스 프로파일에는 지정된 버킷에서 키 객체를 읽을 권한이 있어야 합니다. IAM의 객체를 읽을 권한이 인스턴스 프로파일에 있는지, 버킷 및 객체에 대한 권한이 인스턴스 프로파일을 금지하지 않는지 확인합니다.

버킷의 권한을 보려면
  1. Amazon S3 관리 콘솔을 엽니다.

  2. 버킷을 선택합니다.

  3. Properties(속성)를 선택한 후 권한을 선택합니다.

  4. 계정이 읽기 권한이 있는 버킷의 피부여자인지 확인합니다.

  5. 버킷 정책이 연결되면 Bucket policy(버킷 정책)를 선택하여 버킷에 할당된 권한을 봅니다.