Kubestronaut ということになったので、コツとかのメモ
せっかく合格したので、受験の記録を残しておきます。(挨拶)
他の方のケースだと、元々 k8s を扱っている人が多かったようなので、そうじゃない畑の人の例となるかもしれません。

Kubestronaut って何
Kubestronautに認定されたので勉強方法など書いてく の記事がていねいにまとまっています。
お前誰
- Web サービスの会社でいろいろをやっています。https://speakerdeck.com/wa6sn がその一端です。過去に書いた 独学 CISSP 受験の記録 のほうが想像がつくかもしれません。
- 今回を機に k8s を初めて触りました。Kindle の履歴によると『入門 Kubernetes』を 2018 年に読んでいたようですが、事前知識としてはその程度です。
モチベーション
これまで k8s を触った経験が無かったので、なんとなく k8s をキャッチアップしておきたいな〜、と思っていました。
業務上ではセキュリティに関わることもあるので、Certified Kubernetes Security Specialist (CKS) というものがちょうど良さそうに見えました。しかし、CKS を受験する前提条件として CKA の取得が必要なことと、全試験の中で CKS がどうやら一番大変という前評判だったので、じゃあ全部やっとくか〜、という流れです。
スケジュール
| 試験名 | 受験日 | スコア(合格点) |
|---|---|---|
| KCNA | 2025/03/29 | 90(75) |
| CKAD | 2025/04/29 | 78(66) |
| CKA | 2025/05/06 | 94(66) |
| KCSA | 2025/06/29 | 81(75) |
| CKS | 2025/09/15 | 77(67) |
最初に試験システムの勝手を知るために KCNA を受けました。CKA + CKAD は主にゴールデンウィークにがんばりました。
KCSA と CKS は次のまとまった時間が取れそうなときでいいかな、と思っていたけど、ズルズル引き伸ばしそうだったので、とりあえず KCSA は受けておきました。結局ズルズル引き伸ばしたのちに CKS を受けました。かかった勉強時間はトータルで 200 〜 250 時間ぐらいだと思います。
各試験のコツとかやったこととか
CKA と CKAD
基本的に Udemy の有名なコース(CKA, CKAD)あるいは KodeKloud というサービスのコースに加え、試験を申し込んだときについてくる killer.sh という模擬試験をやれば問題ないと思います。
CKA と CKAD だけなら Udemy で良さそうですが、もし 5 試験分やるなら KodeKloud はかなりおすすめ出来ます。Udemy の有名なコースの講師の方の運営するサービスです。 Udemy は買い切りで KodeKloud はサブスクなんですが、Udemy は KodeKloud のコンテンツを切り出したものなので、"Udemy にしかないコンテンツ" はおそらくないです。 KodeKloud は 5 つの試験の学習コンテンツがすべて揃っているので、短期集中で取り組むならこっちのほうがリーズナブルなはずです。試験だけをターゲットにしているだけでもなさそうで、NetworkPolicy, Istio, Helm といった単位でもハンズオンコースがあります。
また、CKA の範囲が広く CKAD のほぼすべてもカバーすることから、CKA から取得することをよくおすすめされていますが、どっちを先にしてもいいと思います。自分の場合、CKAD を先に受験しました。試験範囲が狭い CKAD の方が対策しやすそうだったこと、あくまで CKS の前提条件は CKA であり CKAD ではないことが理由です。
試験がどうだったかはもうあまり覚えていないですが、CKAD の受験終了時点で kubectl の操作がおぼつかなくて時間が足りないことを実感して、焦って CKA の模擬試験を解き直していた記憶があります。おかげで CKA は完答して 100 点を期待しましたが、何かをやらかしておりそんなことはなかったです。
あと、合間に『つくって、壊して、直して学ぶ Kubernetes入門』を読みました。個人的には、これから k8s を学ぶ人が居たら一番最初にこれを読むことをオススメしたいぐらいには分かりやすいです。
KCNA
CKA or CKAD を勉強しているなら、追加の対策は必要ないと思います。CKA or CKAD の勉強をしたあと、実際に CKA or CKAD の試験を受ける前に、 試験システムに慣れることを目的に KCNA を受けてもいいと思います。試験システムに癖があるので……。
KCSA
あまり覚えていないです。k8s というよりは一般的なセキュリティの知識を求められることがあります。CKS の勉強のために KodeKloud を利用開始したところ、KCNA の模試もあったのでやりましたが、それぐらいです。KCNA も KCSA も四択問題で「知っているかどうか」以外の余地がないので、5 秒考えて分からなかったら適当に次、みたいなテンションでやっていました。
CKS
- 『リスクから学ぶ Kubernetesコンテナセキュリティ コンテナ開発者がおさえておくべき基礎知識』と『コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術』を読む
- KodeKloud の CKS コース
- killer.sh(模擬試験)
- Killercoda の CKS 用シナリオ
の順番でやりました。
『リスクから学ぶ Kubernetesコンテナセキュリティ コンテナ開発者がおさえておくべき基礎知識』は試験向けの勉強に疲れ気味だったので、気分転換のつもりで読みました。読みやすく、実際には CKS の試験範囲にも被っていて、最初の一歩としてかなり良かったです。
『コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術』も読みました。発売直後に一度読んだことがあり、当時は「ほぉ〜、よく知らないけどそんな概念があるのね」ぐらいの理解でしたが、今回を機に改めて読んだことでより理解が深まりました。
いずれの書籍もオススメです。日本語で読めることに感謝です。KodeKloud の CKS コースを一通りこなす頃には、模擬試験もそれなりに手応えを感じられました。模擬試験を解き直しをするほどでもなかったので、オマケで Killercoda をやりました。
他に有名な(?)リソースとして Youtube の Kubernetes CKS Full Course Theory + Practice + Browser Scenarios がありますが、体系的な情報は KodeKloud のコースで十分そうだったので、観ていません。
よく「CKS は CKA の数段難しい」と言われていますが、個人的には「数段」とまでの差は感じませんでした。 確かに新たなツールが複数登場したりはするものの、問題自体はそれほど複雑なものは出てきませんでした。ツールのドキュメントも読むか help オプションで確認すればいいので、「知らないので詰み」みたいなことも起こりづらい気がします。「これって k8s 関係なくない?」という問題もあったものの、その代わり Linux の基本的な知識があれば大丈夫な程度のものでした。なお自分が受けたときは 16 問中 1 問以外は完答したつもりで「楽勝やな!ガハハ!」というテンションで試験終了したんですが、実際のスコアは 77/100 だったので、何かをやらかしたようです。(「思ったより難しくないよ」の説得力が無くてワロタ)
よもやまと Tips
- 全ての試験に Retake がついています。一回落ちても大丈夫なので、多分行けるんじゃないかな、ぐらいのラインで受験していいと思います。一回分でいいからもうちょい安くてもいいのにね。
- Linux Foundation はしょっちゅうセールをやっているので、定価で購入する必要はないです。50% オフなら買いましょう、40% オフなら妥協ラインです。
- https://github.com/techiescamp/linux-foundation-coupon のような謎の(?)まとめもあります
- CKAD の試験中、特定の設問で日本語の問題文に明らかな不備がありました。英語に切り替えると正しそうな問題文になったので、英語の内容に準拠させて解きました。まさか他の設問も翻訳ミスはないだろうな…… と、全ての設問で日英文を読み比べたので、時間が足りなくなりました。合格していたから良かったものの、もし落ちていたらモチベーションがかなり下がっただろうなと思います。なお、試験後に即サポートチケットを起票し指摘したところ、75 % オフのクーポンを貰えました。件の問題はどのように採点されたかは分かりません。
- 「有効な試験環境」がどんなものか確認出来たら、再現が出来るように写真をとっておくといいです。試験は PSI Secure Browser というプラットフォームで行われます。プライベートな空間が必要で、机や壁に余計なものが存在することも許容されません。このあたりは Important Instructions: CKA and CKAD に要件が明記してあります。
- 自分は近所にあった、いいオフィス というレンタルスペースを利用しました。
- アクティブなモニタは一枚のみ利用可能ということで、私物の Macbook をクラムシェルモードで外部モニタにつなぐことにしました。その場合でも、机はきれいにしろというルールなので、Macbook は机に置けません。うまいこと収納する方法を考える必要があります。利用したレンタルスペースでは、モニタが壁掛け式だったので、モニタと壁掛け金具の間に乗せて収納しました。
- 試験前に不必要なプロセス等を終了しないといけません。自分の環境では Bluetooth も切らないとダメっぽかったので、普段使っている無線のマウスが使えませんでした。
- 最終的に持ち込みアイテムは以下になりました。ご参考ください。
おわりに
CKA を受けてから残りを後回ししてしまって、期間としては間延びしてしまったものの、試験自体はあっさり終わって良かったです。CKAD, CKA, CKS の中では CKA が一番学びが多かったし、面白かった気がします。CKS は受験者のバックグラウンドによってそこそこ学習コストに幅がありそうです。むしろセキュリティ畑の人の方が楽なのかもしれません。実技試験系は楽しいのでまたなんか別ジャンルのものをやりたいですね。
S3 の ListBuckets API のレスポンスの CreationDate は(その名前に反して)変更されうる
タイトルのまんまです(2024/11/08 時点の情報です)。意外な仕様!
どういうこと?
AWS アカウント内の S3 バケットを列挙したりするのに、aws s3api list-buckets のようなコマンドを利用することがあると思います。そのレスポンスに含まれる CreationDate は、実際の作成日時とは異なるものを返す場合があるようです。
ドキュメント list-buckets — AWS CLI 2.19.3 Command Reference いわく、
CreationDate -> (timestamp)
Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.
バケットへの変更(バケットポリシーの変更など)により、CreationDate の値は変更される可能性がある、とのこと。
具体的には、対象のバケットに変更を加えたうえで、us-east-1 でないサービスエンドポイントからコマンドを実行すると、実際の作成日時とは異なるものを返すようです。というわけで、実際のバケット作成日時を知りたいときは --region us-east-1 を指定しておく のが良さそうです。なお、マネジメントコンソールでは us-east-1 サービスエンドポイントから実行しているので、コンソール上で見るときは正しい値を見ているようです。
再現手順
creationdate-is-mutable という S3 バケットを作成し、適当なバケットポリシーを設定します。その前後で aws s3api list-buckets を実行して、CreationDate の変化を見てみます。
手元で試すときは、creationdate-is-mutable だとか 123456789012 は適当に変更してください。
CreationDate が変更されることの確認
// ap-northeast-1 にバケット作成 $ aws s3 mb s3://creationdate-is-mutable --region ap-northeast-1 make_bucket: creationdate-is-mutable // CreationDate は "2024-11-08T01:18:36+00:00" $ aws s3api list-buckets --query "Buckets[?Name=='creationdate-is-mutable']" --region ap-northeast-1 [ { "Name": "creationdate-is-mutable", "CreationDate": "2024-11-08T01:18:36+00:00" } ] // バケットポリシーを作成(なんでもいいです) $ echo '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:root" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::creationdate-is-mutable/*" } ] }' > example-policy.json // バケットポリシーを put $ aws s3api put-bucket-policy --bucket creationdate-is-mutable --policy file://example-policy.json // 再度、CreationDate を確認すると、"2024-11-08T01:18:36+00:00" …… ではなく、put した時間に更新されている! $ aws s3api list-buckets --query "Buckets[?Name=='creationdate-is-mutable']" --region ap-northeast-1 [ { "Name": "creationdate-is-mutable", "CreationDate": "2024-11-08T01:19:16+00:00" } ] // ポリシーを delete したりしても変更されていた $ aws s3api delete-bucket-policy --bucket creationdate-is-mutable $ aws s3api list-buckets --query "Buckets[?Name=='creationdate-is-mutable']" --region ap-northeast-1 [ { "Name": "creationdate-is-mutable", "CreationDate": "2024-11-08T01:20:04+00:00" } ]
us-east-1 サービスエンドポイントと、それ以外の挙動
みなさんご存知の通り S3 バケットの名前空間はグローバルに共有されています。creationdate-is-mutable バケットは ap-northeast-1 に作成したので、us-east-1 では作成できません。
$ aws s3 mb s3://creationdate-is-mutable --region us-east-1 make_bucket failed: s3://creationdate-is-mutable An error occurred (BucketAlreadyOwnedByYou) when calling the CreateBucket operation: Your previous request to create the named bucket succeeded and you already own it.
だから aws s3api list-buckets コマンドも、--region us-east-1 で実行しても --region ap-northeast-1 で実行しても、同じ結果が帰ってきてほしいですよね。あるいは正しいリージョンからの実行でないと返ってきてほしくない。しかし実際の挙動はというと、us-east-1 ではバケットの作成時刻 "2024-11-08T01:18:35+00:00" が返っていますが、その他のリージョンではバケットの最終更新時刻が返ってきています。
$ aws s3api list-buckets --query "Buckets[?Name=='creationdate-is-mutable']" --region us-east-1 [ { "Name": "creationdate-is-mutable", "CreationDate": "2024-11-08T01:18:35+00:00" } ] $ aws s3api list-buckets --query "Buckets[?Name=='creationdate-is-mutable']" --region ap-northeast-1 [ { "Name": "creationdate-is-mutable", "CreationDate": "2024-11-08T01:20:04+00:00" } ] $ aws s3api list-buckets --query "Buckets[?Name=='creationdate-is-mutable']" --region ca-central-1 [ { "Name": "creationdate-is-mutable", "CreationDate": "2024-11-08T01:20:04+00:00" } ]
余談
大量の S3 バケットを棚卸しすべく ListBuckets API を利用するスクリプトを組んでいたところ、そのレスポンスの CreationDate と、Management Console 上の「作成日時」の表記が異なることに気づいて調べました。(AWS サポートさんにも確認 & フィードバック済みです。)そんな仕様だったとは……、ハマる人居そうだな〜、と調べていたところ、まさにこの仕様の裏側を説明するような Issue が出てきました。
All bucket creations are mastered in us-east-1, then replicated on a global scale - the resulting difference is that there are no "replication" events to the us-east-1 region. The Date Created field displayed in the web console is according to the actual creation date registered in us-east-1, while the AWS CLI and SDKs will display the creation date depending on the specified region (or the default region set in your configuration).
When using an endpoint other than us-east-1, the CreationDate you receive is actually the last modified time according to the bucket's last replication time in this region. This date can change when making changes to your bucket, such as editing its bucket policy. This experienced behavior is result of how S3's architecture has been designed and implemented, making it difficult to change without affecting customers that already expect this behavior.
なるほどな〜。しかし S3 という歴史あるサービスだし、知っている人は知っているもんなんだろうか。面白いですね。
何かを始めたいときのとっかかりに Kindle Unlimited が便利
タイトルのまんまです。そんな雑談をしました。
移り気な性格なので、唐突に何か新しい趣味を始めたくなることがあります。昨今ではインターネットで調べたり、ChatGPT に壁打ちすることで足りることも多いですが、何も知らない状態だとやはり、体系的に情報が揃っている書籍がちょうど良いです。
特に自分の場合、易しめの書籍を 3-5 冊程度眺めてみて、AND をとるなりして要領を得ることを試みることが多いです。そういった時に Kindle Unlimited が便利です。Kindle Unlimited は同時にストック出来る冊数にこそ上限が設定されているものの、一定期間に借りられる冊数には制限はありません。(あくまで同時に借りられないだけで、読まなくなった本の利用を終了すれば OK ということです。参考: Kindle Unlimited について)
例えばカメラに入門したくなったとします。少し古めの本もありますが、基本はそう変わらないはずなので、レビューを見つつ適当に見繕います。合わなければすぐ返却出来ますし。
"カメラ 入門" の Kindle Unlimited での検索結果

どこかに旅行したいので、ガイドブックを読みたいといった場合でも便利です。水物な内容の本は読み終わったら処分しがちなので、気軽に利用できるのはありがたいサービスです。
"台湾" の Kindle Unlimited での検索結果

この使い方をするまでは、中古本を漁ったり近所の図書館を利用することもあったのですが、やはり物理的な制約が無いのは強みで、時間と費用が節約できてとてもありがたいです。
ぶっちゃけ Kindle Unlimited のコンテンツ自体は玉石混交で、読みたい本ばかりというわけでもないし、直近は AI 生成のコンテンツが検索ノイズになったりと厳しい点もあります。でも、まずはざっくり全体観をつかむために流し読みをする、という距離での自分のユースケースでは、これで十分便利だなと思っています。
「開発者向けの MySQL 入門」という勉強会をしました
今、自分が所属している会社では、いわゆるフルサイクルなアプリケーションエンジニアがほとんどで、SRE のような、システムを運用改善することを専門にするメンバーは居ません。一方でそれなりにプロダクトの数は多く、各種ミドルウェアの運用で困っているのを見かけることがあります。
色々な人が似た問題に悩むのはもったいないので、「MySQL を運用したことがある人からすると、こういう考え方をする」という風な目線で勉強会を行いました。せっかくなので社内の情報を抜いたうえで公開します(同じようなことを色々な場所で言っていて、その都度作り直しているから……というのもあります)。
ちなみに DB のどこで悩むかはだいぶ業界ドメインに左右されると思っています(それはそう)。ゲーム業界なんかは、激しくスパイクするワークロードな上にミスったときの機会損失が激しいので、シャーディングをしたいし、出来るだけインフラコストを下げつつ運用したいというのが関心事でしょう。なんなら DBA が居ますよね。しかしうちはそうではなく、規模自体は小〜中規模程度なので、「片手間でなんとか運用するには」という助けになればと思って書きました。あと EXPLAIN の読み方なんかはいくらでも良い資料が見つかるので書いていません。
間違っているところ等あればこっそり教えていただけるとありがたいです。
独学 CISSP 受験の記録
せっかく合格したので、受験の記録を残しておきます。
モチベーション
最近、会社で AWS 環境のマネジメント・ガバナンス強化に取り組んでいます。具体的には Organizations, IAM Identity Center, CloudTrail, Config, Control Tower, Security Hub といったサービスを触って、多数ある AWS アカウントのセキュリティのベースラインを引き上げようとしています。
セキュリティを専門とする方が居れば良いのですが、残念ながら今のところ会社には居ません。代わりの実務者としてちょうどいいポジションに居るのが自分なのですが、自分がやるにしても、基本を外さないように体系的に知識を身に着けたいし、せっかくなら「この人はちゃんと勉強しているんだな」という客観的な証明も欲しいです(いつか来る転職活動でも使えるかもしれないし)。
そこで、セキュリティエンジニアの求人でもよく見る CISSP 試験を受けてみることにしました。https://cybersecurity-jp.com/column/21726 や、類似の記事を見る限り、そこそこ難しい試験に位置しているようなので、良い目標になるかなとも思ってのトライです。
お前誰
- 200 人ぐらいの規模の事業会社に居る、0x20 未満の自称インフラエンジニアです。
- オンプレ・クラウド共に経験しています
- 簡単な Web アプリケーションなら書けます
- 目安になりそうな資格を挙げると、IPA はセキュスペ・デスペ、AWS の試験は SAP on AWS 以外の全て、GCP の試験は PCA, PDE を取得しています。
- 目標を決めて計画的に走るのは多分得意なほうです、というアピール(?)です
勉強した期間
期間は 3 週間程度です。平均して平日は 2 時間, 休日は 6 時間ほど充てました。合計すると 80 時間ぐらいでしょうか。ゼルダの伝説の新作をずっと我慢しながら勉強していました
試験対策の流れ
ドメインガイドブックを読んで試験範囲を確認し、参考書で内容を理解し、問題集でアセスメントするという王道パターンです。
0. 情報収集
いずれも、勉強を始めたころに読み込みました。勉強のペースを掴むうえで、めちゃくちゃ参考になりました。「試験そのものについて語ることが出来ない」CISSP の試験の特性上、どれぐらいやれば合格できるかはおぼろげなので、こうした記録は落ち着いて受験するためにも大事でした。この記録もまた、自分と似た背景の人の役に゙立てばいいと思って書いています。
- https://shinobe179.hatenablog.com/entry/2022/09/07/001617
- https://encry1024.hateblo.jp/entry/2022/10/23/125809
- https://muchipopo.com/it/cissp/
- https://yawaraka-sec.com/cissp/
- https://qiita.com/kau/items/913184212c571943cc92
- https://qiita.com/mrpepper/items/4194402002765b8abd53
1. 公式問題集(日本語版) の模擬問題をやる
自分の位置を測るために、まずは公式問題集の模擬問題 1 をやってみたところ、初回で 7 割少々の得点率でした。
アメリカの法律のような CISSP でないと中々触れないような(?)設問はともかく、技術的な設問に関してはさほど難しくないように感じたので、案外スタートラインは前の方にありそうと判断し、そのまま試験日を設定しました。
一度落ちても再受験できるキャンペーンがあり、金額的にさすがに落ちるとショックなのでこれを利用しました。もともとの受験料からして高いのにね……
その代わり、試験は 3 週間後と(自分にしては)やや早めに設定しました。「CISSP は試験勉強があんまり役に立たない」という言葉を目にしたことがあり、仮にそうであれば作戦を練り直せるので、その意味でも早く受けたほうが良いかなと思ったからです。
2. ドメインガイドブックを確認する
https://japan.isc2.org/files/CISSP_DomainGuide2022.pdf です。何が出題されるのかが分かっていないと不安で仕方ないので、あらためて一通り確認しました。
3. Eleventh Hour CISSP®: Study Guide を読む
全体像を掴むため、参考書に 『Eleventh Hour CISSP®: Study Guide』 なる書籍を利用しました。日本語版の公式ガイドと迷いましたが、どちらも 2021 年の改定前のものですし、軽量なものの方が挫折しにくいかなと思ってこちらを選びました。 休日 2 日を使って一気に読みました。よくまとまっていると思います。でも後述する Youtube のビデオも同じぐらいよく出来ているので、ここはスキップしても良かったかもしれません。
4. 公式問題集(日本語版) を解く
『CISSP 公式問題集』が今回の主力です。2 周しました。1 周目は 1 日 1 ドメインを目安に、間違ったものは復習することのほか、正解した設問もなぜ他の選択肢が不正解なのか理解できるように調べることを徹底しました。各ドメインは 65%-80% ぐらいの得点率でした。
2 周目は間違った問題だけ復習するようにして、1 日 2-3 ドメインを目標にサクサク進めました。得点率は 9 割ぐらいでしたが、解答とセットで暗記してしまっている気があったので、これぐらいでちょうど良い気がします。
5. その他、ためになったもの
tex2e さんの勉強ノート
https://tex2e.github.io/blog/security/cissp-notes
神です。日本人の CISSP 受験者の勉強効率を大幅に引き上げているといっても過言ではないと思います。印刷して手元に置き、試験当日までスキマ時間に読み返すなどしました。
Pete Zerger さんという方の Youtube ビデオ
https://www.youtube.com/watch?v=_nyZhYnCNLA
英語のリスニング能力に自信が無かったので、概要欄からダウンロードできる投影資料を流し見しただけですが、各ドメインのおさらいにちょうど良かったです。かうさんの勉強会 Discord から知りました。
かうさんの勉強会 Discord
https://qiita.com/kau/items/913184212c571943cc92#%E5%8B%89%E5%BC%B7%E4%BC%9A
CISSP 受験者の集う Discord です。なんだかんだで時間が合わず、勉強会には一度も参加していない実質 ROM 専ユーザなのですが、「他にも勉強している人がいる」という励みになりました。
6. 試験当日
西新宿の試験会場で受験しました。
試験時間は 6 時間と設定されてますが、2 時間 30 分ほどで終わりました。途中で休憩するためにお茶などを用意していたものの、むしろ途中で休憩を挟むことで集中が途切れそうだったので、一気に解きました。「ま、再受験できるバウチャーあるから…… 今回落ちてもまた受ければいいから……」と気楽に構えていました。
終了と同時に合格の旨が印刷された紙を渡され、一安心しました。
その他、感想など
SRE らしいバックグラウンドがある場合、想像よりも取得のハードルは低いと思います。多少コードが書けてインフラも組めるのであれば、全体の半分ほどを占める技術系のドメインの勉強には苦労しないと思います。
あっさり合格しているように見えますが、もともと(セキュリティに限らず)雑食的に技術書を読むので、そうした積み重ねがあったからな気はします。例として、直近半年ぐらいに読んだ、この試験に関連しそうなものを挙げます。どれも今回の試験に役立っています。
実務として、まれにセキュリティチェックシートの記入を求められる(正確には自分が記入するわけではなく、記入する人から「この質問、どういうことだと思います?」と聞かれる)ことがあり、セキュリティチェックシートってどういう由来でこんな項目があるんだろうねー、と考え調べたこともあります。AWS Config などを触り、"CIS Benchmarks" や "Control" といったドメイン 1 っぽい用語の定義、考え方に慣れていたのもプラスでした。あれ、結構やってるな……。
総じて勉強は楽しかったです。基礎となる考え方に触れられたことが良かったです。試験前日に https://japan.isc2.org/files/CISSP_DomainGuide2022.pdf を再読しましたが、「CISSP CBK を理解するためのエッセンス」の項に書かれていることが理解できたので「本当にそう!ぼくもそう思います!」となりました。
セキュリティエンジニアの方がどのように日々の鍛錬(?)を行っているかの解像度も上がりました。次は脆弱性診断で利用される Burp Suite や OWASP ZAP のようなツールの理解や、Hack the Box などをやってみようかなと思います。
セキュリティエンジニア、募集しています!
Aliexpress で買った電子ペーパーを雑に動かす
この記事を見て、電子ペーパーめっちゃカッコいいな!と思ったのと、クローンを自作することが出来そうだったので衝動的に Aliexpress で諸々を購入した。とりあえず今は、bmp ファイルを無事に表示できることを確認したところ。
電子ペーパーの挙動ほんとかっこいいのでしばらく見ていられる pic.twitter.com/A39PYRvEuG
— わらしな (@wrsn0) 2021年5月20日
買ったもの
3色の電子ペーパーモジュール GDEH042Z21
- 4.2 Inch Color e Paper Display With Adapter Board e Ink screen|Industrial Computer & Accessories| - AliExpress
- 赤黒白の3色, 4.2 inch, 400*300
- ディスプレイを制御するためのモジュール DESPI-C02 もセットで、送料合わせて $30 程度。国内で買うよりも明らかにお得。
- 価格は概ねディスプレイの面積に比例していて、800*480 だと $64 ぐらいのお値段。
Raspberry Pi Pico
- RP2040マイコンボード ラズベリーパイピコ / Raspberry Pi Pico
- 電子ペーパーの発送待ちの最中に Raspberry Pi Picoと電子ペーパーの使い方 – スイッチサイエンス マガジン を見かけて、電子ペーパーの挙動を理解するまでのハードルが低そうなので、ついでに購入した。
- 550円。
- 後で Raspberry Pi Zero W に載せ替えようと思う。 Pico は Wifi も BT も装備してないし。
電子ペーパーの種類が混沌としていてよく分からない
この電子ペーパーを動かす際、 RES スイッチをどちらにするか(3Ω or 0.47Ω)と、ドライバを調べる必要があった。まず前者だけど、データシートの Reference circuit の RESE に書いてある。GDEH042Z21 の場合 0.47Ω のようだ。
ドライバは面倒だった。というか未だにスッキリしていなくて「動いているからヨシ!」な状態。今の所、こちらのライブラリを使っている。
- GitHub - adafruit/Adafruit_CircuitPython_IL0398: CircuitPython displayio drivers for IL0398 based ePaper displays
- Releases から mpy も入手できる
様々なラインナップの電子ペーパーモジュールに対して、統一されたドライバがあるわけではなく、モジュールごとにドライバ(もとい IC )が異なっている。今回購入した GDEH042Z21 は UC8276 という IC を使っているけど、CircuitPython のドライバはない。300*400 で tri-color で 4.2 インチ のもの…… となると IL0398 なるものが見つかり、試しに書き込んでみたら動いてしまった。本当はちゃんとデータシートと命令セットを読まないといけないけど……。
- https://v4.cecdn.yun300.cn/100001_1909185148/How%20to%20Choose%20EPD-02.pdf
- https://github.com/adafruit?q=circuitpython+displayio+driver&type=&language=&sort=
また、Aliexpress で電子ペーパーを選ぶ際、GooDisplay というメーカーと Waveshare というメーカーが人気のようだった。後々両者のデータシートを見比べてみると、パッと見中身は同じに見える。なぜだろう……。OEM 的な何かなのかな。
続・M5StickC Plus / 環境もろもろ測定デバイスを作った
何?
環境もろもろ測定デバイスを作りました。温度・湿度・気圧・二酸化炭素濃度を測定します。ついでに Ambient というサービスにデータを送信して、グラフ化しています。
デバイスの見た目はこんな感じ。
CO2など環境もろもろ測定デバイス、見た目それっぽくなった。グラフは適当だけど… pic.twitter.com/luQkZwF1JW
— わらしな (@wa6sn) 2021年5月13日
グラフの見た目はこんな感じ。

材料
- M5StickC Plus: https://akizukidenshi.com/catalog/g/gM-16011/
- MH-Z19C: https://akizukidenshi.com/catalog/g/gM-16142/
- むき出しの見た目が気になる場合、M5StickC/Plus用「Co2 HAT(ソケット版)」キット(※Co2センサ別売り) - きっと何かに役立つでしょ!? - BOOTH をオススメ。
- M5Stack用環境センサユニット ver.2(ENV II): https://www.switch-science.com/catalog/6344/
ソースコード
ssid, password, channelId, writeKey を書き換えたら動くはず。利用しているライブラリのうち、以下は Library manager からではなく github 経由で利用しました。(M5Stack のライブラリ周りの乱立、もっとどうにかならんのか……)。
- GitHub - nara256/mhz19_uart
- M5-ProductExampleCodes/Unit/ENVII/Arduino/ENVII at master · m5stack/M5-ProductExampleCodes · GitHub
Ambient とは
IoT データの可視化サービス。チャネルと呼ばれるデータの管理単位を作る・マイコンに送信用のコードを3行ぐらい書く だけでグラフが生成されるので、使い始めるハードルが非常に低く、プロトタイピングに便利。無料ユーザでも十分なチャネルを生成できるし、データも1年間保存される。エンドデバイスからのデータ受信監視機能や、アラート機能は有料ユーザ向けになっている。 色々書くよりも、チュートリアルを見たほうが手っ取り早いので、使い方については割愛します。
その他の感想
- M5Stack Core2 や M5StickC Plus 等、現行のデバイスの組み込みの Wifi は 2.4GHz 帯にのみ対応している。5GHz のほうに接続しようとして出来なくて、少し焦った
- Ambient 簡単すぎてすごい
- 実は手元に ENV II Hat, ブレイクアウトボードの BMP280, Yun Hat があり、手元に合計4つの BMP280 がある(???)。ただいずれも微妙にセンサの個体差があり、特に湿度では ±5% ぐらいの差があった。補正したいところだけど、お手本にしたい計器がないので、特にやってない
- 「1000ppm を超えるとブザーを鳴らす」というのも簡単に作れるけど、やらなかった。部屋を締め切って寝るときなど、ブザーを鳴らされたくないときがあるし、デバイス側にその仕組をもたせるとそのへんの機微を調整しづらいため。