sops を使っていて、これ localstack の KMS key を使うことできないかなぁとふと思ってみたので試してみました。
endpont-url を受け取れるように修正すれば一応動かせました。
特に実用性はないのですけど、備忘録的に残しておきます。 localstack を使ったローカルテストをするときには役に立つかも?
動作確認環境
- ArchLinux
- awscli v2.1.13
- localstack v0.12.4
修正点
対した変更はしていませんが、endpoint-url を環境変数から吸えるようにしました。
config := aws.Config{
Region: aws.String(matches[1]),
Endpoint: aws.String(os.Getenv("AWS_ENDPOINT_URL")),
}
sops/keysource.go at localstack · goropikari/sops · GitHub
$ git clone -b localstack --depth 1 https://github.com/goropikari/sops.git
$ docker build -t sops -f Dockerfile-localstack .
$ id=$(docker create sops)
$ docker cp $id:/go/bin/sops sops-localstack
$ docker rm -v $id
$ docker run --rm -p 4566:4566 localstack/localstack:0.12.4
$ export AWS_ENDPOINT_URL=http://localhost:4566
$ alias awsl="aws --endpoint-url $AWS_ENDPOINT_URL"
$ keyarn=$(awsl kms create-key --query KeyMetadata.Arn --output text)
$ export SOPS_KMS_ARN=$keyarn
$ ./sops-localstack foo.json
$ ./sops-localstack -d foo.json
{
"hello": "localstack"
}
参考
boot2docker - Docker - how can I copy a file from an image to a host? - Stack Overflow