0
0

CSM: AWS IAM 認証をためす

Last updated at Posted at 2024-07-12

概要

前回の記事 "CipherTrust Secrets Management (CSM)をためす" では、Akeyless CLI等のクライアントから、Akeyless (Gateway または SaaS)へアクセスする際に、API Keyを用いて認証を行っていました。

API Keyは、"Access ID","Account Key"からなります。Akeyless CLIの場合、この認証情報は、"~/.akeyless/profiles/default.toml"に保存され、Akeyless認証時に利用されます。

個々のシステムで利用しているSecretをなくすために、"Secret Management"を導入したのに、API Key(Secret)を利用しなければ、"Secret Management"が利用できないという、"Secretを完全になくす事ができない"状況が生じます。

各クラウド環境においては、IAMが提供されており"認証"&"認可"に利用できます
Akeyless CLI等のクライアントが、クラウド上のVMで動作する場合、IAMを利用して Akeyless への認証が可能になります

  • クラウド各社の認証サービス
    • AWS IAM
    • Azure AD
    • GCP IAM
    • OCI IAM

これを利用することに完全にSecret をなくすこと("Vaultless")が可能となります。

目的

AWS EC2のVM上で稼働する Akeyless CLIを AWS IAMを用い Akeyless への認証を行います

参照ドキュメント

手順

Auth Method の作成

Akeyless Gateway コンソールから、"Users & Auth Methods"を選択、"New"をクリックします
CSM_Auth_AWS-1-1a.png

"AWS IAM"を選択、"Next"をクリックします

CSM_Auth_AWS-1-2a.png

Nameを入力します (任意: 例 "iamAuth1")
"Next"をクリックします
CSM_Auth_AWS-1-3a.png

"Bounded AWS Account ID"へ、AWS Account IDを入力します
"Bounted Role Names"へ、AWS IAM の role 名を入力します (任意 例 "david-rw-secretmanager" 必要に応じて作成下さい)
"Next"をクリックします
CSM_Auth_AWS-1-4a.png

Auth Method "iamAuth1"が作成されました
CSM_Auth_AWS-1-5a.png

Role の作成

"Access Roles"を選択、"New"をクリックします
CSM_Auth_AWS-2-1a.png

Nameを入力します (任意: 例 "iamRole1")
"Next"をクリックします

CSM_Auth_AWS-2-2a.png

"Associate"をクリックします
CSM_Auth_AWS-2-3a.png

"Auth Method"で表示されるリストの中から、作成した "Auth Method"(例 "/iamAuth1")を選択します
"Next"をクリックします
CSM_Auth_AWS-2-4a.png

"Next"をクリックします
CSM_Auth_AWS-2-5a.png

"Add"をクリックします
CSM_Auth_AWS-2-6a.png

"Type"で"Items"を選択します
"Access Path"で"/*"を選択します
"Permission"で、"Create, Read, Update, Delete"を選択します
"Save"をクリックします
CSM_Auth_AWS-2-7a.png

"Next"をクリックします
CSM_Auth_AWS-2-8a.png

設定を変更せずに、"Finish”をクリックします
CSM_Auth_AWS-2-9a.png

Role "iamRole1"が作成されました
CSM_Auth_AWS-2-10.png

EC2インスタンスへの IAM Role の設定

Akeyless CLIを動作させる VMへ、AWS IAM のrole をリストから選択します (Auth Method の作成時に指定した role を指定します。例 "david-rw-secretmanager")

CSM_Auth_AWS-3-1a.png

Akeyless CLIの認証設定

Akeyless CLIを動作させる VMへログインします

$ akeyless configure --profile default --access-id p-4ca2l3f0osk0wm --access-type aws_iam
Profile default successfully configured

AWS IAMでの認証が正常に動作することを確認します

$ akeyless list-items
{
  "items": [
    {
      "item_name": "/MY_ZK_DFC_KEY",
      "item_id": 292643381,
      ...
      (省略)
      ...
      "gateway_details": null
    }
  ],
  "next_page": "eyJpIjoiL2ZvbzEifQ=="
}
$ akeyless get-secret-value --name /MyFirstSecret
My First Secret Value
$ akeyless get-secret-value --name /foo1
bar1

AWS IAMで、 API Keyと同様に動作することを確認できました
これにてVM上のSecretはなくなり、 実際の運用に耐えうる高レベルのセキュリティにて運用が可能となりました

補足

今回ご紹介した AWS IAM以外にも、Azure, GCP, OCI, オンプレミス、Kubernets, OAuth2.0/JWT等、各種環境向けの認証をサポートしています
Authentication Methods Introduction

CSM_Auth_AWS-4-1.png

API KeyはAkeyless で生成管理されるため便利ですが、"Access ID","Account Key"が漏洩した場合、セキュリティ上の問題を生じます。このため、本番環境での"API Key"の利用は非推奨となります。
今回ご紹介したAWS IAMや、他の認証方法を用い、完全にSecretを無くしての運用”Vaultless"を推奨させていただきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0