アクセスキー/シークレットキー
アクセスキー/シークレットキーって何?
- 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 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を使うときにプロジェクトごとに使用するアクセスキー/シークレットキーを変えたりすることができます。