2018-01-01から1年間の記事一覧
概要 sts:Assume Roleは第三者に自分のAWSアカウントのAPI権限を委譲する仕組みです。 ここで言う第三者というのは EC2/IAM/KinesisといったAWSサービス 他AWSアカウント Googleアカウント のように様々なモノに委譲が可能です。 sts:Assume Role どういう用…
概要 christina04.hatenablog.com ではConsulのACLの基本的な設定方法を説明しました。その時は "default_policy": "deny"のようにデフォルトで全リソースのアクセス禁止にしてwhitelist形式で扱っていきます。 と言いましたが、そもそもACL未設定なConsulを…
概要 前回 christina04.hatenablog.com にてCloudWatch Logsの過去ログをS3へエクスポートする方法を説明しました。 今回はリアルタイムにS3に転送する方法を紹介します。 手順 管理ポリシーではないIAMポリシーが何度も出てくるので、自動生成してくれるWeb…
概要 christina04.hatenablog.com で説明したようにHashiCorp Vaultでは柔軟な権限設定ができますが、触っていて「え、こういう挙動・設定なの?」とハマった事がいくつかあったのでまとめます。 環境 vault v0.11.5 ハマったところ pathは前方一致 例えば p…
概要 CloudWatch LogsはAWSでは一番簡単に用意できる検索可能なログ基盤だと思います。 一方で 詳細な検索がしにくい(クエリやUI的に) ログが大量に増えると料金も嵩んでくる Terraformや操作ミス(保持期間の誤設定など)で間違って消してしまうリスク と…
概要 dockerのコンテナは指定したコマンドがPID 1で起動されており、使い方によってはシグナルハンドリングできないことがありますよ、という話です。 それによってプロセスをGracefulに終了できなかったりリソースリークが起きたりするので注意する必要があ…
概要 ConsulにはACL(Access Control List)といって、AWSのIAMに似たアクセスコントロールの仕組みがあります。 今回はそれの設定方法を説明します。 環境 Consul v1.4.0 Consul ACL ACL System 大きく分けて ACL Policies ACL Tokens というコンポーネントが…
概要 少し前にECSのサービスディスカバリが東京リージョンにも登場しました。 Amazon ECS Service Discovery がフランクフルト、ロンドン、東京、シドニー、シンガポールの各リージョンで利用可能に 今回Terraformでの使い方を説明します。 環境 Terraform v…
概要 christina04.hatenablog.com でCA認証をしていたのですが、ある日急にsshできなくなったので原因を調査したところOpenSSH側のバグでした。 bugs.launchpad.net 環境 OpenSSH 7.8p1 macOS Mojave 10.14.1
概要 先日VPNサーバを再起動したところ、基本的に内部ネットワークに接続できるものの特定のサーバに対し 疎通(ncコマンド)自体はできる 3 way handshakeもできる Webページは見れない 会社からのアクセスだとWebページも見れる という状況に陥ったのでその…
概要 Goの良いところってなんだろう?と思ってまとめます。 多分新しいことを知ったら追記していきます。 よく言われるところ コンパイルが速い JavaやC++に比べてかなり高速です。 メモリ安全 GoはC言語に近いですが、C言語で問題になっていたメモリ周りは…
概要 以前の記事で christina04.hatenablog.com Goはスレッドよりはるかに軽量なgoroutineでC10K問題を解決する、という話をしましたが、goroutineが軽量なのはなぜか?という理由を深掘りしたことがなかったのでしてみました。 環境 golang 1.11.1 Darwin 1…
概要 前回 christina04.hatenablog.com にてpprofのコマンドラインツールの使い方を説明しました。 今回はメモリについて ケース1:このバッチ処理、メモリすごく喰うけどどこが原因? ケース2:メモリリークしてない? といったところの調査方法を説明し…
概要 前回 christina04.hatenablog.com にてpprofの基本的な使い方を説明しました。 今回はさらに詳細に調べるためのコマンドラインツールの使い方を説明します。 環境 golang 1.11.0
概要 ECS Fargateがリリースされてから検証・導入を進めています。 インスタンスの管理をする必要がなくなり非常にメリットを感じている一方、本番環境で使う上で注意すべき点もあるのでそこをまとめます。 環境 Fargateプラットフォーム 1.2.0 問題点 dev, …
概要 会社の公式ブログに投稿したのでその紹介です。 developers.cyberagent.co.jp AWAではサブスクリプション(定期購読)型の課金体系をとっているのでそういったサービスを出す方の参考になれば幸いです。
概要 サーバサイドの仕事をしているとソケットという概念に遭遇すると思います。 ソケットを理解すると TCPセッションの流れ ulimitでnofileを上げないとコネクション増加した時のToo many open filesが出るのはなぜか なぜサーバの待ち受けポートは1つで、…
概要 先日リリースされた1.11でソケットオプションを設定できるようになりました。 これによってLinux 3.9から導入されたSO_REUSEPORTという、同じポートでbindすることが可能になる機能が利用可能になります。 環境 golang 1.11 macOS 10.13.6 (Darwin Kern…
概要 ローカルでサクッとfluentdの検証をしたい時に毎回調べ直していたのでメモ。 設定ファイル fluentd.confという名前で設定を用意します。 forwardされたログをstdoutに出力します。 <source> @type forward port 24224 bind 0.0.0.0 </source> <match *.*> @type stdout </match>
概要 ConsulやVaultのクラスタ構成をしていると bind address advertise address という2つのアドレスを設定する必要が出てきます。 この2つをしっかり理解しておかないとクラスタ構成で思わぬ落とし穴にハマったりするので今回はこれを紹介します。 bind…
概要 HashiCorp VaultのKey/Valueの基本的な使い方を紹介します。 このKey/Valueは少し前にv2が出ているため、v1と混同しないよう注意してください。 v1ドキュメント v2ドキュメント 今回はKey/Valueのバージョン管理が可能なv2を想定して説明します。 環境 …
概要 先日Consulクラスタのアップグレードをしたところちょこちょこ問題にぶち当たって解決に時間がかかったので、同じ症状に遭ったりした人用にメモ。 環境 Consul 1.1.0 -> 1.2.2 Ubuntu 16.04 問題背景 Consulはクライアントエージェントが追加されたり死…
概要 HashiCorp Vaultではトークンを取得するための様々な認証方法がありますが、その中でアプリケーションに向いたAppRoleという認証方法があります。 ref: AppRole Pull Authentication | Vault - HashiCorp Learn この図ではRole IDとSecret IDというID &…
背景 christina04.hatenablog.com を元に本番環境を用意していたところ、ubuntuで作ったインスタンスはsshできるもののAmazon Linuxで作られたec2-userのインスタンスはsshできない現象に遭遇しました。 sshのログを調べるために # /etc/ssh/sshd_config # .…
概要 HashiCorp Vaultの売りは Secure secret management Dynamic secrets Encryption as a Service Leasing and Renewal など多々ありますが、その中でもAudit(監査)ログ(Vaultの操作ログ)の管理はとても重要です。 今回はその設定を紹介します。 Audit D…
概要 元はunixtimeだったり、単純な数値データなものだったりを以下のようなフォーマットにしたいことは往々にしてあります。 日付 通過 パーセント 大文字に統一 AngularではPipesという機能を使うことでテンプレート上で簡単に実現できます。 ビルトインPi…
概要 HashiCorp VaultにはPKI(公開鍵基盤)の機能もあります。 これを使って ルートCA 中間CA を用意し、 ルート証明書 (root certificate) 中間証明書 (intermediate certificate) サーバ証明書 (primary certificate) を作成します。 環境 Vault 0.10.3
概要 SSL/TLSでは ルート証明書 (root certificate) 中間証明書 (intermediate certificate) サーバ証明書 (primary certificate) など色々なファイルや用語があり、混乱しやすいのでまとめます。 認証局(CA)について ルートCA 認証局です。 この認証局が発…
概要 HashiCorp VaultにはTransit Secrets Engineという、暗号化・復号をしてくれる機能があります。 このTransit Secrets EngineはKey/Valueのように暗号化データを保存することはなく、暗号化するための暗号化キーを保存&バージョン管理します。 また複数…
概要 これまで紹介したHashiCorp Vaultの使い方はCLIを使うのがメインでしたが、実際はアプリケーション内で秘密情報を扱うケースが多々あります。 VaultはGoのライブラリを提供しているので、様々なログイン方法を紹介しつつ秘密情報にアクセスしてみます。…