秘密キーを Amazon S3 に安全に保存する - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

秘密キーを Amazon S3 に安全に保存する

パブリック証明書の署名に使用するプライベートキーはプライベートであるため、ソースコードにコミットしないでください。プライベートキーファイルを Amazon S3 にアップロードしておき、アプリケーションのデプロイ時に Amazon S3 からダウンロードされるように Elastic Beanstalk を設定することで、設定ファイルにプライベートキーを保存しなくて済みます。

以下の例で示している設定ファイルResources セクションと files セクションでは、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 ストレージバケットからの読み取り権限があります。別のバケットを使用する場合は、インスタンスプロファイルに許可を追加します。

2 番目のエントリは、S3Auth 認証方法を使用して、指定された URL からプライベートキーをダウンロードし、/etc/pki/tls/certs/server.key に保存します。プロキシサーバーは、この場所からプライベートキーを読み取って、インスタンスで HTTPS 接続を終了できます。

環境の EC2 インスタンスに割り当てられるインスタンスプロファイルには、指定したバケットからキーオブジェクトを読み取るための権限がなければなりません。インスタンスプロファイルに IAM のオブジェクトを読み取るアクセス許可があることと、バケットおよびオブジェクトに対するアクセス許可でインスタンスプロファイルが禁止されていないことを確認します。

バケットの権限を表示するには
  1. Amazon S3 マネジメントコンソールを開きます。

  2. バケットを選択します。

  3. [プロパティ] を選択して、[アクセス許可] を選択します。

  4. アカウントがバケットの読み取り権限を持っていることを確認します。

  5. バケットポリシーがアタッチされている場合は、[バケットポリシー] を選択して、バケットに割り当てられているアクセス許可を表示します。