AWSのアクセスキーとは?認証情報と安全な管理方法を解説!
access key
AWSのアクセスキーとは?認証情報と安全な管理方法を解説!
アンドエンジニア編集部
2024.02.08
この記事でわかること
AWSのアクセスキーとは認証情報のことで、AWSアカウントの長期的認証情報を指します
AWSのアクセスキー認証により外部からAWSのサービスへプログラムアクセスを提供します
AWSのアクセスキーの漏洩でセキュリティリスクが生じるため慎重な管理が求められます

AWSのアクセスキーとは?

access key

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 アクセスキーの管理方法は?

access key

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 アクセスキーの管理を徹底し安全にクラウドサービスを利用しよう

safety access

インターネットの利用が一般的となったために、セキュリティ障害や情報流出が日々ニュースに流れてきます。クラウドサービスにおいても、セキュリティ対策重要なテーマです。AWSのアクセスキーを慎重に管理し、AWSのクラウドサービスをより安全に活用することを目指しましょう。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT