タグ

ブックマーク / dev.classmethod.jp (2,750)

  • WordPressへの攻撃をAWS WAFマネージドルールで検知してログを分析してみた | DevelopersIO

    こんにちは、臼田です。 みなさん、WAFWAFしてますか? 今回はブログDevelopers.IOで適用しているAWS WAFマネージドルールで検知した内容をログから分析してみたので共有したいと思います。 適用していたマネージドルールはTrend Micro Managed Rules for AWS WAF - Content Management System (CMS)です。 このルールはWordpress、Joomla、Drupal等のCMSを保護するトレンドマイクロさんから提供さているものです。このルールの利用を検討している方は是非参考にしてください。 検知内容 サマリと所感 約4ヶ月間で約200件の攻撃を検知 検知内容は殆どCMSに対する各種攻撃 ブログはECでも個人情報を大量に保持しているわけでもないけどぼちぼち攻撃がくるんだなーと感じました。 以下主要な攻撃について説明

    WordPressへの攻撃をAWS WAFマネージドルールで検知してログを分析してみた | DevelopersIO
    oppara
    oppara 2018/07/31
  • Lambda@Edgeを使いNginxでクライアントIPアドレスを受け取る | DevelopersIO

    コンニチハ、千葉です。 CloudFront + ELB + Nginxの構成で、NginxのログにクライアントIPアドレスを保存したいという要件がありました。 色々な方法があるので、整理してみました。また、Lambda@Edge使ったらなんとかいけるんじゃないかと思い試してみたらいけたのでお届けします。今回はNginxで試しましたがApacheや他アプリでも応用できるんじゃないかと思います。 いろいろなやり方 案1:X-Forwarded-Forを使ってCloudFrontのIPアドレス帯をメンテする X-Forwarded-Forの値を使って、remote_addrを書き換えるという内容です。 例えば、以下のようにnginx.confを書き換えます。 set_real_ip_from VPCのセグメント; set_real_ip_from CloudFrontのIPセグメント1; se

    Lambda@Edgeを使いNginxでクライアントIPアドレスを受け取る | DevelopersIO
    oppara
    oppara 2018/07/27
  • 【新サービス】EBSスナップショットのライフサイクルを自動化するAmazon DLMが登場! | DevelopersIO

    大栗です。 先程EC2のドキュメントのDocument Historyを眺めていたらAutomate snapshot lifecycleというFeatureが有りました。何やら新機能みたいなので調べていたら、EBSスナップショットの世代管理などをやってくれるサービスが登場した模様です!早速レポートします。 Automating the Amazon EBS Snapshot Lifecycle Amazon DLM Amazon Data Lifecycle Manager (Amazon DLM)を使用するとEBSのバックアップであるスナップショットの作成、保存、削除を自動化できます。 定時バックアップをスケジュールして貴重なデータを保護します。 監査人または社内のコンプライアンスが要求する期間バックアップを保持できます。 古いバックアップを削除してストレージコストを削減します。 Am

    【新サービス】EBSスナップショットのライフサイクルを自動化するAmazon DLMが登場! | DevelopersIO
    oppara
    oppara 2018/07/26
  • Amazon Translate を使った翻訳 LINE Bot を作ってみた | DevelopersIO

    こんにちは、中村です。 こちらの記事(【速報】AWSの翻訳サービス Amazon Translateが日語に対応して全12言語に!)でも紹介してるように、 Amazon Translate で日語対応がなされました! 今回は、Amazon Translate を使って、翻訳 LINE Bot を作成します。 はじめに 機能 ユーザーが入力した日語を英語に翻訳し返信してくれる機能になります。 構成 構成はおなじみの API GatewayLambda を使います。もちろん翻訳は、 Amazon Translate です。 作ってみよう LINE チャネル作成 まずLINE 開発者コンソールにてチャネルを作成したいプロバイダーをクリック。 チャネルの一覧が表示される。新規チャネル作成をクリック。 Messaging API でチャネルを作成するを選択する。 アプリ名・アプリ説明・プラン

    Amazon Translate を使った翻訳 LINE Bot を作ってみた | DevelopersIO
    oppara
    oppara 2018/07/26
  • AWS CLIを使ってCognitoユーザーステータスのFORCE_CHANGE_PASSWORDをCONFIRMEDにしてみる | DevelopersIO

    AWS CLIを使ってCognitoユーザーステータスのFORCE_CHANGE_PASSWORDをCONFIRMEDにしてみる マネージメントコンソールでユーザを追加すると必ず「FORCE_CHANGE_PASSWORD」というステータスでユーザが作成されます。このステータスをAWS CLIから「CONFIRMED」に変更する方法をご紹介します。 どうも!大阪オフィスの西村祐二です。 今日はクラスメソッドの創立記念日で15年目に突入したそうです。ということで今日もブログを書いていきます。テーマはCognitoです。 Cognitoを使う際に検証やテストのために、ユーザを追加したいことがあるかと思います。 マネージメントコンソールでユーザを追加すると必ず「FORCE_CHANGE_PASSWORD」というステータスでユーザが作成されます。このステータスのユーザーはユーザ自身でパスワードを変

    AWS CLIを使ってCognitoユーザーステータスのFORCE_CHANGE_PASSWORDをCONFIRMEDにしてみる | DevelopersIO
    oppara
    oppara 2018/07/25
  • ガントチャートが作れるサービスを使ってみた【Wrike編】 | DevelopersIO

    はじめに モバイルアプリサービス部のプロジェクトリーダーをやっとりますアンディです。前回の投稿に引き続きガントチャートが作れるサービスを使ってみます。今回はWrikeです。 Wrikeとは 前回紹介したteamganttガントチャート作成に特化したサービスでしたが、Wrikeはプロジェクトの進捗管理全般をサポートする高機能なサービスになっています。 wrike公式 採用企業は1万7000にものぼり、Google, fibitといった有名企業も採用しています。さらにairbnbの事例も出ており世界ではかなり有名なサービスのようです。 早速使ってみた ざっと使ってみた感じ、プロジェクトのマスタースケジュール作成からカンバンでのタスク管理まで対応しており、とにかく高機能です。GitHubとの連携や、Slackでの通知確認・タスク作成にも対応しています。今回はガントチャート部分の検証が目的なので

    ガントチャートが作れるサービスを使ってみた【Wrike編】 | DevelopersIO
    oppara
    oppara 2018/07/25
  • Lambda@Edge で CloudFront キャッシュヒット率を向上させるんや! | DevelopersIO

    CloudFront はクエリ文字列毎のキャッシュが可能ですが、パラメータの順序、大文字小文字の違いによって、別のキャッシュと判断されます。Lambda@Edge でクエリ文字列を標準化し、キャッシュヒット率を向上させる方法をご紹介します。 みなさん、Lambda@Edge 使ってますか!?「いまいち使い所がわからない・・・」という方も少なくないのではないでしょうか?今回はユースケースの一例として、クエリ文字列を標準化することでキャッシュヒット率を向上させる方法についてご紹介したいと思います。 クエリ文字列のキャッシュについて理解する CloudFront では Query String Forwarding and Caching の設定により、クエリ文字列パラメータに基づいて個別にキャッシュすることが可能ですが、ここで注意したいポイントは、パラメータの順番や、大文字小文字のレベルで別の

    Lambda@Edge で CloudFront キャッシュヒット率を向上させるんや! | DevelopersIO
    oppara
    oppara 2018/07/25
  • Amazon Linux 2 LTS Container Image を Docker for Mac で動かしてみた | DevelopersIO

    はじめに AWS 事業部 オペレーション部の下田です。 Amazon Linux 2 LTS リリース候補版が発表された際同様に Amazon Linux 2 の正式リリースに合わせてコンテナイメージが公開されているため Docker for Mac で動作確認をやってみたいと思います。 Amazon Linux 2 LTS リリース候補版が発表された際の検証記事は、以下からご確認いただけます。 Amazon Linux2 Container Image を Docker for Mac で動かしてみた Amazon Linux 2 LTS に関する、その他ブログにつきましては以下をご参照ください。 [速報]5年長期サポートのAmazon Linux 2が一般公開されました [小ネタ] Amazon Linux 2 Release Candidate を LTS にアップグレード [オン

    Amazon Linux 2 LTS Container Image を Docker for Mac で動かしてみた | DevelopersIO
    oppara
    oppara 2018/07/25
  • Amazon Transcribeのジョブ実行結果をS3 Events/SNS/Lambdaでイベントドリブンに処理する | DevelopersIO

    従来の Amazon Transcribe は、文字起こし結果を AWS の管理する S3 バケットに出力しました。今後は、ユーザーの管理する S3 バケットにも出力可能になりました。 Amazon Transcribeが文字起こし結果をユーザーのS3バケットに出力できるようになりました ユーザーの管理する S3 バケットに出力することにより 文字起こし結果の権限・ライフサイクルの管理 S3 への書き込みイベントをもとに処理を呼び出し といったことが可能になります。 ブログでは、Transcribe ジョブ結果がユーザーの管理する S3 バケットに書き込まれたあと、 S3 → SNSLambda と連携し、ジョブ結果ファイルを Lambda で処理できるように実装します。 文字起こしパイプラインイメージ図 イベントドリブンに S3 バケットに音源ファイルが書き込まれたら、文字起こし

    Amazon Transcribeのジョブ実行結果をS3 Events/SNS/Lambdaでイベントドリブンに処理する | DevelopersIO
    oppara
    oppara 2018/07/25
  • RedHatでPHPからDBサーバに接続できないときはSELinuxの設定が原因かも? | DevelopersIO

    数年ぶりにRedHat系OS(Amazon Linuxは除く)を使い、記憶の彼方に消えていた SELinux と再会する機会があったので、メモを残しておきます。 事象 RedHat 7.5 + Apache/PHP + AWS RDS(MySQL)というよくある構成で、PHP から RDS MySQL に接続できないという現象に出くわしました。 RedHat サーバーからは MySQL CLI コマンドラインの PHP ともにリモートの MySQL に接続できますが、Apache 上で動作する PHP プログラムからは MySQL へ接続できませんでした。 Warning: mysqli_real_connect(): (HY000/2003): Can't connect to MySQL server on 'foo.bar.eu-central-1.rds.amazonaws.com

    RedHatでPHPからDBサーバに接続できないときはSELinuxの設定が原因かも? | DevelopersIO
    oppara
    oppara 2018/07/25
  • XcodeでSwiftのコンパイルにかかる時間を調査する方法を調べてみた | DevelopersIO

    概要 XcodeでiOSアプリを開発していると、プロジェクト後半になるにつれて、徐々にビルド時間が伸びていて時々、チーム内でも議論されていました。まずは、どの部分で時間がかかっているかを調べてみようと思います。なので今回は、XcodeでiOSアプリを開発する時に、コンパイルにかかる時間を調べる方法をご紹介します。 環境 Xcode: Version 9.4(9F1027a) macOS: 10.13.5 やり方 Xcodeの Other Swift Flags に以下のパラメータを追加します。すると、設定時間以上にコンパイルに時間がかかる箇所が、warningとして表示されるようになります -Xfrontend -warn-long-expression-type-checking=100 -Xfrontend -warn-long-function-bodies=100 数字の部分はms

    XcodeでSwiftのコンパイルにかかる時間を調査する方法を調べてみた | DevelopersIO
    oppara
    oppara 2018/07/24
  • YAMAHA NVR500 で L2TP/IPSec を使用したリモートアクセス VPN を利用する | DevelopersIO

    こんにちは、菊池です。 きっかけは、社内チャットで見たこの一言でした。 昨年末のファームで、IPSec行けるようになりましたよ、NVR500。 まさかと思い調べてみると、当でした。 NVR500用最新版ファームウェア(Rev.11.00.36)の配布開始:L2TP/IPsecに対応(2017年10月30日) 私がYAMAHA NVR500を購入したのは発売直後の2010年でしたので、すでに後継のNVR510も登場しており、発売から7年もたってからの新機能追加のアップデートがあるとは思いませんでした。ということで、最新のファームウェアにリビジョンアップして、リモートアクセスVPNによる接続を試してみました。 L2TP/IPSec リビジョンアップ まずは、ファームウェアを最新にリビジョンアップします。コンソール画面にログインし、詳細設定に進みます。 表示されるメニューの中から、[リビジョン

    YAMAHA NVR500 で L2TP/IPSec を使用したリモートアクセス VPN を利用する | DevelopersIO
    oppara
    oppara 2018/07/24
  • 「最近Androidを始めた同僚のソースをモダン化計画 」シリーズ開始 | DevelopersIO

    まえがき 普段はRubyGoを使っているサーバサイドエンジニアAndroidアプリを作りたいとのことで挑戦中。ある程度サンプルができたらしいので、ソースコードを見てみたいと言ってみたら、OKだったので混ぜてもらうことにした。 「なるほどね懐かしい気持ちでいっぱいになる良いコードだ!これはレビューのしがいがあるぞ!!」 レビューとか、PRを送って、モダン化していこうと思いました。せっかくだからレビューをブログ化しちゃえーっという思いから作ったシリーズ。あとで見返せるし、同じ悩みをもつ方がいるかもしれない。「それもう古いですよ。今ならこれですよ。」っというまさかり(新しい知見)もあるかもしれない。 もう僕は始めたばかりの気持ちがわからない。2.3系からAndroidアプリを作ってきたおじさん。初心者向けブログ書きたいけど、何につまずくのがわからないのだ。 前提条件 同僚について。 サーバー

    「最近Androidを始めた同僚のソースをモダン化計画 」シリーズ開始 | DevelopersIO
    oppara
    oppara 2018/07/23
  • VSCodeを使用してroot権限でデバッグ実行する | DevelopersIO

    1 はじめに VSCodeを使用したNode.jsのデバッグは、非常に快適です。ブレークボイントを置いたり、スタックや変数を確認しながらトレース実行できるのは、一回使い出したらやめられないでしょう。 しかし、あるニーズがあって、DNSプロキシーを書いていて、ちょっと詰まったのでメモです。 2 バインドエラー 最初に、下記のような、単純なUDPをListenするプログラムを書いて実行したのですが、bindに失敗していました。 const dgram = require('dgram'); const server = dgram.createSocket('udp4'); server.on('listening', () => { console.log('start listening.'); }); server.on('message', (buf, rinfo) => { cons

    VSCodeを使用してroot権限でデバッグ実行する | DevelopersIO
    oppara
    oppara 2018/07/23
  • run-lambda-via-sns-and-write-log-to-cwl

    こんにちは、カレーとRedbullが大好きな木田です。 システムからAWSSimple Notification Service (SNS)にメッセージをパブリッシュしていて、実際にSNSにメッセージが届いているのか確認したい、メッセージの内容を確認したいということがありそうです。 ただ、開発者各自がSNSトピックからEmailのサブスクリプションを作成して確認するなんて非効率ですよね。 そんなときはSNSにパブリッシュされたメッセージ内容をCloudWatchLogsに書き込んであげれば、開発者が各自サブスクリプションを作成しなくて良いし、いつでも確認できるので作業が効率的になりますよね! では、早速構築していきましょう。 作るもの IAMロール Lambda SNS CloudWatchLogs SNSトピックを作成する SNSサービス画面に遷移します。 トピックを作成する 「新しい

    run-lambda-via-sns-and-write-log-to-cwl
    oppara
    oppara 2018/07/23
  • [小ネタ] CloudFormationの組み込み関数を使った文字列操作の備忘録 | DevelopersIO

    はじめに こんにちは、モバイルアプリサービス部の田中孝明です。 元々はモバイルアプリエンジニアでしたが、最近ではサーバーレス開発部の案件に携わることも増え、 AWS SAM / AWS Cloud​Formationに触れる機会が増えました。 そんな中、「あれ、これどうやれば良かったんだろ」というような躓きがあったので、それらを備忘録として記しました。 今回は AWS Cloud​Formation の 組み込み関数 について書いていきたいと思います。 Conditions 特定の環境でのみ構築したい場合は AWS CloudFormationの条件 を使います。 以下は Env で与えられた環境名が development の時だけ、 DevelopmentStream を構築するテンプレートの例になります。 Parameters: Env: Type: String Condition

    [小ネタ] CloudFormationの組み込み関数を使った文字列操作の備忘録 | DevelopersIO
  • [iOS] ZXingObjCを使ってQRコードを読み取る | DevelopersIO

    はじめに こんにちは。モバイルアプリサービス部の平屋です。 記事では、ZXingObjCを使ってQRコードを読み取る実装を紹介します。 検証環境 macOS High Sierra 10.13.5 Xcode Version 9.4.1 iPhone X, iOS 11.4 ZXingObjC 3.2.2 導入 CocoaPodsやCarthageなどを使用して導入できます。 // Podfileの作成例 target 'QRReader' do pod 'ZXingObjC', '~> 3.2.2' end 実装 Info.plistにカメラの使用目的を追加する Info.plistにNSCameraUsageDescriptionと値(カメラの使用目的)を追加します。 <key>NSCameraUsageDescription</key> <string>QRコードを読み取るために使

    [iOS] ZXingObjCを使ってQRコードを読み取る | DevelopersIO
    oppara
    oppara 2018/07/20
  • iOS アプリのデバッグ術 ~値の出力と代入~ | DevelopersIO

    便利な 2 つの LLDB コマンド デバッグ時に覚えておくと便利な、以下 2 つのコマンドを紹介します。 po expression 知ってる人は知っている。知らない人は覚えてね。 記事はどちらかと言うと知らない人向けのシンプルなものです。 サンプルアプリ デバッグ用にこんなアプリを作ってみました。 class ViewController: UIViewController { @IBOutlet weak var label: UILabel! var isOk = false override func viewDidLoad() { super.viewDidLoad() judgment() } @IBAction func refresh(_ sender: Any) { judgment() } private func judgment() { let text = i

    iOS アプリのデバッグ術 ~値の出力と代入~ | DevelopersIO
    oppara
    oppara 2018/07/20
  • CloudFront+S3環境上のSPA(Angular)で「/」以外のURLでリロードした場合に403(access denied)エラーとなる時の対処法 | DevelopersIO

    どうも!大阪オフィスの西村祐二です。 SPAをホスティングする際にCloudFront+S3環境上にデプロイして、配信することはよくあるパターンと思います。 私もAngularでSPAを開発することがよくあります。初めてCloudFront+S3環境で配信したときに、「/」以外のURLでリロードした場合に403(access denied)エラーとなる現象に遭遇して、ハマってしまいました。今回この対応策をご紹介したいと思います。 エラーを再現 ハマった現象を再現するように環境を構築していきます。対応策を早く知りたいかたは下の対応策の項目まで飛ばして大丈夫です。 CloudFront+S3の環境構築 CloudFront+S3の環境は下記ブログにCloudFormationのテンプレートが記載されているので、それを使ってサクッと構築しましょう。感謝! CloudFormation で OAI

    CloudFront+S3環境上のSPA(Angular)で「/」以外のURLでリロードした場合に403(access denied)エラーとなる時の対処法 | DevelopersIO
    oppara
    oppara 2018/07/20
  • 【AWS認定資格】妻のAWS認定資格奮闘記 | DevelopersIO

    ご機嫌いかがでしょうか、豊崎です。 私ごとではございますが、夫婦揃ってAWS関連のお仕事をさせていただいております。 そんな中、先日AWS認定資格の「AWS 認定ソリューションアーキテクト – プロフェッショナル」を取得しました。 嬉しい限りです。これで夫婦揃ってプロフェッショナルレベルの有資格者です。 上記を取得したことでの持っている資格は以下の4冠になりました。・・まじかよ。 AWS 認定ソリューションアーキテクト – アソシエイト:2017/08 AWS 認定システムオペレーション (SysOps) アドミニストレーター – アソシエイト:2018/01 AWS 認定デベロッパー – アソシエイト:2018/03 AWS 認定ソリューションアーキテクト – プロフェッショナル: 2018/06 New! 5冠まであと「AWS 認定 DevOps エンジニア – プロフェッショナ

    【AWS認定資格】妻のAWS認定資格奮闘記 | DevelopersIO
    oppara
    oppara 2018/07/20