技術

terraformでAWSのIAMを定義する方法

ほぼほぼリファレンスそのまま terraformでAWS IAMを定義する terraformで定義できるAWS IAM関連のリソースは2020/05/05時点で23個ある そもそも全部を使ったことがないので、この記事ではアプリエンジニアの自分がAWSリソースのIAMを設定するときに、名前が…

おれのためのterraformの概念まとめ

仕事で時々terraformを書くんですが割と雰囲気で触ってるので自分の中で怪しい概念とかを勉強しなおしました 基本的には公式ドキュメントの翻訳メモです 英語のドキュメント読みながら書いたけどもしかしたらおれが探してないだけで日本語対応してるのかも T…

OAuth徹底入門の読書感想文 -9章-

OAuth徹底入門を読んだので感想と概要を書いていきます www.shoeisha.co.jp 8章については先日書きました zwzw.hatenablog.com 今回は9章についてです 9章 よく狙われる認可サーバーの脆弱性 認可サーバーはOAuthの構成要素の中でも最も複雑 ユーザーとのや…

OAuth徹底入門の読書感想文 -8章-

OAuth徹底入門を読んだので感想と概要を書いていきます www.shoeisha.co.jp 7章については先日書きました zwzw.hatenablog.com 8章 よく狙われる保護対象リソースの脆弱性 この章ではどのようにリソース・サーバーを保護し、OAuthの保護対象リソースを対象と…

VS Code Meetup #2 - Live Share編に参加してきた!

以前参加したVS Code Meetupの2回目が1/23にMicrosoftのオフィスで開催されたので参加してきました! 今回はMicrosoftでの開催でした 1回目の様子は下の記事で書きました zwzw.hatenablog.com VS CodeはGithubのossの中でで一番contributorの多いリポジトリ…

OAuth徹底入門の読書感想文 -5章-

OAuth徹底入門を読んだので感想と概要を書いていきます www.shoeisha.co.jp 4章については先日書きました zwzw.hatenablog.com シンプルなOAuthの認可サーバーの構築 3章でクライアントを、4章で保護対象リソースの実装をしましたが、5章では認可サーバーの…

Publishe / Subscribe Messagingとは

聞いたことはあるけど意味は知らなかったPublishe / Subscribe (pub / sub) Messagingについて調べました pub / sub messagingとはサーバーレスやマイクロサービスで用いられる、サーバー間の非同期通信の通信を行う方法 イベントドリブンな通知の送信などに…

OAuth徹底入門の読書感想文 -4章-

OAuth徹底入門を読んだので感想と概要を書いていきます www.shoeisha.co.jp 3章については昨日書きました zwzw.hatenablog.com シンプルなOAuthの保護対象リソースの構築 4章ではハンズオンの続きで、保護対象リソースを実装していきます もちろん読むだけで…

OAuth徹底入門の読書感想文 -3章-

OAuth徹底入門を読んだので感想と概要を書いていきます www.shoeisha.co.jp 前章については昨日書きました zwzw.hatenablog.com 3章 シンプルなOAuthクライアントの構築 3章ではハンズオン形式でOAuthを使用するクライアントを実装していきます と言ってもコ…

OAuth徹底入門の読書感想文 -2章-

OAuth徹底入門を読んだので感想と概要を書いていきます www.shoeisha.co.jp 1章の感想は昨日書きました zwzw.hatenablog.com 2章 OAuthダンス ~OAuthの構成要素間の相互作用~ OAuthは複雑なセキュリティ・プロトコルであり、様々な構成要素がまるで一緒に踊…

OAuth徹底入門の読書感想文 -1章-

OAuth徹底入門を呼んだので概要と感想を書いていきます 1 OAuth2.0とは何か?そしてなぜ気にかけるべきなのか? OAuth2.0とはAPIの権限移譲で用いられるプロトコル 例えば自分が写真保存サービスを利用しており、クラウド上に写真をあげているとする 今自分…

CSRFとは

Cross-Site Request Forgeries (CSRF)とはweb アプリケーションの脆弱性 通常のフローとしてサイトAからサイトBへのGET Requestが送信されるとする 攻撃者はサイトAからサイトBへGET Requestを送信するURLを掲示板などに貼り付ける ex. GET http://example.c…

workerとは

うちの会社はRailsでプロダクトを書いているのですが仕事中の会話の中で出てきて、 workerとresqueって違うのか?と思ったので調べました 結論からいうとまあ一緒です workerとはapplicationのリクエストサイクルの外で実行されるプロセスのことを言います r…

APIの開発とメンテを簡単にしてくれるSwaggerとは

tl;dr Web APIを公開しているサービスでは、開発者向けにドキュメントも公開する必要がある サービスが進化するのに合わせてAPIにも変更を加え、その都度ドキュメントも改修する必要があるが手作業でメンテナンスを行うのはコストがかかるし漏れが生じる可能…

電子証明書と電子署名

最近まで結構混同しがちで、違いがよくわかってなかったのでまとめました 電子証明書 証明書なので、サーバーの身元を証明してくれます >電子証明書は、インターネットや電子の世界で持ち主の情報を正しく証明する、現実世界におけるパスポートや印鑑証明書…

rspecでモックする

社内のrailsサービスの中で、社内オリジナルgem経由で別サービスのデータを取得してくる場所がありました #hoge_controller.rb user = User.first name = other_service_data.name other_service_dataは別サービスから取得しています rspecを実行するとこの…

公式ドキュメントアレルギーの直し方

エンジニアとして働き出してだいたい8ヶ月経ちました 最近ようやく技術的な部分で分からないことがあるとQiitaとかよりも先に公式ドキュメントを見るようになったと思います 入社直後の研修から「公式ドキュメントを読みましょう」みたいなことは言われてたん…

TCPとUDPとは

tl;dr TCPとUDPはどちらもトランスポート層のプロトコルの一種です TCPはデータを確実に届けるためのプロトコルでwebやメールなどで使用されます UDPはデータを速く届けるためのプロトコルでインターネット通話サービスや動画など、途中のデータが欠けても速…

3way ハンドシェイクとは

3way ハンドシェイクとはHTTPの下のレイヤーのプロトコルであるTCP/IPで用いられる通信開始前の情報交換です 名前の通り、クライアントとサーバーとの間で3回の通信が発生します 通信開始時 step1. クライアントからサーバーへ通信を開始することを伝える ま…

ルート認証局とは

今日も短め https通信にはSSL証明書必要が必要です ブラウザは今から通信をしようとしているサーバーからSSL証明書を取得します SSL証明書は認証局がその信頼性を保証するもので、認証局が発行します SSL証明書には発行者のデジタル署名がついており、ブラウ…

オレオレ証明書とは

短めです TLS通信を勉強した時にオレオレ証明書という言葉が出てきて、前にも聞いたことがあるけどよくわからんなと思ったので調べました センスを感じるネーミングだ オレオレ証明書とは自分で署名したSSL証明書のこと 普通証明書を作成する場合は以下の3st…

(おそらく)日本初のVSCode MeetUpに参加してきた!

12/18に株式会社オプティムで開催されたVS Code Meetup #1に参加してきました 最後に撮った全体写真、すごい人数だ 今までありそうでなかったVS CodeのMeetup VSCodeの変遷や基本機能を教えてもらえるSessionや、各々の使いこなし方を紹介するLTまで盛りだく…

HTTPとHTTPS

「http https 違い」とググると解説しているサイトがごまんと出てきますが自分の言葉で説明する為に書いておきます tl;dr httpではサーバーとブラウザの通信が暗号化されている。第三者から見える httpsではサーバーとブラウザの通信が暗号化されている。第…

Reactでstyleをinlineで書くときの注意点

tl;dr Reactでinlineでstyleを書く時 font-sizeなどpropertyの名前に - が含まれる場合 style={ font-size: "16px" } ↑は動きません style={ fontSize: "16px" } ↑は動きます 困っていたこと Reactで要素の中に直接styleを定義しようとしていました Titleと…

Faradayのmultipartの書き方

困っていたこと Faradayを使ってサーバーへfileをpostとしようとしていました ちなみにrequestを二回していているのはparameterがmultipart/form-dataで送信するものでなければ、application/x-www-form-urlencodedで送ってねという意味です This request mi…

VSCodeの基本機能全然使えてなかった

VSCodeをかなりなあなあで使ってました 普段開発ではVSCodeを使ってるんですが、会社のコードが基本的にはrailsなのでRuby mineが欲しいなあと思いました ただその前におれ全然VSCode使いこなせてる気がしないからきちんと勉強するかと思って基礎の基礎を勉…

JAWS-UG東京 マイベストモーメント re:Invent 2019に参加してきた

12/11に目黒のAWSのオフィスで開催されたJAWS-UG東京支部のイベントに参加してきました メインはもちろん先週まで開催されていたre:inventで発表されたアップデートの話です 印象に残った話を書いていきます Amazon RDS Proxy aws.amazon.com 今まではLambda…

RubyのTempfileの使い方、newとcreate

困ってたこと 下のコードでTempfileを作ろうとしていた readメソッドで読むと'bar'という文字列が入っていて欲しかったがファイルの中を見ると空になっていた file = Temfile.new('foo') do |f| f << 'bar' end file # => #<File:/var/folders//foo20191210-a8gjzw> file.read # => '' fileは存在し</file:/var/folders//foo20191210-a8gjzw>…

railsのpath名の決まり方

結論から言え! railsでroute.rbにresourcesを使ってrouteを生やすときにcollectもしくはmemberを使う場合、 path名にcreate new show update destroyのどれかを使うとpathの名前が狂う 困ったこと かなーりレアケースなのですがこの間、resourcesで定義して…

railsのparams permitすると変更できなくなる

結論から言え! railsのstrong parameterでpermitしたhashは変更できない railsのstrong parameter railsにはstrong parameterと言う機能があります 簡単に説明すると、明示的に許可したparameterのみobjectに渡す仕組みです railsを書いたことある方なら誰…