AWS

2020年の仕事で使った技術を振り返る

2020年の仕事を振り返ってみようと思います。 書いて見返してみると、本当に技術のことばかりですね。仕事と言うより、技術好きのただの趣味みたいな感じなのでしょうがないか。 はじめに 今年仕事で使った技術 AWS Azure GCP Other 全てのプロジェクトにIaC…

AWS Lambdaのコンテナイメージ上のkubectlコマンド実行してEKSを管理してみる

Lambdaのコンテナイメージからkubectlを実行してEKSを操作してみます。AWS Lambda runtime API 辺りが少し面倒ですが、総じてとても便利です。 なじみの人が多いだろうシェルスクリプトで実装していきます。 はじめに 最初に読んでおくべきもの 実装 Lambda…

Falcoとaws-for-fluent-bitを使ってCloudWatchにEKSノード上の危険なシステムコール情報を収集する(Proxy環境)

この記事はBeeX Advent Calendar 2020の12/12の記事です。 EKSのデータプレーンをどう選ぶか考えたとき、個人的にはFargateを積極的に使いたいところですが、まだ制限も多くて要件にフィットしない場合もあります。 そんな時に選択肢として挙がるManaged Nod…

Amazon EKSのPrivate ClusterでContainer Insightsを動かす(インターネット接続不可環境)

この記事はBeeX Advent Calendar 2020の12/4の記事です。 直接インターネット接続不可の環境に構築したEKSのPrivate ClusterでContainer Insightsを動かそうとしたら、ハマりどころが多かったので残しておきます。 前提 方針 Container Insights設定事前作業…

Amazon EKSのService Accountをawscliやkubectl使ったスクリプトで作成する

この記事はBeeX Advent Calendar 2020の12/3の記事です。 Service Accountの仕組みを理解するために、Step By Stepでスクリプト化してみました。 スクリプト 使ってみる 名前空間の作成 スクリプトの実行 ServiceAccountの確認 やっていることを少し解説 1.O…

EKSにOPA GatekeeperをHelmでインストールしてポリシー強制をしてみる

OPA Gatekeeperとは 作業環境 インストール 必須Labelを強制する ポリシーテンプレートの作成(ラベル強制) 制約の作成・適用(ラベル強制) ポリシー違反のテスト ポリシー違反のテスト(正常系) 掃除 Container Registryを強制する ポリシーテンプレート…

EKSでaws-load-balancer-controller使ってInternalのALB Ingress Controllerを作成する

PrivateSubnetに構築したEKSにInternalのALBをIngress Controllerとして構築する作業のメモです。 参考URL PrivateSubnetへのタグ付け EC2ロール作成 CRDの登録 Helmでaws-load-balancer-controllerをインストール テストサーバーのデプロイ 掃除 参考URL 最…

AWS IoT SQLでINT等の整数で渡されたBIT FLAGの値を取り出す

課題 対応 課題 AWS IoTに飛んできていたINT等の整数データが実はビットのフラグが並んだものだった場合、AWS IoT SQL使うとフラグに直して後続に渡すことも可能です。 対応 例えば my_data という項目に8ビットフラグの整数が渡されてきた場合、以下の関数…

MFA必須の環境下でAmazon EKSでkubectlを使う方法

MFA必須の環境下のEKSでkubectlを実行するための方法です。 結論としては、kubectlは内部的にAWS CLIを打っているので、AWS CLIのMFA設定の手順と同じとなります。 まず ~/.aws/credentials に自身のIAMユーザを登録します。 [base_cred] aws_access_key_id …

Amazon EKSの [system:masters] はどこから来たかWebhookトークン認証まで追ってみた

EKSを作ったユーザ、またはロールに紐付く system:masters というグループがどこから来ているのか、自分の目で確かめたくて掘り進めたので記録を残しておきます。 EKSのsystem:mastersって EKSの認証の仕組み ステップバイステップで追ってみる kubectlの認…

Amazon InspectorでProxy環境内のAmazon EKSのマネージドノードグループを検査する

こちらに続きEKSをProxy環境内で利用する方法です。 yomon.hatenablog.com ネットワーク Inspector AgentにProxy設定 EKSのマネージドノードに設定追加 起動テンプレートのUserDataでProxyを設定 Cloudformation化 Inspectorを実行してみる ネットワーク eks…

Amazon EKSでProxy環境内の マネージドノードグループから外部イメージを利用する

最初に、この記事にたどり着くような要件の場合は、高いセキュリティが必要な環境だと思っています。その場合はインターネット上のレジストリにあるイメージを使うことは本来推奨できるものでは無いと思います。この手順もかなり限定的な用途での利用となる…

AWS GreengrassのLocal Shadowを利用してLambdaの設定値の変更・永続化をする

Raspberry PiのGatewayにGreengrassを入れて使っていますが、機器からの値を取得する周期や、パラメータ等、Gateway側のLambdaから利用するパラメータを永続値として持っておきたいと思いました。 その上、その値はAWS IoT側を通して変更したい。 ということ…

AnsibleでAWS IoT Greengrass CoreをRaspberry Pi上にインストールする

RaspbianにAWS IoT Greengrass Coreをインストールする手順をAnsible化しました。 処理の元ネタ 前提 リポジトリの取得 変数の設定 Ansible実行 github.com 処理の元ネタ Qiita側に書いたこの記事の内容です。 qiita.com 前提 piユーザにSSHでパスワード認証…

AWS IoT GreengrassでRaspberry Piに接続されたModbusのデータを取得

こちらの記事で作成したModbus通信の温湿度計を、AWS IoT GreenGrass経由で操作してみました。 yomon.hatenablog.com 概要 Lambda作成 GreenGrass設定 Lambda設定 サブスクリプション設定 デプロイ 動かしてみる プロトコルアダプター 概要 やりたいことの概…

ローカルPCのDocker上でCloudWatch Logs Insights連携の簡易分析基盤(Elasticsearch)を使う

AWSを運用しているCloudWatch Logsを分析することが良くあると思います。 数年前はCloudWatch Logsのファイルをダウンロードしてきて、分析していて面倒でしたが、 CloudWatch Logs Insights が出てきてそれもかなり楽になりました。 それでも毎回調べながら…

Amazon CognitoのIDトークンのJWTをPyJWTを使って検証する

Cognitoの認証により発行されるA JSON Web Token (JWT) に対して、Pythonで検証処理を自前実装する方法を記載します。 JWT検証に利用するライブラリ Amazon CognitoのJWTの検証方法 サンプルコード 補足 Cognitoの設定 補足 jwt.decode()について JWT検証に…

Apache BeamでJavaのObjectをParquet形式でS3とGCSとローカルに出力する

GCPのCloud Dataflowでも使われている、Apache BeamでJavaの内部で持っているデータをParquetに出力するやり方です。 サンプルコードの構成 元にしたMaven ArcheType 利用するPOJO GenericRecordへの変換 出力先の切り替え ローカルに出力してみる GCSに出力…

AWS Certified Data Analytics - Specialtyの試験に合格してきました

AWS 認定データアナリティクス(AWS Certified Data Analytics - Specialty)の試験に合格してきました。 AWS 認定データアナリティクス – 専門知識 試験概要 試験準備 オンライン試験の失敗談 1回目 2回目 さいごに 試験概要 180分で65問の試験でした。AWS…

CloudFormationでメール承認つきのCode PipelineでEC2にデプロイする

AWS

今更感ありますが、メール承認付きのCode PipelineでEC2にファイルデプロイするところをCloudFormationでデプロイする方法です。 前提 CfnのYAML定義 Cfn適用 パイプラインを動かす ソースをCodeCommitにPush 承認依頼メール 参考 前提 IAMの設定からGitComm…

IP制限かかっているS3バケットにAthenaでアクセスする

IP制限されたS3バケットポリシーの例 Athenaからのアクセス方法 方法① IAMロールをホワイトリストに登録(userid) ポイント 考慮点 方法② Athenaからのアクセスをホワイトリストに登録(CalledVia) ポイント 考慮点 S3では、以下の記事のようなリソースポ…

TableauからAthenaにIAMロールで接続するためJDBC利用してみる

最初に 前提 設定 TDCファイル作成(Tableau Datasource Customizatio) JDBC接続文字列作成 TableauからAthenaに接続してみる 最初に TableauからAthenaに繋ぐウィザードを立ち上げると、Access KeyとSecret Access Keyを求められます。 やはりロールで繋ぎた…

Amazon Elasticsearch ServiceにJDBCで接続してSQL実行する

Amazon Elasticsearch Service(以下、AES)にJDBC接続する方法です。 AESのSQL機能 AESのSQL機能はOpen Distro for ElasticsearchというAWS主導のプロジェクトで開発されています。 github.com この辺りは、AESのSQLのエンドポイントやプラグイン名にも表れ…

PowerShellでS3のサーバーアクセスログをTSV形式に変換しEXCELで分析

S3はのサーバのアクセスログを取得することが可能です。 通情、このログを分析するなら、Athenaが便利です。公式にもわかりやすい手順が出ています。 Athena を使用したアクセスログの分析 ただ、色々な制約でAthenaが使えない、Pandasも使えない、ましてやD…

LambdaでElasticsearch Serviceの手動スナップショットを取得する仕組みをCFnで一括デプロイ

Amazon Elasticsearch Service (AES) で手動スナップショット取得の仕組みをCloudformationで一気にデプロイします。かつCurator使って古いスナップショットは自動的に削除する設定になっています。スナップショット取るだけで意外に大変です。 Pythonスクリ…

Amazon Elasticsearch Serviceクラスタ構成を対障害性の観点から検討してみる

Amazon Elasticsearch Serviceクラスタ構成を検討したので、そのメモを残しておきます。 ※Elasticsearch Serviceの インスタンス ですが、資料によっては ノード と表記されています。この記事ではManagement Consoleの表記に合わせて インスタンス に統一し…

fluent-plugin-aws-elasticsearch-service使ってElasticsearch Serviceに疎通確認作業

fluent-plugin-aws-elasticsearch-serviceでIAM権限でAmazon Elasticsearch Service繋ごうと思うのですが、IAM権限やアクセスポリシー変更しながらの疎通テストをしたいと思い。簡単に疎通テスト用の手順書きました。 github.com Amazon Linux2にログオン td…

AthenaにVPCエンドポイント経由でJDBC接続できるようになったが少し詰まった話

こちらのリリースにあるようにAthenaにVPCエンドポイント経由で接続できるようになりました。これで、プライベートなサブネットからもJDBC接続できるようになりました! aws.amazon.com 試してみる 早速、前に記事書いたこちらのDockerイメージでテストして…

AWS CloudformationでSecurity Groupの自己参照の設定を行う

AWS

Glue使っているとSecurity Groupに自己参照の設定をしなければいけない時があります。 AWS Glue がコンポーネントと通信できるようにするには、すべての TCP ポートに対して自己参照のインバウンドルールを持つセキュリティグループを指定します。 https://d…

AWS Certified Security - Specialty取得してきました

最近、認定試験の記事ばかり書いている気がします・・ ちょうど個人的繁忙期で、個別技術追う時間が無くて試験予約だけして直前に勉強くらいしか時間が無いのが実情です・・ただ、そういう忙しい時でも、お金かかっているので意地でも勉強するので試験は便利…