AWS
IAMユーザー
-
練習用に、とりあえずのAdministratorAccess権限のユーザをつくる
- 本番運用ではちゃんとminimum privilegeでつくろうね
AWS CLI, クレデンシャル
- 生で入れたくないのでコンテナで遊ぶ
- 認証情報を渡す用のDocker Compose環境
[https://github.com/wand2016/terraform-practice:embed:cite]
docker-compose run aws sts get-caller-identity --query Account --output text
- IAMユーザのIDが出力される
64********60
Terraform
- 生で入れたくないのでコンテナで遊ぶ
- 認証情報を渡す用のDocker Compose環境
[https://github.com/wand2016/terraform-practice:embed:cite]
docker-compose run terraform --version
Terraform v0.12.21
git-secrets
[https://github.com/awslabs/git-secrets:embed:cite]
- 認証情報が漏れてクラウド破産しちゃうのをふせぐ
- 導入
git clone git@github.com:awslabs/git-secrets.git
cd git-secrets
make install
- commit時に弾くpatternをglobalのコンフィグに設定
git secrets --register-aws --global
OK
- 確認
git config --global --list
- 除外設定もできるみたい
...
secrets.providers=git secrets --aws-provider
secrets.patterns=(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}
secrets.patterns=("|')?(AWS|aws|Aws)?_?(SECRET|secret|Secret)?_?(ACCESS|access|Access)?_?(KEY|key|Key)("|')?\s*(:|=>|=)\s*("|')?[A-Za-z0-9/\+=]{40}("|')?
secrets.patterns=("|')?(AWS|aws|Aws)?_?(ACCOUNT|account|Account)_?(ID|id|Id)?("|')?\s*(:|=>|=)\s*("|')?[0-9]{4}\-?[0-9]{4}\-?[0-9]{4}("|')?
secrets.allowed=AKIAIOSFODNN7EXAMPLE
secrets.allowed=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
- gitリポジトリの雛形にhookを追加する
git secrets --install ~/.git-templates/git-secrets
git config --global init.templatedir '~/.git-templates/git-secrets'
✓ Installed commit-msg hook to /home/wand/.git-templates/git-secrets/hooks/commit-msg
✓ Installed pre-commit hook to /home/wand/.git-templates/git-secrets/hooks/pre-commit
✓ Installed prepare-commit-msg hook to /home/wand/.git-templates/git-secrets/hooks/prepare-commit-msg
git config --global --list
...
init.templatedir=~/.git-templates/git-secrets
- AWSの認証情報をcommitしようとすると怒ってくれる
git commit -m "test"
env_sample:1:AWS_ACCESS_KEY_ID=AKIA****************
env_sample:2:AWS_SECRET_ACCESS_KEY=**************
[ERROR] Matched one or more prohibited patterns
Possible mitigations:
- Mark false positives as allowed using: git config --add secrets.allowed ...
- Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory
- List your configured patterns: git config --get-all secrets.patterns
- List your configured allowed patterns: git config --get-all secrets.allowed
- List your configured allowed patterns in .gitallowed at repository's root directory
- Use --no-verify if this is a one-time false positive