ジョギング
- 香椎浜 x 2 周
- 足にもすごく疲労が溜まっている感
日課
- (腕立て x 50 + 腹筋 x 50) x 3
奥さんが体調を崩す
- 夏バテかな〜
- 出来るだけ食べて, 夏バテに負けないように!
今日のるびぃ exercism 編 〜 gigasecond (1) 〜
ギョームで Ruby を触ることが無さすぎるので, exercism の問題を解くことにした.
概要
1,000,000,000 秒後を計算する.
テストコード
require 'minitest/autorun' require_relative 'gigasecond' # Common test data version: 1.0.0 61e7d70 class GigasecondTest < Minitest::Test def test_date_only_specification_of_time assert_equal Time.utc(2043, 1, 1, 1, 46, 40), Gigasecond.from(Time.utc(2011, 4, 25, 0, 0, 0)) end def test_second_test_for_date_only_specification_of_time assert_equal Time.utc(2009, 2, 19, 1, 46, 40), Gigasecond.from(Time.utc(1977, 6, 13, 0, 0, 0)) end def test_third_test_for_date_only_specification_of_time assert_equal Time.utc(1991, 3, 27, 1, 46, 40), Gigasecond.from(Time.utc(1959, 7, 19, 0, 0, 0)) end def test_full_time_specified assert_equal Time.utc(2046, 10, 2, 23, 46, 40), Gigasecond.from(Time.utc(2015, 1, 24, 22, 0, 0)) end def test_full_time_with_day_roll_over assert_equal Time.utc(2046, 10, 3, 1, 46, 39), Gigasecond.from(Time.utc(2015, 1, 24, 23, 59, 59)) end ... 略 ... def test_bookkeeping # skip assert_equal 6, BookKeeping::VERSION end end
実装
module BookKeeping VERSION = 6 end class Gigasecond class << self def from(t) t + 1_000_000_000 end end end
テスト実行
$ ruby gigasecond_test.rb Run options: --seed 9573 # Running: ...... Finished in 0.000849s, 7065.5483 runs/s, 7065.5483 assertions/s. 6 runs, 6 assertions, 0 failures, 0 errors, 0 skips
ひとまず, LGTM なのでサブミットする.
メモ
- 英語が読めないので, テストを走らせて概要をつかむことが重要
- テストを走らせたら, 意外に簡単だった (きっと, 単に問題が簡単なやつなんだろな)
今日の AWS ~ 責任分担セキュリティモデルと認証 ~
責任分担セキュリティモデル
- 利用者と AWS が協力してセキュリティを高める考え方
- サービス毎に責任範囲が異なる
- 例えば, EC2 のようなインフラストラクチャサービスについては, AWS の責任範囲としては, 物理ホストやストレージ, ネットワーク等のインフラストラクチャまでとなる
IAM
- AWS 内のユーザー管理, AWS リソースに対するアクセス制御を行うためのサービス
- 作成した IAM グループや IAM ユーザーにはデフォルトでは何の権限も与えられていない
- 権限を付与する場合には, 必要最低限の権限を割り当てるようにする
- 許可と拒否, 双方の IAM ポリシーを付与する場合, 拒否のポリシーが優先される
- IAM ロールの利用が推奨される
ID フェデレーション
- AWS サービスへの一時的な許可を与えることを ID フェデレーションと呼ぶ
- 一時的に認証情報を付与する STS (Security Token Service)
- SAML やシングルサインオン, 各種 ID プロバイダを使用したシングルサインオンにも対応している
以下は, ID ブローカーを使った, 一般的なフェデレーションの例.
- ユーザーが社内の ID ブローカーにアクセス
- ID ブローカーは AD や LDAP でユーザーを認証
- ID ブローカーが STS から一時的な認証を取得
- 一時的な認証情報を使って, ユーザーが S3 バケットにアクセス
AssumeRole
フムフム.