AWS秘密マネージャー、それで働く方法、パート1


AWS秘密マネージャーは何ですか?AWSは非常に明らかにウェブページで説明します

そして基本的にはこれです.秘密マネージャの最大の利点は非常に便利な方法でキーを回転させる可能性です.しかし、これはこのチュートリアルの2番目の部分になります.この部分では、簡単なラムダ関数でキーを作成し使用する方法を示します.

しかし、私は秘密を作成する前に、いくつかの用語を説明する必要があります.
何が秘密ですか?それは資格情報(および他のデータ)のための“ストレージ”です.これは、秘密が1つの値に等しくないことを意味します.なぜなら、秘密は複数のデータを含むことができますからです.

これは明らかですので、既に作成された秘密があるかどうかチェックしましょう

私は空のリストを受け取りました.
私は秘密を作成する前に、私の秘密のためのデータをファイルを準備します.もちろん、私はコマンドを実行し、手動ですべての値を追加することができますが、私はファイルを使用したい(AWSもこの方法をお勧めします).特にCI/CDプロセスを念頭に置いています.もちろん、この例ではファイルを全く同じようにすることはできません.しかし、これは運動だけです.
これが私のファイルの作成方法です.

今、私はこのファイルを使用して私の最初の秘密を作成する準備ができて

秘密が実際に作られたかどうかチェックしましょう

はい、秘密はそこにあります.何が内部ですか?

これは秘密に関する同じ情報を返します.何が中にあるか、そして、私がそこで設定した値を見るために

このコマンドはすべての値を返します.特定のバージョンを返すための追加パラメータがありますが、ここでは使用しません.
この時点で私は秘密を作成している.ラムダ関数を使用してデータを取得するときです.

秘密のマネージャーについての良いことは、私がGUIを開いて、それから私の秘密にナビゲートするならば、私はそこに多くの言語で準備されるスニペットを見つけることができます.私はコーディングを行う必要はありません.だから、コード内の秘密を使用する方法を基本的に理解することは非常に簡単です.

どのように実際の生活の秘密マネージャを示すには?私はアプリケーション(例えばServerlessなアプリケーション)を持っていると仮定し、私のラムダ関数を特定のリソースに接続したい.データベース、キャッシュ、いくつかの外部API、それを名前.私はデータをハードコードすることができます.これは可能な限り最悪の方法である(残念ながら、それほど稀ではない).
環境変数を使用できます.すごい!それはうまくいくかもしれない.しかし、まず第一に、ラムダコンソールにアクセスしている誰でも、私の変数を見ます.このようなデータをすべての開発者に公開したくない.そしてもう一つの欠点はとても簡単です.データベースにアクセスする100ラムダ関数を持ち、パスワードを変更したいと思います.それは災害になる-どのくらいかかりますか?
そういうわけで、私は「集中化された」アプローチを使うのを好みます、そして、秘密マネージャーはここで私を助けます.
私は最も簡単なアプローチを使います.私は秘密マネージャのスニペットからコードをコピーして、最も簡単な可能なラムダでそれを使います、しかし、私は1つのものを変えます.私は秘密のハードコードされた場所(または名前)を持っていないので、私はそれのために環境変数を使用します.なぜ?この関数が複数の環境でci/cdにあると想像してください.これらのデータを変数として持つことは、より簡単であり、最良の実行として認識されるべきである.
これは私の非常に単純なサンプルコードです.
< div >
< br/> < br/> < br/>
AWSから例を使いますが、少し修正しました.とにかく、ここで魔法はありません.覚えておくべき1つの重要な要素:ラムダ関数に付属しているポリシーは秘密マネージャに到達する必要があります.あなたのIAMポリシーに以下のコードに似たようなものを追加する必要があります.br/> < br/>
<> P >
クラスをハイライト表示する

< div >
これはとても簡単で、本当に安全ではなく、調整しなければなりません.p >
私のコードをAWSにどのように置いても、GUIやCloudFormation、SAMモデルを使えます.これはこの記事のトピックではありませんp >
ラムダが展開されると、すべての設定があるかどうかを調べるためにテストケースを作ります.p >
<ケース>テストケースはとても簡単です.私は、空の要求で単純な「Hello World」テストケースを使います.すべてがOKなら、適切な結果を見るべきです.さて、< p/p >
< p >

< p >λはここにありますので、このエクササイズのための非常にシンプルなAPIを作成する時です.私はただGUIを使っています(今のところ、私は展開用にSAMを使用していませんでした.つのエンドポイントだけを持つ非常に単純なAPIです.p >
すぐに、残りのAPIゲートウェイを作成し、GetMySecretエンドポイントを追加し、ラムダ関数で接続します.チュートリアルがたくさんあります.p >
完了したら、APIを呼び出してどのように動作するかを見ることができます
<> P >
クラスをハイライト表示する

< div >
<高橋>

現在、サンドボックスをきれいにする時間です.どのように他のリソースを削除するには、再び、多くのチュートリアルがあります.秘密のために、私は単に< br/>を走らせます
<> P >
クラスをハイライト表示する

< div >
覚えてください:秘密は“削除”コマンドを削除した後だけではありません.彼らは利用できなくなるが、7日で回復することができます.その後、彼らは本当に行ってしまった.p >
もう一つ覚えておいてください.秘密は多くのバージョンのデータを保存できます.p >
そして最後のことは、このチュートリアルでは触れられていません(しかし、非常に最初に述べました).秘密は資格情報の自動回転を作成するために使用することができます.それは本当にとても便利です.p >

ここでは、このチュートリアル< br/>で使用されている秘密の関連コマンドを持つ小さなGISTです
<> P >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/pawelpiwosz/fa341af196cb86f0af75e6b4f0a5258c.js//>
< div >
< br/> < br/> < br/>
エンジョイ!p >