CSM: Dynamic Secret によるAWSの"アクセスキー"漏洩対策をためす

# 概要

クラウドサービスの利用する企業への不正アクセス被害が相次いでいます
その主な要因として「アクセスキーの漏洩」の事例が、昨今、多く報告されています

https://xtech.nikkei.com/atcl/nxt/column/18/00001/09539/

アクセスキーの漏洩は、githubへアクセスキーを含めたコードをコミットを行うことによる漏洩であったり、また、多くの開発者等で、アクセスキーを共用したりした場合にも漏洩が生じる可能性がありえます

[CSM (CipherTrust Secrets Management Powered by AKEYLESS)]([https://qiita.com/shinyaarai/items/0da7ea8164df552c4bfd) の"アクセスキー"を Dynamic Secret の機能により、一時的なアクセスキーを動的に生成することができます

これにより、"ソースコードや設定ファイルへのハードコード"や、"開発者でのアクセスキー共有"等による"アクセスキー漏洩"を避けることが可能です

# 目的

Dyanamic Secret により、一時的に有効なAWSのアクセスキーの作成手順を解説します。

# 参照ドキュメント

- AKEYLESS ドキュメント

https://docs.akeyless.io/docs/aws-producer

- YouTube
    - [“エンタープライズ向けシークレット管理”とは？CipherTrust Secrets Management Powered by AKEYLESS のご紹介](https://www.youtube.com/watch?v=FPKXdnSIjaM)


# 手順

## 前準備
こちらの記事にて、CSMのセットアップを行ってください

https://qiita.com/shinyaarai/items/0da7ea8164df552c4bfd

## AWS Target の作成
Gateway Consoleにログインします

![CSM_DS_AWS_2-1-1a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/c2da10c3-5243-0fc4-587e-42636ad6043f.png)

Targets > New を選択します


![CSM_DS_AWS_2-1-2a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/971f1d04-bb7b-537e-2bc1-43452ae58543.png)

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

![CSM_DS_AWS_2-1-3a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/48402431-a97b-8ee2-adf8-4a1e32b2aa92.png)

"Name"に任意の名前(例: "awsTarget1")を入力し、"Next"をクリックします


![CSM_DS_AWS_2-1-4a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/ea3efe66-3854-7a8c-7892-08699cf2c829.png)

AWSでAkeylessを認証するためのユーザの"Access Key ID", "Secret Access Key"を入力します
"Region"に、作成されたAcces Keyでのアクセスが許可される AWSリージョンを選択します
"Next"をクリックします

:::note info
CM(Gateway)がAWS EC2上にデプロイされている場合、IAMロールを用い認証することで、"Access Key ID", "Secret Access Key"といったSecret の設定を無くす事が可能です。(今回は検証環境の制限で利用できずませんでした。)
:::

![CSM_DS_AWS_2-1-5a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/3714b1a5-feb3-7260-3cf7-dde492a89f19.png)

Targetが作成されました

## AWS Dynamic Secret の作成

![CSM_DS_AWS_2-2-1a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/36729868-8fac-7b7b-cdb2-e0eb2b7fd0cf.png)

Item > New > Dynamic Secret を選択します

![CSM_DS_AWS_2-2-2a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/80ecd180-5313-fbbe-fac5-24ef2583d87f.png)

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

![CSM_DS_AWS_2-2-3a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/fc87e5b2-0231-9cdd-7b29-260526340b10.png)

Nameに任意の名前(例: "awsDS1")を入力します
"Target Mode"で、作成した Target を選択します
(スクロールダウンします)

![CSM_DS_AWS_2-2-4a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/231203c4-eadd-a945-c29e-2704339aedd0.png)

"User TTL"で一時的なアクセスキーの有効期間(ディフォルト: 60分)を設定できます
AWSへアクセスを行うGatewayを選択し、"Next"をクリックします

## AWS Dynamic Secret の取得

![CSM_DS_AWS_2-3-1a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/2637d559-5480-e360-6ec1-bdd8a411aa56.png)

一時的に有効なアクセスキーを取得するために、"Get Dynamic Secret"をクリックします

![CSM_DS_AWS_2-3-2a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/b2b1ce6a-bdec-4b84-6546-5585732991d1.png)

一時的に有効なアクセスキーを取得できました
”Expire in" で、残りの有効時間が表示されます

![CSM_DS_AWS_2-3-3a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/e4acf4e1-e895-4008-0a80-696c7c7764ea.png)

右上の"..." > "Temporary redentials"を選択します

![CSM_DS_AWS_2-3-4a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613085/ea7dc59a-abe7-c40f-0b62-c1e45859e489.png)

現在、有効なアクセスキーの一覧が確認できます
アクセスキーは、有効時間が経過すると、自動的に削除されます


# 補足

今回、AWSを対象とした"アクセスキー"の漏洩対策として、CSMの Dynamic Secret 利用の方法をご紹介しました。

Azure, GCPにおいても、同様に Dynamic Secretをご利用いただくことが可能です。

# What's Next

https://qiita.com/shinyaarai/items/7b26864c7ecdf1796319