miam 0.2.3.beta: カスタムManagedPolicyサポート

某カンファレンスの裏側で、ひっそりとIAM管理ツールmiamv0.2.3.betaをリリースしました。

github.com

「対応しないと」と思いつつ対応できていなかったカスタムManagedPolicyをサポートしました。

managed_policy "my-policy", :path=>"/" do
  {"Version"=>"2012-10-17",
   "Statement"=>
    [{"Effect"=>"Allow", "Action"=>"directconnect:Describe*", "Resource"=>"*"}]}
end

user "bob", :path => "/developer/" do
  login_profile :password_reset_required=>true

  groups(
    "Admin"
  )

  policy "bob-policy" do
    # ...
  end

  attached_managed_policies(
    "arn:aws:iam::123456789012:policy/my-policy"
  )
end

AWS側バージョン管理との整合性について

「gitで管理してください」というスタンスです。

基本的にAWS側のバージョンはデフォルトを見て更新を行います。 更新する場合には、新しいpolicy versionを作ってそれをデフォルトにします。 また、バージョン数が5を超える場合は古くてデフォルトになっていないバージョンを削除してから新しいpolicy versionを作成します。

gitの管理とAWS側のバージョン管理は相性悪いので、miamで「バージョンを指定する」などの機能をサポートするつもりは、今のところないです。