技術雑記帳兼日記帳

AWS、Python、Terraformの使い方をコッソリ

AWSのルートテーブル

今回AWSのルートテーブルで不思議な構成があったので、メモ

下記のように入力がグローバルIPであった場合に別経路へルーティングする設定がありました。 f:id:halhalhal1:20220219114516p:plain

※TGWは設定していないので存在しないですが例として。

これって以下だと考えています。

  • 123.123.123.123で通信がきた場合、折り返しのパケットをTGWに流す
  • 逆にVPCから123.123.123.123に通信したら、パケットをTGWに流す

なぜ?どうしてという疑問が湧いていますが、障害要因になっていたので、設定を削除して障害復旧となりました。

AWSをルータとして使っていたのかな?

ただ、疑問はTGW側(他ネットワーク側)このパケット受け取れるのだろうか。

ちょっともやっとしましたが障害は解決したので、よかった。

謙虚な立ち振る舞い

たまたま新しい職場に来た年上の方に手持ちのプロジェクトを引き継ぐことになりました。

そのかたがとても謙虚な立ち振る舞いをするため、私も見習わなければと感じています。

やはり、自分のように叩き上げていった人間には中々できない振る舞いですが、あのような行動をすれば周囲とのコミュニケーションが円滑に進むと思います。

技術的なことをしていても行き着く先は人間だということが確信を持てました。

AWS Certified Solutions Architect - Professional その2

今回はエンドポイントについて。 2種類のエンドポイントの違いなどがはっきりとわかるようにならないと サービス設計や利用で提供でつまづきそうなので、まとめみました。

ゲートウェイVPCエンドポイント

  • S3とDynamo DBで使える。
  • 料金が発生しない。
  • ルートテーブルの設定が必要
  • PryoxyサーバのようなEC2が必要(オンプレなどから直接アクセスできない)
  • 高可用性は設計側で検討する必要がある。

    インターフェイス VPC エンドポイント (AWS PrivateLink)

  • 様々なAWSサービスで使える。
  • 料金が発生する。
  • AZは設定時に追加できるので高可用性は担保してもらえる。
  • サブネットにENIが配置される。
  • Proxy不要
  • Lambda+VPCを使う場合はインタフェイスエンドポイントがあるとセキュアにサービスが使える

    まだまだ書くべきことはあるが、掻い摘んで理解した内容です。
    特に最後のPrivate LinkでLambdaを使うケースは実践でやって、重要性と必要性は理解できました。
    また、お金は大事です。

    まとめ

    さらっと始めたが、傾向とし、Professionalレベルになると、単独アカウントや単独のサービスの提供で行うことより組織としてAWSサービスを提供・利用するための管理について重点が置かれているように感じる。
    Professionalなので当然といえば当然かなぁとは思いますが。
    サービス間連携が理解できないと設計も難しいですしね。

下記に公式のURLを貼り付けておきます。

docs.aws.amazon.com

docs.aws.amazon.com

AWS Certified Solutions Architect - Professional その1

今回は勉強のためにAssumeRoleを試してみました。

AWSアカウント(A)からのアカウント(B)に対して操作』を許可するケースを簡単にまとめてみました。

B側操作

・ロール作成で、AWSアカウントを選択し、許可したいAWSアカウントID(A)を指定する。
・アカウントIDを指定したら、許可したい操作をポリシー単位で選択する。

A側操作(今回はコンソール)

・下記のコマンドを実行する

aws sts assume-role \
--role-arn "arn:aws:iam::<B側のアカウントID>:role/<ロール名>" 
--role-session-name <sessionName>

こうすると、AccessKeyId、SecretAccessKey、SessionTokenが取得できるのでexportする。

export AWS_ACCESS_KEY_ID =  <assume-roleで取得したAccessKeyId>
export AWS_SECRET_ACCESS_KEY = <assume-roleで取得したSecretAccessKey>
export AWS_SESSION_TOKEN = <assume-roleで取得したSessionToken>

これでB側のアカウントの操作が可能になる。

まとめ

最小特権の原則(PoLP)に沿わないと簡単に他アカウントのAWSリソースをぶち壊す可能性を秘めている。

勉強

勉強はINPUTするだけじゃなく、OUTPUTも必要だな。

アナログ式でノートに書き写して勉強してきてるけど、この方法以外にも複数の手段を持っておくのがいいかもしれない。

それにモチベーションの意地も大事だな。

中々難しいもんですなぁ

AWS Certified SysOps Administrator - Associate

f:id:halhalhal1:20220121190929p:plain

やったー、合格した!

スコアが低かったけど、ラボ試験も含めてほぼ全て「コンピテンシーを満たしている」となったので十分満足です。

次はプロフェッショナルだ!