AWS

[AWS] CloudFrontからのリクエスト以外をオリジンで拒否する

このブログはCloudFrontからLightsailで作成したオリジンを参照する構成になっているのですが、最近オリジンに直接リクエストが来ることが増えました。間違えてオリジンのURLを返している可能性もあったのでログを解析してたのですが、大方の予想通りセキュリティホールを探っている物ばかりでした。

めちゃめちゃ気持ち悪い(´・ω・`) オリジンへのリクエストはCloudFrontからしか来ないと割り切って、80/443番へ直接来るリクエストはすべて拒否することにしました。

ここではApacheの設定を掲載しますが、同様の手法でnginxなど他のWebサーバーでも利用できると思います。

続きを読む

[AWS] LightsailでEMLauncherを動かす – AmazonLinux2編

iOS/Android用の開発中のアプリをチームで共有するための定番ツール「EMLauncher」をAWSのLightsailへインストールします。

基本的にLightsailに存在する機能を中心に設定しますが、一部AWS本体も利用します。

  • ファイルはS3へ保存
  • メール送信はSESを利用
  • S3とSES用のIAMを作成

まぁ…最近はDeployGateなどのクラウドサービスを利用する方が圧倒的に楽ちんなのですが、コストや管理上の問題など、自前で準備しなければならくなった場合に参考にしていただければと。
続きを読む

[AWS] LigthsailにBitnami版Redmine4.1を構築する

新たにジョインしたプロジェクトでPM業務を担当することになりまして、古来から伝わりしRedmineを準備した際のメモです。……本当は今をときめくClickUpあたりを使いたかったんですが予算の兼ね合いで泣く泣くw Backlogは昔から肌に合わないのとカスタマイズが効かないので候補から外しました。

ゼロからRedmine環境を作るのは骨が折れるため、ボタン2〜3発でRedmineを起動でき、お値段的にも手頃なAWSのLightsailを利用して作成してみます。
続きを読む

[AWS] SESを利用しSMTPサーバの準備を行う

AWS SESを利用するとSMTPサーバが簡単に用意できます。EC2から利用する場合、無料枠が月間6.2万通まで用意されていますので、個人的な利用や小規模なプロジェクトであれば料金は気にしなくても良さそうです。

今回はSMTPサーバの準備をするところまでを取り上げます。
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する (S3編)

今回はServerless FrameworkでRESTfulAPIを介しS3からデータを取得したり保存したりします。

DynamoDBの回と同様に、プロジェクトの設定ファイルであるserverless.ymlにCloud Formationの書式でS3の設定からIAM周りまで一元管理できます。分かってくると楽しいですね。逆に詰まるとネット上に情報があまり転がってなくて地獄ですがw
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する (DynamoDB編)

今回はServerless FrameworkでRESTfulAPIを介しDynamoDBを触ります。

プロジェクトの設定ファイルであるserverless.ymlにCloud Formationの書式でいろいろ定義できるのでテーブルの作成やIAM周りの設定もすべて一元管理できます。テキストファイルでほとんどが完結するのほんと最高ですね。
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する (外部サーバと通信編)

Lambdaから外部のサーバとHTTPによる通信を行ってみます。

とは言っても特別な制約はありませんので基本的に自由行うことができますが、実行時間によって課金される点に注意が必要です。相手方のサーバからレスポンスが中々返って来ないとその時間分だけ課金されます。またVPCの中にLambdaを置いて実行する場合はインターネットゲートウェイなどの設定が必要になります。

では行ってみましょう。
続きを読む

[AWS] Serverless Frameworkで独自ドメインをSSL付きで設定する

Serverless FrameworkでRESTFulAPIを作成すると、通常だと以下のようにAWS側で用意されたドメインを利用するわけですが、

https://d-hhlj8cxjl7.execute-api.us-east-1.amazonaws.com/dev/welcome

今回は次のようにこちらで用意したドメインでリクエストを可能にします。

https://api.blog.katsubemakito.net/api/welcome

これはServerless Frameworkのプラグイン「serverless-domain-manager」を導入することで比較的簡単に実現できます。
続きを読む

[AWS] Serverless FrameworkでRESTfulAPIを作成する

AWSでRESTfulAPIをAPIGateway+Lambdaで作ろうとすると、ブラウザ上でGUIをいじくるわけですが操作感が独特で慣れるまでちょっとばかし辛いものがあります。そんな時に活躍してくれるのが「Serverless Framework」。YAMLをチョロっと書くだけでそのあたりの設定を良い感じに行ってくれます。

今回はドキュメントの内容に沿って、Serverless Frameworkの導入から実行までを行います。


続きを読む

[AWS] Route53でドメインの権限委譲を行う

このブログのドメインはblog.katsubemakito.netですが、例えばfoo.blog.katsubemakito.netなどと更に階層を深くしたサブドメインが作りたくなった際にやる設定です。本来はサブドメインの管理を本家のDNSサーバではなく、別のサーバで行う場合にやったりします。要は権限移譲ですね。

AWSではRoute53がDNSやドメイン回りを担当するサービスですが、非常にかんたんにこのあたりの設定が行えるようになっています。
続きを読む

[AWS] Node.js版 aws-sdkを設定する

Node.jsからAWSの様々なサービスを利用できるaws-sdkを使ってみます。
今回はインストールから利用開始できるまでの設定を行います。

AWS上の操作は大丈夫という方は、「Nodeから利用する」の項目からご覧ください。

続きを読む

LAMP環境をAWS Lightsailで新規に構築する

今回はAWSで気軽にVPSサーバを立てることができるLightsailで、LAMP環境を構築してみます。1台のサーバにWebとDBが同居する形の非常にシンプルな物です。

もともとAnsibleで自動化しようと思ってタスクを洗い出していたのですが、せっかくなのでブログにも残しておきます。
続きを読む

AWS Organizationsでアカウント管理してみる

過去、AWSを大きな組織や複数のプロジェクトで利用する場合、AWSのアカウント自体を複数用意して利用していたわけですが、2017年2月に登場した「AWS Organizations」を利用すると、請求先の一元化や、ユーザーの権限管理が一括して行えます。

考え方

これまで

それぞれのアカウントが独立して存在しており、請求情報やユーザー管理もそれぞれ行う必要がありました。

AWS Organizations導入後

図はイメージですが、AWSアカウント内に「組織」を作成することで、独立した世界を用意することができます。

請求情報は「親」で一元管理できます。
また必要があれば各ユーザーに対し制限をまとめてかけることもできます。

「子ユーザー」はルートユーザーと同じ権限が与えられますので、組織内のユーザーから見ても、使い勝手はこれまでと変わりません。また各組織が影響を与えることもありませんので万が一の場合の影響範囲を心配する必要がないのもこれまでと変わらないポイントです。

続きを読む

AWSアカウントの2段階認証を設定する

もうどこからアカウント情報が漏れるかわかりませんからね。昨年GitHubの2段階認証の設定をしたように、今回はAWSのアカウントにも施したいと思います。特にルートアカウント。

認証方法

詳しくはAWSの「多要素認証」のページに書かれていますが、実質的にスマホアプリか専用のデバイスを用いることになります。

仮想 MFA アプリケーション

要はスマホのアプリで認証するタイプ。
Google認証とAuthy2、WindowsPhone用の「認証システム」に対応しているようです。

OSアプリ
AndroidGoogle認証 / Authy2
iOSGoogle認証 / Authy2
WindowsPhone認証システム

U2F セキュリティキー

物理的な認証デバイスとの連携にも対応しているようです。
USBポートに差し込んで指紋を読み取らせるだけで、ワンタイムパスワード的な物が発行されログインできる便利なやつですね。興味のある方はAmazonからも購入できるのでどうぞ。

SMS MFA

新規受付はすでに終了したそうです。また既存ユーザーも2019年1月31日で提供終了とのこと。がーん。本命だったのに(´・ω・`)

続きを読む