ようへいの日々精進XP

よかろうもん

2018 年 08 月 07 日 (火)

ジョギング

  • 香椎浜 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 フェデレーション

以下は, ID ブローカーを使った, 一般的なフェデレーションの例.

  1. ユーザーが社内の ID ブローカーにアクセス
  2. ID ブローカーは AD や LDAP でユーザーを認証
  3. ID ブローカーが STS から一時的な認証を取得
  4. 一時的な認証情報を使って, ユーザーが S3 バケットにアクセス

AssumeRole

フムフム.