OpenPolicyAgentでS3のバケットを作成するときのポリシーチェックをしてみた

今回はS3のバケットへのアクセス制限の設定についてポリシーチェックをしていこうと思います。 環境 OS: CentOS 7 Terraform : 0.12.26 opa: Version: 0.21.0 S3のポリシーチェックで必要なもの 最終的に出来上がるものです。 EC2からVPC Endpointを通り、Ac…

[OpenPolicyAgent] Terraformで構築するEC2のSecurity Groupをチェックする

EC2を構築する際にSecurity Groupを設定することがあると思いますが、その際に想定通りの設定になっているのかを気を付ける必要がありますね。 想定通りの設定になっているのか、Open Policy Agentで確認することができるのでその実装方法についてみていきた…

[OpenPolicyAgent] TerraformでEC2を構築する際のポリシーをチェックする

Open Policy Agentを使うことでTerraformでEC2を構築する際にインスタンス設定が想定されているものなのかチェックができるため実装してみました。 やってみた内容について簡単にまとめていきたいと思います。 実装方法などはまだまだ勉強中ですのであくまで…

Open Policy Agentへ入門

CNCFのプロジェクトにOpen Policy Agentっというものがあります。 Open Policy Agentはポリシーエンジンとして動作し、指定したポリシーに準じているかどうかをチェックしてくれます。 そんなOpen Policy Agentについて軽く触ってみたのでどういった機能があ…

Prometheus PushgatewayにGolangからメトリクスを登録する

PrometheusではExporterに対してメトリクスを取得するため、HTTPリクエストを行いますが、これではバッチ処理などの一時的に起動するものなどのメトリクスを収集することができません。 そのため、PrometheusではPushgatewayというものが用意されています。…

PrometheusでPhoenixを監視する

以前PrometheusでElixir Plugからメトリクスの収集をできるよう設定をしました。 今回はPhoenixで設定をしていきたいと思います。 ちなみに、下記のものがPlug単体のときに設定したものになります。 kobatako.hatenablog.com 目次 環境情報 Phoenixのメトリ…

PrometheusでElixir Plugを監視する(Grafara設定付き)

最近、Prometheusを触り始めました。 なので何か監視したいと思い、サンプルとしてElixirのPlugの設定をし、Erlang VMの監視をしたいと思います。 今回使ったライブラリのリポジトリは下記になるので、設定とか参考にしてみてください。 github.com また、監…

2019年の振り返りと2020年の抱負

2019年も残りわずかとなりましたね。今年は自分の中でもいろいろと変わった年でもあり考えさせられた年でもありました。 こういうのは書いたことないですが、2019年の振り返りと2020年の抱負を書きなぐっていきたいと思います。 2019年の振り返り とりあえず…

VaultのメトリクスをPrometheusで可視化する

目次 初めに 環境情報 Vaultでの設定 Prometheusの設定 終わりに 1. 初めに 今回は小ネタとしてVaultのメトリクスをPrometheusで可視化するために設定した内容を記載していきたいと思います。 VaultとPrometheusの説明はここではしませんので気になる方は下…

Cloud KMSをVaultで使ってみる

目次 初めに 動作環境 環境の事前準備 Cloud KMSとService Accountの作成 Vaultに設定を入れていく 終わりに 1. 初めに Vaultではマスターキーを生成するためにShared Keyを利用していますが、Shared KeyはVaultを初期化したときに出力され、その情報を保存…

VaultのStorage BackendにGCSを使ってみる

目次 初めに 動作環境 VaultのStorage Backend GCSを使ってみる 終わりに 1. 初めに VaultにはStorage Backendっというものがあります。今回はそのStorage BackendにGCSを利用してみたいと思います。 下記がVaultのStorage Backendのドキュメントになります…

Vault を Deployしてみる

目次 初めに 動作環境 Deploy用の設定 Vaultの初期化 終わりに 1. 初めに 今までVaultを dev modeで動作させていろいろとしてきました。今回はVaultを実際に運用することを見据えた環境設定をしていこうと思います。 また今回もHashiCorp Learnを参考に進め…

VaultのPolicyに入門する

目次 初めに 動作環境 Policyの追加 終わりに 1. 初めに 今回はPolicyについて書いていきたいと思います。 今回もHashiCorp Learnにそって進め、その都度調べたことなどを書いていきます。 learn.hashicorp.com 2. 動作環境 Vault : v1.3.0 Golang: 1.13.5 O…

Vault の認証について入門してみる

目次 初めに 環境情報 Vault Authenticationとは Tokenでの認証 GCPで認証 終わりに 1. 初めに これまで Secretについて触れてきました。今回はVaultのAuthenticationについてやっていこうと思います。 ちなみに下記のものがSecretの記事になるので合わせて…

VaultでDynamic Secretsを試してみる

目次 初めに 環境情報 Dynamic Secretsについて AWS Secrets Engineの準備 Roleを定義する IAM Userを作成する まとめ 1. 初めに VaultではDynamic Secretsという機能がありますので、今回はこちらの機能について触れていきたいと思います。 今回もHashiCorp…

Vault初めてみる : Secretの基礎

目次 初めに 環境情報 vault serverの起動 Secretの保存 Secret Engineについて触れておく 終わりに 1. 初めに Vaultの勉強でHashiCorp Learnをやってみました。その時にやった内容や補足で調べたことなどを備忘録として残していきたいと思います。 また、Ha…

Elixirで簡単なProxyサーバを自作した

どうもこんにちは。ここ最近Erlangを書いてたり、AWS、OpenStackで遊んでいましたが久々にElixirを書いています。 今回はElixirでProxyサーバを自作しているので、どのような実装になっているか備忘録的に書いていきます。 動作環境 OS: debian 9 Elixir: 1.…

ErlangでHTTPリクエストをパースする

どうもこんにちは。前回に引き続きErlangでProxyを作っています。HTTP ProxyでURIごとにルーティングをさせる。さらにProxyを経由してHTTPリクエストをするので「X-Forwarded-For」をHeaderに追加させる必要があります。そのためHTTPリクエストの簡単なパー…

Erlangで簡易的なTCP Proxyを作った

どうもこんにちは。久々に記事書きます。 サボりにサボってやく一年ぶりぐらい(正確には11ヶ月ぶりぐらい)でしょうか。「ちゃんと更新しないとなぁ」っと思いつつこれぐらいに月日が立ってしまったのでこれからは真面目に更新しようと思います! Erlangで…

golangでUDPを使ってみた

環境情報 go version : 1.8 os : kubuntu 16 やったこと UDPサーバの実装 UDPクライアントの実装 UDPサーバの実装 UDPはステートレスなプロトコルなので、セッション情報を持たず一方的に送り付けるプロトコルです。 なのでTCPと比べて比較的に実装は楽です…

golangでTCPを使ってみた

環境情報 go version : 1.8 os : kubuntu 16 やったこと LookupPort TCP Client LookupPort 現在、実行してるサービスのポートを調べることができます。 net.LookupPort(network, service string) (int, error) networkは"tcp"か"udp"になります serviceは実…

golangで名前解決(DNS)まわりをする

golangで名前解決周りをするにあたって go version : 1.8 os : kubuntu 16 やったこと 名前解決 Lookup 名前解決 golangで名前解決する方法として、netパッケージ内のメソッドを使うことで、一発でできる メソッド net.ResolveIPAddr(net, addr string) (*IP…

golangでnetwork programmingしてみた

golangでnetwork programmingするにあたって go version : 1.8 os : kubuntu 16 やったこと IPアドレスのパース IPMask IPアドレスのパース 文字列のIPアドレスをパースして[]byte(IP型)へ変換する。 使ったメソッド net.ParseIP(ip string) IP 文字列はIP…

zephirの変数のついて

どうも、こんにちは。 最近zephirを触ってるんですけど、zephirの仕様について学んだことを書きます。 zephirで変数を使用するには宣言が必要です。コンパイラっぽいですねぇ 宣言 一行にまとめて var a, b, c; 複数行で var a; var b; var c; 宣言時に初期…

とりあえずdockerにzephirのビルド環境を準備してみた

phpのフレームワークであるphalconが好きで、phalconがzephirで実装されているとのことです。 zephirはphpのextensionの言語らいしく、phpっぽく書けるんですけど、実行速度が早いらしいです。 この「extension」っという響きがかっこいい…. っということでz…

docker コンテナでphpenvの環境を構築

環境 debian 8(コンテナ) phpenv 1.1.1-2 まず初めに dockerが好きでなんでもdockerでしてみたい、そして環境もdockerで用意したい、と思いコンテナでphpの環境を作りました。 自分の思考的に、、、どうしてもdebianベースでコンテナを用意してしまいます。 …

mediasoup H264対応

mediasoupでH264コーデックで映像を配信しようとしたときの対処になります。 どうやらVP8とH264では挙動が違うようで、、困りますね。 ブラウザはchromeでバージョンは58.0を使用していまいた。 どうやら映像の送信でサーバまでは届いているようなのですが、…

mediasoupでのsendonlyとreconlyをSDPだけで試した

webRTCでは接続してきたユーザはメディアの送信、受信を両方共できるのですが、 今回はメディアの送信のみと配信のみで接続させてみたいと思います。 今回はクライアントの設定のみで行いたいと思います。 修正箇所を見てみる webRTCではSDP(session descrip…

mediasoupのインストールと基本的な実装

mediasoupとは nodejsのSFUサーバのライブラリ。ライブラリなので基本的にメディア(映像、音声)の受信、配信のみを行います。 クライアントはwebRTCを想定しています。 SFUとは SFU(Selective Forwarding Unit)とは配信者に代わり映像、音声を視聴者に配信…