【PHP】コンテナの環境変数を参照する

AWS ECSでコンテナアプリケーションを実装する時の、コンテナに設定された環境変数取得方法のまとめです 環境ごとの設定値を設定ファイルに書き出しておくのはよくやる手法ですが、githubを使ってソース管理する場合、思わぬ情報漏洩に繋がるケースがあります。 例えばデータベースのホスト名やパスワードを設定ファイルに書き出して環境ごとにコミットしたとします。FuelPHPの設定ファイルを例にとって見てみます。 config/production/db.php (普通に書く) return array( 'default' => array( 'connection' => array( 'hostname' => '255.255.255.255, 'database' => 'database', 'username' => 'testuser', 'password' => 'password', ), ), ); これをgithubへコミットしてしまうと、何かの拍子でpublicになってしまったとき外部から丸見えになってしまいます。何かの拍子というのは、そのほとんどが人的ミスによるものです。 また、こういった情報を良からぬクローラーがさらっていく情報漏洩が結構発生しているようですので、コンテナの環境変数に設定してアプリケーションか…

続きを読む

【PHP】Amazon SESでEメール送信

aws-sdk-phpを利用してAmazon SESからEメールを送信する方法のまとめです。 ※aws-sdk-phpのセットアップは以下リンク参照 【AWS】S3へファイルアップロード(PHP) 公式の詳細はこちら https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/send-using-sdk-php.html 実装 名前空間の定義 use \Aws\Credentials\CredentialProvider; use \Aws\Ses\SesClient; use \Aws\Exception\AwsException; 処理 /** * Amazon SES Sendmail * @param string $subject * @param string $body * @param string $to * @param string $from_email * @param string $from_name = null * @return bool * @throw Exception */ public static function send( string $subject, string $body, string $to, string $from_email, …

続きを読む

AWS-CLI使い方まとめ(S3編)

本番環境へSSH接続できなくて(権限なし)、DBのdumpファイルをどうやってGETしようか試行錯誤した時の方法です。 セッションマネージャーからAWS-CLIでS3バケットにアップロードして、S3経由で取得できました。 これは色々応用できるなと思い、AWS-CLIの使い方をまとめておきます。 ということでまずはS3操作について... 事前準備 AWS-CLIのインストール https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html $ aws --version aws-cli/1.16.170 Python/3.7.4 Darwin/17.5.0 botocore/1.12.160 設定 以下2ファイルを用意 (無ければ作る) $ cat ~/.aws/config [default] region = ap-northeast-1 $ cat ~/.aws/credentials [default] aws_access_key_id = AAAAAAAAAAAAAAAAAAAA aws_secret_access_key = BBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCCCCCC ※複数環境を使い分ける場合は、credentialsに設定した[キー]を --profile [キー] で指定する …

続きを読む

【AWS】コンソールログインに二段階認証(MFA)を設定する

AWSコンソールへのログインは通常アカウント、ユーザー名、パスワードによって認証しますが、これにMFAを加えて確実に本人しか認証できないようにするのがベターです。 MFA ー Multi-Factor Authentication携帯電話や他のデバイスを仮想多要素認証として使用すること。このデバイスをMFAデバイスという。 事前準備 ここではMFAデバイスとしてAndroid携帯を使用する これにより、このAndroid携帯の持ち主にしか認証できないようにするのが目的 認証アプリをインストール 認証用のアプリとして、Google 認証システムを使う (これ以外にもいろいろあるが使ったことない...) https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2この他にもSymantec製や https://play.google.com/store/apps/details?id=com.verisign.mvip.main マイクロソフト製がある https://play.google.com/store/apps/details?id=com.azure.authenticator 事前準備は以上 MFAの設定 AWSコンソールへログイン IAM ユーザーアクセスと暗号化キーの管理を開く (サ…

続きを読む

【AWS】S3へファイルアップロード(PHP)

以前書いた FuelPHPでファイルアップロード の続きで、Amazon S3へアップロードする部分をまとめます。 SDKセットアップ composerを使ってインストールします。 以下をcomposer.jsonに追加してcomposer installを実行 "aws/aws-sdk-php": "^3.99" S3へアップロードする処理 名前空間 use \Aws\Credentials\CredentialProvider; use \Aws\S3\S3Client; use \Aws\S3\Exception\S3Exception; 処理 // ①認証情報を取得 $provider = CredentialProvider::defaultProvider(); // ②S3Clientを生成 $s3client = new S3Client([ 'region' => 'ap-northeast-1', 'version' => '2006-03-01', 'credentials' => $provider, ]); foreach (Upload::get_files() as $file) { // ③URLを決定 $filename = 'images/'.$file['saved_as']; …

続きを読む

スポンサーリンク