

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

# 秘密キーを Amazon S3 に安全に保存する
<a name="https-storingprivatekeys"></a>

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

以下の例で示している[設定ファイル](ebextensions.md)の[リソース](environment-resources.md)セクションと[ファイル](customize-containers-ec2.md#linux-files)セクションでは、Amazon S3 バケットからプライベートキーファイルをダウンロードしています。

**Example .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` という名前の認証方法を追加します。お客様の環境用にカスタム[インスタンスプロファイル](concepts-roles-instance.md)を設定している場合はそのプロファイルが使用されますが、設定していない場合は `aws-elasticbeanstalk-ec2-role` のデフォルト値が適用されます。デフォルトのインスタンスプロファイルには、Elastic Beanstalk ストレージバケットからの読み取り権限があります。別のバケットを使用する場合は、[インスタンスプロファイルに許可を追加](iam-instanceprofile.md#iam-instanceprofile-addperms)します。

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

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

**バケットの権限を表示するには**

1. [Amazon S3 マネジメントコンソール](https://console.aws.amazon.com/s3/home)を開きます。

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

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

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

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