LoginSignup
13
13

More than 5 years have passed since last update.

S3で本番環境の機密情報を管理しインスタンスに撒く方法

Posted at

プロビジョニングツールとかで機密情報を管理する方法もあるが、
AMIからポンッとインスタンス立てて機密情報だけ入れれば動かせるという状況で
S3から機密情報を取ってくるようにすれば運用が楽になるんじゃないかという話。

前提条件

  • 本番環境用のVPCがある

VPCエンドポイントの作成

AWSのサービス一覧からVPCを開き、エンドポイントをクリック

VPC

VPCとサービスを選択

基本的にフルアクセスでいいが、必要に応じてポリシーを設定。

Step1

ルートテーブルを選択

Route table

S3バケットポリシーの設定

S3ではバケットごとにアクセスを制限するためのポリシーを設定することができるので、上で作ったVPCエンドポイントからのみアクセスを許可するようにする。

S3でバケットのプロパティを開き、「バケットポリシーの追加」をクリック。

Bucket property

ポリシー編集ダイアログが出るので、以下を入力

バケットポリシー
{
    "Version": "2012-10-17",
    "Id": "PolicyForCredentials",
    "Statement": [
        {
            "Sid": "Allow-production-VPC-to-getObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:getObject",
            "Resource": "arn:aws:s3:::<bucket name>/*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "上で作ったVPCエンドポイントID"
                }
            }
        }
    ]
}

以上でVPCに属するインスタンスからはバケット内のファイルが見えるようになったので、あとは
curl https://s3-ap-northeast-1.amazonaws.com/bucket/credentials.txt > /path/to/credentials.txt
みたいな感じで取ってくる。

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13