AWS アクセスキーとは?AWS アクセスキーの作り方や使い方を紹介!
AWS アクセスキーとは
AWSアクセスキーとは、S3やEC2といったAWSの各サービスに対してプログラムにおけるアクセスを認証するために作成される認証キーです。 AWSアクセスキーはアクセスキーIDとシークレットアクセスキーで出来ます。AWSアクセスキーはプログラムにおけるアクセスが可能なので、できるだけ取り扱いは慎重に行うようにしてください。
AWS アクセスキーの作り方
AWS アクセスキーとは何かを説明しましたが、ここからはAWS アクセスキーの作り方を詳しく解説します。 AWS アクセスキーを作成してみたい方または興味がある方は是非ご覧ください。
マネジメントコンソールから作成する
AWSアクセスキーは、IAMから作成することができます。大まかな流れとしてはまず、IAMユーザーを作成し、その後にそのユーザーに対してアクセスキーを作成します。
IAM ユーザーを作成する
IAMユーザーを作成するためには、マネジメントコンソールからIAMにアクセスし、ユーザーの作成を選択します。ユーザー名を入力したのちに、アカウントに付与する権限を設定します。 権限を付与する際には、IAMで作成したグループに追加するか、ポリシーに直接アタッチします。そして権限を付与したのちに、IAMユーザーを作成することができます。 ここで権限の設定にはポリシーを選択することになります。Admin権限を付与すると全てのサービスにアクセスすることができるようになります。 しかし、アクセスキーに権限を付与しすぎてしまうと、アクセスキーが漏洩した際に大きな被害を受けてしまいます。DBに関するアクセスのみ、Cognitoに関するアクセスのみといったように、付与するポリシーを変えることで、最小限の権限を付与するようにしましょう。
アクセスキーを作成する
IAMユーザーを作成したのちに、そのアカウントに対してアクセスキーを作成します。具体的な作成方法は以下の通りです。 最後にダウンロードしたアクセスキーIDと、シークレットアクセスキーをAWS認証情報ファイル(~/.aws/credintial)に入力することで、アクセスキーをプログラムから呼び出す準備を整えることができます。
アクセスキー ID とシークレットアクセスキーを取得するには
CLIから作成する
AWSのCLI(Commnad Line Interface)からアクセスキーを作成するためには、以下のコマンドを実行してください。ここで、–user-name以下に設定したいユーザー名を入力してください。 $ aws iam create-access-key –user-name MyUser また、CLI上でアクセスキーを作成するためには、以下のコマンドを実行します。ここで、–user-name以下に削除したいユーザー名を、–access-key-id以下にアクセスキーを入力してください。 $ aws iam delete-access-key –user-name MyUser –access-key-id XXXXXXXXXXX
AWSアクセスキーの使い方
AWSアクセスキーを作成する際には、アクセスキーをプログラムに埋め込むのではなく、AWS認証情報ファイル、もしくは環境変数から読み込むようにしてください。 具体的にここで、pythonでcognitoを利用する際のコードを上げます。以下のコードでアクセスキーを取得し、clientをもとにcognitoでの操作を行うことができます。 accesskey = os.environ.get(“AWS_ACCESS_KEY_ID”) secretkey = os.environ.get(“AWS_SECRET_ACCESS_KEY”) client = boto3.client(‘cognito-idp’, region_name = self.region, aws_access_key_id = self.accesskey, aws_secret_access_key = self.secretkey, )
AWS アクセスキーに関する注意
AWSアクセスキーは、実際にAWSを操作するのと同じく、プログラムによるAWSの操作を可能とします。そのため、AWSアクセスキーの保管には十分注意を払う必要があります。 基本的には、アクセスキーはルートユーザーではなく、IAMユーザーを作成し、権限をIAMで制限した上で作成することをお勧めします。 また、保管には厳重な注意を払い、メールなどによる共有を避けるようにします。そして、第三者によるアクセスを避けるようにしてください。 特によくあると考えられるのは、PublicのリポジトリにPushしてしまうことです。そういったことを避けるために、認証ファイルはgitignoreに記載するようにしましょう。 以下の各章では、AWSで紹介されているベストプラクティスについて紹介します。
アカウントアクセスキーを削除する
ルートユーザーのアクセスキーをなるべく持たないようにしましょう。ルートユーザーのアクセスキーを持っていると、請求情報を含む全ての情報にアクセスすることができてしまいます。 そのため、ルートユーザーのアクセスキーが漏洩してしまった場合、大きな損害を被る可能性があります。そこで、アクセスキーを作成する際には上で述べたように、権限を制限したアカウントに対して作成する必要があります。
一時的なセキュリティ認証情報を使用する
AWSアクセスキーの代わりに、IAMロールを作成し、一時的なセキュリティ認証情報を作成することができます。この一時的なセキュリティ認証情報は、アクセスキーIDとシークレットアクセスキーに加えて、認証情報がいつ無効になるかというセキュリティトークンも含んでいます。 これによりアクセスキーのリスクを減らすことができます。 以下のような場合には、アクセスキーを作成するのではなく、一時的なセキュリティ認証情報を作成します。 まず、AWSEC2インスタンスで実行しているアプリケーションにおいて、アクセスキーをプログラムに埋め込むことはしないでください。その代わりにIAMのロールを定義し、EC2のロールを使用してインスタンスを起動します。 次にモバイルアプリを持っている場合は、アクセスキーはアプリに埋め込まないでください。代わりにCognitoを利用して、ユーザーIDを管理してください。
アクセスキーを適切に管理する
アクセスキー を管理する上での注意点をここでは紹介します。 まずは、コードにアクセスキーを直書きしないことです。AWS認証情報ファイル、もしくは環境変数から読み込むようにしましょう。AWS認証情報ファイルを読み込む形が一般的に使いやすいです。 次に異なるアプリケーションには異なるアクセスキーを用意し、権限を最小化しましょう。これにより、アクセスキーが漏洩した際の被害範囲を抑えることができます。 また、アクセスキーの定期的な更新、不要となったアクセスキーの削除も有効です。
アクセスキーが漏洩してしまった場合
AWSアクセスキーの管理に細心の注意を払っていても、誤ってアクセスキーが漏洩させてしまう場合があります。GitHubなどに誤ってPushしてしまった場合、AWSから連絡が来ることがあります。 アクセスキーが漏洩してしまった場合、まず漏洩してしまったデータを削除し、次にアクセスキーを削除します。そして、不正利用されていないかどうかを全リージョンで確認し、他のユーザーを含めた全てのIAMユーザーのアクセスキーのローテーションを行う必要があります。 これらの作業は、開発規模が大きくなればなるほど大きなコストを伴う作業になるため、できるだけアクセスキーが漏洩しないように、管理マニュアルを作成するなど、細心の注意を払って管理するようにしましょう。
まとめ
今回はAWSアクセスキーの概要、作成方法、そしてアクセスキーを使う上での注意点について紹介しました。AWSの開発を複数人で行う際に、プログラムからのアクセスが必要になることが多く、アクセスキーを作成する必要があることが多いです。 AWSの開発を行う人はこの記事を参考に、付与する権限を最小限に抑えることで、リスクを最小化し、AWSアクセスキーを作成してみてください。
この記事の監修者・著者
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
- 2024-06-30キャリアインフラエンジニアはやめとけって本当?きつい理由を口コミを交えて解説
- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。