AWSのアクセスキーとは?
AWSのアクセスキーとは認証情報のことで、AWS Identity and Access Management(IAM)のユーザまたはAWSアカウントの長期的認証情報を指します。AWSのアクセスキー認証により、外部からAWSのサービスへプログラムアクセスが可能です。 参考:AWS Identity and Access Management ユーザーガイド IAM ユーザーのアクセスキーの管理
AWS アクセスキーのメリットは?
AWSのアクセスキーは、アクセスキーIDとシークレットアクセスキーから構成されています。AWS アクセスキーは、ユーザ名とパスワードによる認証と同様の処理をプログラムアクセス時にアクセスキーIDとシークレットアクセスキーを用いて行います。したがって、メリットとしては「ユーザ名とパスワード更新の影響を受けずにプログラムアクセスが可能」ということが挙げられます。
AWS アクセスキーのデメリットは?
AWSのアクセスキーのデメリットは、1つだけではなくいくつか挙げられます。理由は、プログラムアクセスがユーザ名とパスワードなしに実行できるために、重大なセキュリティリスクが生じることが背景にあります。そのため、デメリットはAWSのアクセスキー管理の徹底が必須なので管理が難しくなることが挙げられます。
具体的には、AWSのアクセスキー管理が不十分の場合、以下のセキュリティリスクが生じます。 ・アクセスキーの漏洩 アクセスキーはアクセスキーIDとシークレットアクセスキーから構成される文字列のため、外部サイトに流出したり公開リポジトリ―に誤ってプッシュ登録したりすることで生じます。 ・AWSサービス内の情報漏洩 アクセスキーを利用して、サービス内に蓄積された業務データが持ち出しされるリスクがあります。 ・サービスの不正利用 1度外部にアクセスキー情報が漏洩してしまうと、AWSサービスを不正利用されたり、それによって高額なAWSサービス利用費の請求が発生したりすることが懸念されます。 ・セキュリティ攻撃に悪用 AWSのサービスを経由した成りすましや、仲介者攻撃として第3者へのセキュリティ攻撃に悪用されるリスクがあります。
AWSアクセスキーのセキュリティ考慮点は?
AWSのアクセスキー利用のセキュリティ対策として、以下の考慮が必要です。 ・極力使用しない AWSのアクセスキーは、外部からのプログラムアクセスを用います。外部からのプログラムアクセスをしない場合はアクセスキーを使用せず、可能であれば不要なアクセスキーを削除します。 ・共有しない 不特定の方への情報共有を避け、必要最低限のメンバーのみ共有とするか、全く共有しない運用をします。 ・権限を絞る アクセスキーを開示する場合は、専用の権限を絞ったアクセスキーを作成し提示します。 ・MFAを設定する 多要素認証(MFA)により、第3者の利用をブロックします。 ・IAM ユーザーのアクセスキー定期更新 IAM ユーザーは定期的にアクセスキーを更新し、意図しない流出影響を抑えます。 ・IAM ロールの使用 アクセスキーを用いず、処理するためにIAMロールをインスタンスに設定します。 参考:AWS ドキュメント リファレンスガイド AWS アクセスキーを管理するためのベストプラクティス 参考:AWS Identity and Access Management ユーザーガイド IAM でのセキュリティのベストプラクティス
AWS アクセスキーの管理方法は?
AWS マネジメントコンソールにより、IAM ユーザーのアクセスキーを管理することができます。
(1)IAM コンソールにサインイン (2)ナビゲーションペインでユーザー名を選択し、[セキュリティ認証情報]を選択 (3)[Access keys (access key ID and secret access key)] セクションを展開 (4)必要な処理の実施 ・アクセスキーの作成 = [新しいアクセスキーの作成]の選択 ・アクセスキーの表示 = [アクセスキーを表示]の選択 ・アクセスキーの保存 = [キーファイルのダウンロード]の選択 ・アクセスキーの無効化 = [無効化]の選択 ・非アクティブアクセスキーの有効化 = [有効化]の選択 ・アクセスキーの削除 = [削除]の選択
IAM コンソール以外を用いたAWS アクセスキーの管理方法は?
AWS CLI からIAM ユーザーのアクセスキーを管理するには、以下のコマンドを実行します。 ・アクセスキーの作成 = “aws iam create-access-key”コマンドの実行 ・アクセスキーの表示 = “aws iam list-access-keys”コマンドの実行 ・アクセスキーの最終使用日時確認 = “aws iam get-access-key-last-used”コマンドの実行 ・アクセスキーの無効化 = “aws iam update-access-key”コマンドの実行 ・非アクティブアクセスキーの有効化 = “aws iam update-access-key”コマンドの実行 ・アクセスキーの削除 = “aws iam delete-access-key”コマンドの実行
AWS APIからIAM ユーザーのアクセスキーを管理するには、以下のAPIオペレーションを呼び出します。 ・アクセスキーの作成 = CreateAccessKey APIの使用 ・アクセスキーの表示 = ListAccessKeys APIの使用 ・アクセスキーの最終使用日時確認 = GetAccessKeyLastUsed APIの使用 ・アクセスキーの無効化 = UpdateAccessKey APIの使用 ・非アクティブアクセスキーの有効化 = UpdateAccessKey APIの使用 ・アクセスキーの削除 = DeleteAccessKey APIの使用
AWS アクセスキーを用いないプログラムアクセスは?
すでにお話しした通り、AWSのアクセスキーは情報漏洩のリスクがありますので、慎重な管理が求められます。そのため、AWSのアクセスキーを極力使用せずに運用することが望まれます。AWSでは、IAMを用いてロールを作成することができるので、AWS アクセスキーを用いずにプログラムアクセスを実行することが可能です。これにより、慎重な管理を要するアクセスキーのセキュリティリスクを低減することが可能です。
IAM ロールの設定方法は?
ここでは、AWSのコンピューティングサービスであるAmazon Elastic Compute Cloud(EC2)を用いたロールの設定について説明します。Amazon EC2のロールは、立ち上げ時に指定します。ロールの作成は、以下の手順となります。
(1)IAM コンソールから[ロール]を選択し[ロールの作成]を選択 (2)[AWS サービス ロール]の[Amazon EC2]を選択 (3)[ポリシーテンプレートの選択]から[Power User Access]か[Read Only Access]等を選択 (4)[インスタンス詳細]から[IAM ロール]を設定 (5)インスタンスを起動 参考:AWS Identity and Access Management ユーザーガイド AWS サービスへのアクセスの提供 参考:AWS Identity and Access Management ユーザーガイド Amazon EC2インスタンスで実行されるアプリケーションにIAMロールを使用してアクセス許可を付与する
その他にも、IAMの一次的なセキュリティ認証情報(トークン)をAWS Security Token Service(STS)で発行し、AssumeRole APIでプログラムアクセスする方法があります。 参考:AWS Identity and Access Management ユーザーガイド 一時認証情報を使用するサンプルアプリケーション
AWS アクセスキーの管理を徹底し安全にクラウドサービスを利用しよう
インターネットの利用が一般的となったために、セキュリティ障害や情報流出が日々ニュースに流れてきます。クラウドサービスにおいても、セキュリティ対策は重要なテーマです。AWSのアクセスキーを慎重に管理し、AWSのクラウドサービスをより安全に活用することを目指しましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから