AWSのアクセスキーについてまとめています。
AWSのアクセスキーの作成と管理
AWSのアクセスキーとは
AWSのアクセスキーは、アクセスキーIDとシークレットアクセスキーの2つで構成される認証情報。これらの情報を使うことで、AWS CLIやAWS APIを利用することができるようになります。AWSの操作を自動化したい場合などに必須となってきます。アクセスキーは、比較的長期間変更することなく使用する場合に使われます。
【関連記事】
▶AWS CLIのインストール方法 AWSアクセスキーの登録と疎通確認
ユーザIDとパスワードの組み合わせのように、認証するためにはアクセスキーIDとシークレットアクセスキーの情報が必要になります。
アクセスキーIDの例:AKIAIOSFODNN7EXAMPLE シークレットアクセスキーの例:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS アクセスキーを作成
AWSのアクセスキーは、IAMコンソールからIAMユーザのアクセスキーの作成、変更、削除が可能です。
【関連記事】
▶AWSのIAMは、AWSサービスとリソースへのアクセス管理とアクセス分析が可能
IAMのアクセスキー作成には以下のポリシーのアクセス許可が必要となります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:GetUser", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }
IAMコンソールは、AWSマネジメントコンソールから開くことができます。AWSマネジメントコンソールの検索欄に「IAM」と入力し、IAM(AWSリソースへのアクセス管理)をクリックします。
【関連記事】
▶AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!
Identity And Access Management(IAM)=IAMコンソールが開きます。作成済みのユーザのアクセスキーの作成をおこなうには、左のメニューからユーザ→既存ユーザ名をクリック→認証情報タブをクリック→アクセスキーの作成をクリックします。
- ナビゲーションメニューで [ユーザー] を選択します。
- IAM ユーザー名 (チェックボックスではありません) を選択します。
- [認証情報] タブを開き、次に [アクセスキーの作成] を選択します。
- 新しいアクセスキーを表示するには、[表示] を選択します。
アクセスキーIDとシークレットアクセスキーが発行されます。
アクセスキーは1ユーザにつき同時に2つまで発行が可能。発行後は、再表示することができないので.csvファイルのダウンロードでファイルとしてダウンロードしておくか、何らかの方法で保存しておきましょう。
AWSアクセスキーの管理
アクセスキーは認証情報そのものなので、第三者に知られてしまうとアクセスキーに与えた権限でAWSへのアクセスが可能になります。このため、どのような理由があってもアクセスキーを公開したり、サードパーティに提供するのは避けましょう。
AWSの示すベストプラクティスとしては、アクセスキーの代わりに「一時的なセキュリティ認証情報」であるIAMモールを使用して、AWSアカウントルートユーザーのアクセスキーを無効にする方法があります。ルートユーザのアクセスキーが外部に漏れてしまうと、AWSで可能なことがすべてできてしまうんですね。
【関連記事】
▶AWSへのLogin方法 ルートユーザーとIAMユーザーの違い
ルートユーザのアクセス権限を守るために、強力なパスワードポリシーを構成したり、アクセス時にMFA(多要素認証)を要求するように設定することもできます。
AWSのベストプラクティスによると、アクセスキーは定期的に更新することが推奨されています。
関連)AWS アクセスキーを管理するためのベストプラクティス – AWS 全般のリファレンス
AWSアクセスキーIDとシークレットアクセスキーの確認方法
すでに生成されたアクセスキーIDはIdentity And Access Management(IAM)画面にて確認できますが、シークレットアクセスキーの内容を確認する方法はありません。
もし、アクセスキーの情報がわからなくなってしまったら、Identity And Access Management(IAM)=IAMコンソール画面にて「新しくアクセスキーを発行」して、AWS CLIなどに登録してあるアクセスキーを新しいものに差し替えるという対応が現実的です。
なお、すでにアクセスキーを2個作成済みの場合はそれ以上新規にアクセスキーを作成できません。いったん、古いアクセスキーを削除してから新しくアクセスキーを作成しましょう。
AWS CLIへのアクセスキーの登録
AWS CLIにアクセスキーを登録するには、aws configureを実行し、必要な値を入力します。
$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json
関連)設定の基本 – AWS Command Line Interface
aws configure実行により、以下のファイルが更新されます。
linux : ~/.aws/credentials/config Windows: C:\Users\USERNAME\.aws\credentials\config
アクセスキーを更新する場合は、これらのファイルを編集する必要があるんですね。アクセスキーの更新には、以下のポリシーが必要になります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:DeleteAccessKey", "iam:GetAccessKeyLastUsed", "iam:GetUser", "iam:ListAccessKeys", "iam:UpdateAccessKey" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }
AWSのアクセスキーのまとめ
- AWSのアクセスキーは、認証情報でアクセスキーIDとシークレットアクセスキーの2つで構成される
- シークレットアクセスキーは作成時以外は表示させる方法がない。紛失した場合は、新規でアクセスキーを作成して差し替える
- AWSのルートユーザのアクセスキーは無効にすることを推奨。流出すると、管理者権限でAWSを操作できてしまうため