ググって出てきたCognito UserPoolのベストプラクティスを雑にまとめる
(このブログは、 #技術書典7 で出展する「Cognito屋さん/ Cognito ユーザー移行入門(仮)」の下調べのために書いてます.)
タイトル通り、ググって出てきたCognito UserPoolのベストプラクティスを雑にまとめていきます。
Security / Best Practice for poolData (UserPoolId, ClientId) in a browser JS app
UserPoolIDとClientIDは、JSのコード内で公開していいの?という質問。
スレッドにある通り、これらの値は unauthenticated APIs
のリクエストにしか使われないので大丈夫。
Cognito user pools, in my experience, are terrible to work with
ベストプラクティスじゃないけど...Cognito使うのしんどいよね、って話。
いっそ新しいサービス出したらいいんじゃない?って指摘には私も同意。
Cognito is a flawed product that should become redundant. AWS should either build a new service with a new name or build a backwards incompatible Cognito 2.0.
[レポート] サーバーレスアーキテクチャのデザインパターンとベストプラクティス! #reinvent #ARC305
たしかに、Cognito使いたい人ってAPI Gatewayを認証付きで提供したい人だよね。
1.一時的なAWS認証 or 2.UserPoolのトークン or 3.Lambdaオーソライザー。特に 1.と2. は混同しやすいのでは?
HOW TO USE NEW ADVANCED SECURITY FEATURES FOR AMAZON COGNITO USER POOLS
せっかくだしMFAもちょっと触ってから本を書いたほうがいい気がしてきた
SaaS Identity and Isolation with Amazon Cognito on the AWS Cloud
弊社(justInCase)のアーキテクチャじゃんこれ!!!知らずしてここにたどり着いたんだなあ...
CloudMapを使ってるとこだけが違う。
Are email addresses supposed to be case-sensitive?
https://forums.aws.amazon.com/forum.jspa?forumID=173&start=0
そうそう、メアドが大文字小文字違いで登録できちゃうんだよね。
「あとで読む」を読む - 2019-06-23
難民をテック人材へ、3団体協働のもと日本初「難民プログラミング道場」が今秋スタート | LoveTechMedia - ラブテックメディア - Part 2
ドイツに「ReDI School」という同じスタイルのプログラミングスクールがあるらしい。
素敵な取り組みだな、と思ってたらWELgeeってASACで名前見たことあるな。
プログラミング教室もパソコンの貸与も、他の団体と協力してやってる、ってのが素敵だなって思った。
speakerdeck.com
WebAuthnについて概略をつかめた。
OAuthがクライアントから認可を分離したように、WebAuthnは認可サーバーから認証を分離した、って表現は正しいかな...?
ちょっと思ったのは、もし人間の脳みそが超ハイスペックに拡張されていたら、サービスごとの秘密鍵を暗記&署名を暗算できるようになり、結果この仕組もいらないのかな?
自分で考えて、責任を持って、実施までできる、という立場がスタートアップ。 良い表現...。
blog.cybozu.io カスタムリソースを考慮したことがなかったけどかなり便利かも。なんならCloudWatch LogsのSubscriptionをLambdaに後から追加する、とかもCDKじゃなくてこっちでOKでは?
その他
「あとで読む」を読む5選@2019-06-13
rfushimi.hatenablog.jp
「マネジメントになるのは昇進ではない」ほんとそれ。
一方で、経営者から評価されやすいのはやっぱりマネージャーじゃないの?対面にいるんだもの。そしたらお給料も自然と高くなってしまわない?
aws.amazon.com
・API Gatewayの認証タイプや統合タイプについて一番わかり易い資料
・WebSocketのAPIを一度作ってみたいので、これを使ってなにか作るかもしれない
・AWSサービスのAPI化って実はやったことない。ミニマムにサービスを作るときに便利そう
www.haconiwa-mag.com たしかにグレーのビニール傘はオシャレで使いたくなる。
devmart.jp
売れてるのかな?と思って過去の出品を見たらたしかに売れているものもある。
これは面白いな...!
「あとで読む」を読む @ 2019-06-03
フォトグラメトリで小笠原
スマホの複数の写真とWindowsの専用ソフトでできるらしい。朝に行った海岸の写真をフォトグラメトリしてVRCで入ってみました🐾🏖 pic.twitter.com/mnGbRDMwaW
— お休みさん🌑 (@0yasum13) June 2, 2019
React Nativeのテストライブラリ選定
tech.kitchhike.com
* グレーボックステストって初めて聞いたけど、要はブラックボックステストを、内部仕様に基づいて改良したものだと思えば良さそうだ。
* avaって初めて聞いた!いつもmochaばっかり使ってるから、次は使ってみようかしら。
Lambda LayersをCIでキャッシュした取り組み
dev.classmethod.jp * そもそもLamdba Layersについてようやくキャッチアップ。要するに、Lambdaの特定のパスに展開するオブジェクトを別途指定できるようだ。
微妙エンジニア
tkot.hatenablog.com "最新のサービスを使うことしか頭にない" サーセン!!!!!コスパもっと意識していこう
コンテナ運用のおすすめの方法
cloud.google.com
* 便利なエンドポイントをどんどん生やそう!(メトリクスとかヘルスチェックとか)
* WebPageを作るときにも、本番ページにテスト用のページを追加しておいて、デバッグ時はそこにアクセスしてもらう、とか聞いたことがある。APIサーバーでも同じことか。
あなたの知らない詐欺グラフの世界
note.mu * 棒グラフとはその面積で意味をもたせるグラフです
SAMを通してCodeDeploy
dev.classmethod.jp 本格的なCIの構築ができる!というより、SAMだけでパッとCIまで構築できる!というのが強みと見た。
任意聴取の隠し撮り音声
* 2019年から取り調べの可視化が義務付けられるのをそもそも知らなかった * その対象が重大事件のみ、かつ強制捜査?に限られるのも知らなかった * 全部録音しろよ...「法律に引っかかってんだよ」「おまえがどう思おうが関係ねえんだよ」「反省しろよって言ってんの」
— 青木美希 (@aokiaoki1111) May 31, 2019
取り調べで執拗に言う警察官。納得しきれなかった男性は弁護士に相談し、正式な裁判を請求、横浜地裁は男性を無罪としました。
サイトでやりとりの音声を聞けます。 https://t.co/DbRh7SJEsU
Web系エンジニア
ogihara-ryo.github.io 私の身の回りは、働き方の自由さより、将来起業する上でエンジニア通っておこう、って人が多い気がする。
さわらが「あとで読む」を読んだブログ @2019-05-29
三菱UFJ銀行がIDaaS始める
リアルOAuth2.0じゃん。かっこい〜
ちなみに金融系サービスの本人確認のことをKYC(Know Your Customer)っていうらしい
セッションとトークンの違い
- セッションはID、トークンはJSON。だからトークンのほうが情報量が多い。
- セッションを使う場合はサーバー側にセッション情報を持つ。トークンの場合は持たない...これって本質的な違いじゃなくない?トークンでもアプリ側でステート持ち始めたら同じでしょ?
量子コンピューターのアルゴリズムの話
量子コンピューターってまだ実用化はされてないよね?と思ったら、文中に書いてあって納得した、
これは、「実用的な量子コンピュータができたとしたら」という仮定に基づいた、とても数学的で抽象的な分野の研究です。今はまだ理論のみに留まっていますが、やがて量子コンピュータのハードウェアが実現し、この研究が目に見える形で役立つ日がやってくることを期待しています。
Yahoo!Japanはオンプレなのでk8sが大変ありがたいらしい
- スライド可愛くない?
- コンテナオーケストレーションツール、SwarmとMesosがk8sと同じポジションのソフトウェアなのね。理解
AWSの3Dインフラマップ
infrastructure.aws ぬるぬる動いて楽しい!!!
クラメソさんのサーバレス開発部の知見
speakerdeck.com パラメータストアの使い方勉強になる
k8s関連ツールをAWSでいい感じに使う kops編
aws.amazon.com いろんなツールがあるんだね。そのうちお世話になります。
AWS Innovate なんてあったの!?今知った悔しい
dev.classmethod.jp よさげなアーキテクチャの資料をまるっともらえるだけで羨ましい
オーストラリア初のゲーム、Necrobarista
www.4gamer.net ピングドラムっぽいなと一瞬だけ思った
Karate入門
qiita.com もともとRubyでCucumberっていうE2Eテストツールがあって、それのJava実装プラスアルファ、DSLで書けるのが特徴、と。
浅田真央選手のインタビュー
www.asahi.com この人も僕の2コ上だ。こんな大変そうだって思わなかった、本とか読んでみようかな。
macOSにHomebrewでgcloudコマンドをインストールしたらタブ補完が効かなかった時のメモ
TL;DR
こちらのQiita記事を参考にしました。
(記事中にタブ補完について言及がなかったので私もブログを書いている次第です)
qiita.com
解説
brew
ないし brew cask
では、インストールしたパッケージについての情報を参照するコマンドがあります。
例えば awscli
だと...
$ brew info awscli awscli: stable 1.16.130 (bottled), HEAD Official Amazon AWS command-line interface https://aws.amazon.com/cli/ /usr/local/Cellar/awscli/1.16.130 (5,272 files, 49MB) * Poured from bottle on 2019-04-05 at 18:05:00 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/awscli.rb ==> Dependencies Required: python ✔ ==> Options --HEAD Install HEAD version ==> Caveats The "examples" directory has been installed to: /usr/local/share/awscli/examples Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions and functions have been installed to: /usr/local/share/zsh/site-functions ==> Analytics install: 51,155 (30 days), 172,572 (90 days), 663,663 (365 days) install_on_request: 48,269 (30 days), 161,871 (90 days), 601,401 (365 days) build_error: 0 (30 days)
Caveats
(ユーザーへの要求)として、いくつか項目があげられるのがわかると思います。
したがって、 gcloud
( google-cloud-sdk
)のinfoを参照すると...
brew cask info google-cloud-sdk google-cloud-sdk: latest https://cloud.google.com/sdk/ /usr/local/Caskroom/google-cloud-sdk/latest (20,446 files, 281.3MB) From: https://github.com/Homebrew/homebrew-cask/blob/master/Casks/google-cloud-sdk.rb ==> Name Google Cloud SDK ==> Artifacts google-cloud-sdk/install.sh (Installer) google-cloud-sdk/bin/bq (Binary) google-cloud-sdk/bin/docker-credential-gcloud (Binary) google-cloud-sdk/bin/gcloud (Binary) google-cloud-sdk/bin/git-credential-gcloud.sh (Binary) google-cloud-sdk/bin/gsutil (Binary) ==> Caveats google-cloud-sdk is installed at /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk. Add your profile: for bash users source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.bash.inc' source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.bash.inc' for zsh users source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc' source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc'
あとは Conveats
の記述に従って .bashrc
(タブ補完は対話実行に関わる設定だから .bash_profile
じゃなくて.bashc
ですね。毎回迷う。)を設定すればOKです。
...なんで awscli
は brew
なのに、 gcloud
は brew cask
なんだろう...?
BitBucketの"Please make sure you have the correct access rights and the repository exists." と戦うのをやめてHTTPS接続にした
以下のエラーに対してトラブルシューティングを試みたのですが、どうもうまくいかないのでSSH接続を諦めました。
$ git pull fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
やったこと
1. ssh接続の確認
ssh -v git@bitbucket.org ~~~ You can use git or hg to connect to Bitbucket. Shell access is disabled. debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: channel 0: free: client-session, nchannels 1 Connection to bitbucket.org closed. Transferred: sent 2988, received 1860 bytes, in 0.4 seconds Bytes per second: sent 7712.1, received 4800.7 debug1: Exit status 0
2. remoteのurl の形式の確認
× git@bitbucket.org:{USER_NAME}/{REPOSITORY_NAME}.git × ssh://git@bitbucket.org/{USER_NAME}/{REPOSITORY_NAME}.git
どうにもならなかったので
素直にHTTPS接続にしました。
git remote remove origin git remote add origin https://{USER_NAME}@bitbucket.org/{USER_NAME}/{REPOSITORY_NAME}.git git fetch
悔しい...!