アクセスキー/シークレットキー
アクセスキー/シークレットキーって何?
- AWSのリソースに、CUI操作するときに使う認証情報です。
- AWSリソースにアクセスできるようになる重要な認証情報なので、github上にあげたりしないようにしましょう!
こんな感じの文字列です
- アクセスキー : AKIAZZZZZZZZWWWWWWWW
- シークレットキー : aaaabbbb+ccccddddeeeeffffgggg/hhhh
- アクセスキーと、シークレットキーの両方を使います。
AWSのリソースってCUIで操作するの?
- 操作する方法は以下があります
- ブラウザからAWSのコンソールにログインして、GUIで操作する。
- AWSクライアントをインストールしてCUIで操作する。
- terraform/Ansibleなどのツールで操作する。
それぞれの認証方法
- AWSのコンソール
- ログインID/パスワード/MFAでログインします。
- アクセスキー/シークレットキーとは別の認証情報になります。
- AWSクライアント
- AWSクライアントをインストールした後に以下コマンドで設定します。
- regionは、AWS内でどこのリージョン(東京とかアメリカ北西とか)を使うかを指定します。
- outputはAWSクライアントの戻り値をどの形式で出力するか指定します。
- AWSクライアントをインストールした後に以下コマンドで設定します。
% aws configure AWS Access Key ID [None]: AKIAZZZZZZZZWWWWWWWW AWS Secret Access Key [None]: aaaabbbb+ccccddddeeeeffffgggg/hhhh Default region name [None]: ap-northeast-1 Default output format [None]: Json
- terraferm/Ansible
- それぞれの定義内にアクセスキー/シークレットキーを記述して使うことができますが、githubにあげるときは.gitignoreの対象にしておくようにしましょう。
- もしくは環境変数にセットしておいて、それを読み込むことも可能です。
[terraform内での定義] provider "aws" { access_key = "AKIAZZZZZZZZWWWWWWWW" secret_key = "aaaabbbb+ccccddddeeeeffffgggg/hhhh" region = "ap-northeast-1" }
[環境変数にセット] export AWS_ACCESS_KEY_ID=AKIAZZZZZZZZWWWWWWWW export AWS_SECRET_ACCESS_KEY=aaaabbbb+ccccddddeeeeffffgggg/hhhh
(おまけ)認証情報の管理をdirenvでやると人生が楽しくなる
- direnv っていう便利ツールがあります。
- これを使うと、ディレクトリごとに環境変数を設定できるようになります。
- terraform/Ansibleを使うときにプロジェクトごとに使用するアクセスキー/シークレットキーを変えたりすることができます。