將私有金鑰安全地儲存於 Amazon S3 中 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將私有金鑰安全地儲存於 Amazon S3 中

您用來簽署公有憑證的私密金鑰是私有的,不應直接寫在原始程式碼中。您可以將私有金鑰上傳到 Amazon S3,然後設定 Elastic Beanstalk 在部署應用程式時從 Amazon S3 下載檔案,來避免將私有金鑰儲存於組態檔案中。

下列範例顯示組態檔案資源檔案區段,此組態檔案從 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。這個檔案中的第一個項目,將名為 S3Auth 的身份驗證方法,加進了環境的 Auto Scaling 群組的中繼資料。如果您已經為環境設定了自訂的執行個體描述檔,將會使用該設定檔,否則就會套用 aws-elasticbeanstalk-ec2-role 的預設值。預設的執行個體描述檔具有權限,可從 Elastic Beanstalk 儲存貯體讀取。如果您使用不同的儲存貯體,請新增權限到執行個體描述檔

第二個項目會使用 S3Auth 身份驗證方法,來從指定的 URL 下載私有金鑰,然後將金鑰儲存至 /etc/pki/tls/certs/server.key。之後,代理伺服器即可從此位置讀取私密金鑰,以終止執行個體的 HTTPS 連線

指派給您環境的 EC2 執行個體的執行個體描述檔,必須擁有權限,以從指定的儲存貯體讀取金鑰物件。請確定執行個體描述檔具有許可,能夠讀取 IAM 中的物件,而且儲存貯體和物件上的許可不會禁止執行個體描述檔。

若要查看儲存貯體的權限
  1. 開啟 Amazon S3 管理主控台

  2. 選擇儲存貯體。

  3. 選擇 Properties (屬性),然後選擇 Permissions (權限)

  4. 確認您的帳戶是儲存貯體上的承授者,具備讀取權限。

  5. 如果已連接儲存貯體政策,請選擇 Bucket policy (儲存貯體政策),以檢視已指派給儲存貯體的許可。