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