Carpe Diem

備忘録

HashiCorp VaultのPolicyでハマったこと

概要

christina04.hatenablog.com

で説明したようにHashiCorp Vaultでは柔軟な権限設定ができますが、触っていて「え、こういう挙動・設定なの?」とハマった事がいくつかあったのでまとめます。

環境

  • vault v0.11.5

ハマったところ

pathは前方一致

例えば

path "secret/foo*" {
  capabilities = ["create"]
}

と権限を付与すれば、

  • secret/foo
  • secret/foobar
  • secret/foo/bar

のそれぞれでcreate権限が付与されます。

Policies - Vault by HashiCorp

続きを読む

CloudWatch LogsのログをS3へ【エクスポート編】

概要

CloudWatch LogsはAWSでは一番簡単に用意できる検索可能なログ基盤だと思います。
一方で

  • 詳細な検索がしにくい(クエリやUI的に)
  • ログが大量に増えると料金も嵩んでくる
  • Terraformや操作ミス(保持期間の誤設定など)で間違って消してしまうリスク

といった問題もあるので、そういった場合の対策としてS3やLambdaに渡してデータを保存・変換させたりする手法が一般的です。

CloudWatch Logsではロググループを指定して簡単にS3へエクスポートできる機能も提供されているので、それを実行してみます。

続きを読む

Dockerの--initフラグについて

概要

dockerのコンテナは指定したコマンドがPID 1で起動されており、使い方によってはシグナルハンドリングできないことがありますよ、という話です。
それによってプロセスをGracefulに終了できなかったりリソースリークが起きたりするので注意する必要があります。

環境

  • docker v18.09.0

どんな問題が起きる?

こちらでとてもわかり易く説明されてます。

Unix プロセスと Docker の罠 - けちゃぶろぐ

Dockerケースを要約すると、親、子、孫の3プロセスが起動している状態

ケース 何が起きる 問題点
親が死ぬ 子も孫も強制的に死ぬ 処理中リクエストを
ハンドリングできない
子が死ぬ 孫は親に紐付けられるが、
親はそれを知らないので孫はゾンビになる
リソースリーク

という問題が起きます。
親、子だけのケースであれば前者が起きます。

続きを読む

ConsulのACLでアクセス制御

概要

ConsulにはACL(Access Control List)といって、AWSのIAMに似たアクセスコントロールの仕組みがあります。
今回はそれの設定方法を説明します。

環境

  • Consul v1.4.0

Consul ACL

ACL System

大きく分けて

というコンポーネントがあります。

続きを読む

TerraformでECSのService Discoveryを使う

概要

少し前にECSのサービスディスカバリが東京リージョンにも登場しました。

Amazon ECS Service Discovery がフランクフルト、ロンドン、東京、シドニー、シンガポールの各リージョンで利用可能に

今回Terraformでの使い方を説明します。

環境

  • Terraform v0.11.10
  • terraform-provider-aws v1.50.0

設定

Namespaceの設定

まずnamespaceを用意します。実行するとRoute53のドメインとして登録されます
今回ECSで使う=内部アクセスのみなのでaws_service_discovery_private_dns_namespaceを利用します。
これはVPC内部からしDNSクエリを叩けません。

resource "aws_vpc" "example" {
  cidr_block = "10.10.0.0/16"
}

resource "aws_service_discovery_private_dns_namespace" "example_internal" {
  name        = "example.internal"
  description = "example"
  vpc         = "${aws_vpc.example.id}"
}

AWS: aws_service_discovery_private_dns_namespace - Terraform by HashiCorp

続きを読む

OpenSSH 7.8p1でCA認証によるsshができない

概要

christina04.hatenablog.com

でCA認証をしていたのですが、ある日急にsshできなくなったので原因を調査したところOpenSSH側のバグでした。

bugs.launchpad.net

環境

  • OpenSSH 7.8p1
  • macOS Mojave 10.14.1
続きを読む

VPNで特定のサーバに繋がらない

概要

先日VPNサーバを再起動したところ、基本的に内部ネットワークに接続できるものの特定のサーバに対し

  • 疎通(ncコマンド)自体はできる
  • 3 way handshakeもできる
  • Webページは見れない
  • 会社からのアクセスだとWebページも見れる

という状況に陥ったのでその対処を書きます。

環境

  • Pritunl Server v1.6.752.82
  • Wireshark v2.6.3
マシン IP
自宅PC xxx.xxx.xxx.20
接続したいサーバ xxx.xxx.xxx.116
続きを読む