@k9securityio/k9-cdk
Version:
Provision strong AWS security policies easily using the AWS CDK.
83 lines (63 loc) • 1.63 kB
Plain Text
IMAGE_NAME := TBD
IMAGE_TAG := TBD
FQ_IMAGE := $(IMAGE_NAME):$(IMAGE_TAG)
AWS_AUTH_VARS :=
ifdef AWS_PROFILE
AWS_AUTH_VARS += $(AWS_AUTH_VARS) -e AWS_PROFILE=$(AWS_PROFILE)
endif
ifdef AWS_ACCESS_KEY_ID
AWS_AUTH_VARS += $(AWS_AUTH_VARS) -e AWS_ACCESS_KEY_ID=$(AWS_ACCESS_KEY_ID)
endif
ifdef AWS_SECRET_ACCESS_KEY
AWS_AUTH_VARS += $(AWS_AUTH_VARS) -e AWS_SECRET_ACCESS_KEY=$(AWS_SECRET_ACCESS_KEY)
endif
ifdef AWS_SESSION_TOKEN
AWS_AUTH_VARS += $(AWS_AUTH_VARS) -e AWS_SESSION_TOKEN=$(AWS_SESSION_TOKEN)
endif
AWS_OPTS := $(AWS_AUTH_VARS) -e AWS_REGION=$(AWS_REGION)
define execute
if [ -z "$(CI)" ]; then \
docker run --rm -it \
$(AWS_OPTS) \
-e USER=root \
-v $(shell pwd):/module \
-v $(HOME)/.aws:/root/.aws:ro \
-v $(HOME)/.netrc:/root/.netrc:ro \
$(FQ_IMAGE) \
$(1); \
else \
echo $(1); \
$(1); \
fi;
endef
clean:
rm -f bin/*.js bin/*.d.ts lib/*.js lib/*.d.ts && rm -rf cdk.out/* node_modules
shell:
@$(call execute,sh,)
deps:
@set -e
@if test -z $(CI); then \
docker pull $(FQ_IMAGE); \
fi;
init:
@echo "installing package dependencies - k9-cdk v2"
@set -e
@yarn install
build:
@echo "building k9 policy library - k9-cdk v2"
@set -e
@npx projen build
converge:
@echo "converging integration test stack - k9-cdk v2"
@set -e
@cdk synth; \
cdk deploy --require-approval never --force
destroy:
@echo "destroying integration test stack - k9-cdk v2"
@set -e
@cdk destroy --force;
quick: build
examples: build
@$(MAKE) -C examples examples
all: init build converge