流れ3の5語目 / 10

アクセスキー・トークン

セキュリティ

管理画面にはMFAでログインできるようになりました。次に、作っているシステムのプログラムからクラウドを操作させたくなって「アクセスキーを作ってコードに書けばいいですか?」と聞くと

「キーは絶対にGitに上げちゃダメだよ。できれば、キーを使わずにロールで渡そう」
「アクセスキー・トークン」って、何のことだろう…?

アクセスキーとトークンは、プログラムやコマンドがクラウドを操作するときに「この人(このプログラム)です」と示すための、合言葉のような文字列です。

アクセスキーは長く使える鍵です。トークンは使える時間が決まった鍵で、ロールなどで受け取る一時的なトークンは、短い時間で使えなくなります。どちらも、手に入れた人なら誰でも使えてしまいます。

このページで分かること読む 約4分・問題 2問
  • プログラムやコマンドからクラウドを操作するときは、画面のログインの代わりに、アクセスキーやトークンという「合言葉のような文字列」で本人だと示す
  • アクセスキーは長く使える鍵
  • キーをプログラムのコードに書いてGitなどに上げると、見られる人全員に鍵を配るのと同じ
  • 漏れたら(漏れたかもしれなくても)、まず先輩・上司に報告し(会社のルールに従う)、すぐに無効にして作り直す

身近な例えで理解する

ホテルでは、最初にフロントで名前や予約を確かめてもらうと、カードキーが渡されます。そのあとは、部屋のドアにカードをかざすだけで入れます。毎回フロントで名乗り直す必要はありません。カードには使える期限があり、長く泊まる人のカードは長く使え、1泊ならチェックアウトの時間までです。ただし、カードを拾った人でもドアは開いてしまいます。なくしたら、すぐフロントに知らせて、そのカードを使えなくしてもらい、新しいカードを作ってもらいます。

  • カードキーアクセスキー・トークン
  • 毎回名乗らず、かざすだけで入れるパスワードの代わりにキーやトークンを見せて、クラウドを操作できる
  • 拾った人でも開けられる手に入れた人なら誰でも使える
  • 1泊のカード長く使えるアクセスキー
  • なくしたらすぐ知らせ、そのカードを止めて作り直してもらう漏れたらまず報告し、そのキーを無効にして作り直す

ちょっと確認

Q1先輩のひとこと
先輩「キーは絶対にGitに上げちゃダメだよ」

一番の理由は?

例えを外して、実際のしくみ

ここからは実際のしくみ
アクセスキー

AWSでは、アクセスキーIDとシークレットアクセスキーの2つの文字列が組になっています。コマンド(CLI)やプログラムからAWSを操作するときに使います。自分で無効にするまで使えるので、長く残るほど漏れたときの危険が大きくなります

トークン

使える時間が決まった鍵です。時間がたつと自動で使えなくなります(サービスによっては、期限を長くできるトークンもあります)。AWSの「ロール」を使うと、プログラムは必要なときに短い時間だけ使える鍵を受け取れます。インスタンスにロールを付けておけば、コードにキーを書かずにすみます。Azure のマネージドIDや、Google Cloud のサービスアカウントにも同じ考え方があります

コードに書かない・Gitに上げない

Git(→71 Git)は、コードの変更の記録を残し、チームで共有するしくみです。キーをコードや設定ファイルにそのまま書いてGitに上げると、リポジトリ(→72)を見られる人全員が、そのキーでクラウドを操作できてしまいます。公開リポジトリなら世界中の人です。あとで消しても、Gitの履歴に残ります。キーは、決められた保管場所(秘密の情報を預けるサービスなど)に置きます

漏れたらまず報告し、すぐ無効にする

キーが漏れた、または漏れたかもしれないときは、まず先輩や上司に知らせ(会社のルールに従います)、すぐにそのキーを無効にして、新しいキーに替えます。そのあと、キーが勝手に使われていないか記録(→11 ログ)を確かめます。「たぶん大丈夫」で様子を見るのが一番危険です(→70 インシデント対応)

このページのまとめ

アクセスキー
プログラムなどがクラウドを操作するための、長く使える鍵
トークン
使える時間が決まった鍵。一時的なトークンは短い時間で切れる
ロール
キーを持たせずに、短い時間だけ使える鍵を受け取れるしくみ(AWSの呼び方)
キーが漏れたら
まず報告し、すぐ無効にして作り直し、使われていないか確かめる

先輩のひとことの意味

先輩「キーは絶対にGitに上げちゃダメだよ。できれば、キーを使わずにロールで渡そう」

アクセスキーは、持っている人なら誰でも使える通行証です。コードに書いてGitに上げると、リポジトリを見られる人全員に通行証を配るのと同じになります。だから、キーはコードに書かず、できればロールを使って、キーそのものを持たなくてすむようにしよう、という意味です。

練習問題で確かめる

Q24択

アクセスキーとトークンの違いとして正しいものは?

参考資料

ご意見・「これで例えて!」を募集しています

ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。

  • 説明してほしいITの言葉
  • 例えてほしい場面(部活・アルバイト・家事など)
  • 分かりにくかったところ・間違いのご指摘

意見箱は準備中です。

解説・例え・練習問題はすべてオリジナルです。参考にしているのは公式ドキュメントのみです。ご意見・ご感想・間違いのご指摘など、何でもお寄せください。確認してすぐに直します。

LinuCはLPI-Japanの登録商標です。当サイトはLPI-Japanおよび他の企業・団体とは関係ありません。

運営:core