2021-01-01から1年間の記事一覧

sKanを試す

Alcide sKanを試してみたメモ。 https://github.com/alcideio/skan 導入 バイナリをダウンロードしてパスの通ったディレクトリに置く。 実行 適当なマニフェストを作る。 k create deploy nginx --image=nginx --dry-run=client -o yaml > nginx.yaml 検査を…

kubesecを試す

kubesecを試したメモ。kubesecというとSecretのマニフェストを暗号化するshyiko/kubesecのほうが有名な気もするが、controlplaneio/kubesecのほう。 https://github.com/controlplaneio/kubesec 導入 導入は以下の方法で可能。 コンテナイメージ バイナリ ア…

kubeauditを試す

kubeauditを試してみたメモ。 https://github.com/Shopify/kubeaudit 導入 brew install kubeaudit 実行方法 3つのモードがある。 マニフェストモード ローカルモード クラスターモード マニフェストモード 適当なマニフェストを作る。 k create deploy ngin…

AWS Secrets & Configuration Providerを試す

以下のブログを試したメモ。 (6/28にSecretとのSyncまでやり直して更新) https://aws.amazon.com/jp/blogs/security/how-to-use-aws-secrets-configuration-provider-with-kubernetes-secrets-store-csi-driver/ https://aws.amazon.com/jp/blogs/news/how…

EKSでランタイムデフォルトのseccompプロファイルを使用する

EKSでランタイムデフォルトのseccompプロファイルが使用できるかを確認する。 https://aws.github.io/aws-eks-best-practices/security/docs/runtime/ Dockerのデフォルトで適用されるプロファイルは以下に記載がある。 https://docs.docker.com/engine/secu…

SPIFFEのチュートリアルを試したメモ

以下ブログを翻訳しようとしたが、SPIFFEが全然わからなかったので、SPIFFEのチュートリアルを試したメモ。 https://aws.amazon.com/jp/blogs/containers/using-mtls-with-spiffe-spire-in-app-mesh-on-eks/ 参考リンク Quickstart for Kubernetes 注目のSPI…

Cloud9からMySQLやPostgreSQLに接続する

Cloud9からAurora MySQLやAurora PostgreSQLに接続してバージョンを確認したメモ。 MySQL mysqlクライアントはインストール済み。 接続する。SSL が必要な時は、--ssl を付与する。 ENDPOINT=<エンドポイント> mysql -h ${ENDPOINT} -P 3306 -u admin -p バ…

EKSでKubeFedを試す

EKSでKubeFedを試してみたメモ。 コンポーネント バージョン Kubernetesバージョン 1.18.9 プラットフォームバージョン eks.3 kubefedctl 0.6.1 kubefed 0.6.1 kubefedチャート 0.6.1 参考リンク https://github.com/kubernetes-sigs/kubefed/tree/master/ch…

KubeFedのクイックスタート

このAWSソリューション実装を理解するために、先ずそもそもKubeFedのクイックスタートを試してみたメモ。 https://github.com/kubernetes-sigs/kubefed クイックスタート リポジトリをクローンする。 git clone https://github.com/kubernetes-sigs/kubefed.…

CalicoとCiliumでの細かい動作の違い

以下のセッションを見ていたら自分の記憶とちょっと違ったので確認したメモ。 ケース別に考えるPod間通信制御の話 具体的には以下の点。 ALBからのIngress接続を許可するため、VPCのIPブロックを許可すると、Podが全部接続可能になってしまう(PodはVPC CNI…

VSCodeやLensでEKSに接続する

VSCodeのKubernetes拡張やLensでEKSに接続しようとしたとき、コンテキストを選択してもAWSプロファイルが適切でないと接続できないので、どうしたらいいのか調べたメモ。 .kube/configのuserフィールドにあるトークンを取得するコマンドに環境変数としてプロ…

EKSでFalcoを試す

以下のAWSブログにしたがってEKSでFalcoを試したメモ。 Implementing Runtime security in Amazon EKS using CNCF Falco もう一つFalcoに関するAWSブログがあるが、内容がちょっと古い。 Securing Amazon EKS Using Lambda and Falco コンポーネント バージ…

ECS タスク起動ハマりポイント

よく ECS タスクが上手く起動しなくてハマるので、ハマったポイントをメモしておく。 コンテナのポートを間違えていてヘルスチェックに失敗している ALB からのヘルスチェックがセキュリティグループにブロックされている AmazonECSTaskExecutionRolePolicy …

CDKの導入

ひさしぶりにCDKを使おうとして環境の更新方法を忘れてたのでメモ。 Node.js Node.jsはnodenvを使って導入している。 CDKの要件はNode.js 10.3.0以上で最新のLTSバージョンが推奨。 Getting started with the AWS CDK - AWS Cloud Development Kit (AWS CDK)…

Kyvernoを試す

Kyvernoを試してみたメモ。AWSブログにしたがって試す。 参考リンク https://kyverno.io/ Easy as one-two-three policy management with Kyverno on Amazon EKS Kyvernoのインストール クラスターを作成する。 eksctl create cluster -f cluster.yaml マニ…

QoS ClassとPriorityClass

QoS ClassとPriorityClassの違いがわからなくなったので、調べたメモ。 QoS ClassとPriorityClassは2つの独立した無関係の機能。 QoS Classはノードのリソースが不足した際にEviction ManagerがPodをEvictionする際に使われる。PriorityClassはSchedulerがス…

EKSのManagedNodeGroupでSSMエージェントをインストールする

ワーカーノードのロールにAmazonSSMManagedInstanceCoreを付与する。 マネージド型ノードグループの起動テンプレートでユーザーデータに以下を書く。 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content…

CiliumのGetting StartedをKindでやってみた

Ciliumの理解が進まないので、Getting StartedをKindでやってみたメモ。 Getting Started Using Kind クラスターの作成 kind-config.yamlを作成する。 kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - rol…

jqでjsonにフィールドを追加する

以下のjsonにフィールドを追加したかったのでやり方のメモ。 { "cniVersion": "0.3.1", "name": "aws-cni", "plugins": [ { "name": "aws-cni", "type": "aws-cni", "vethPrefix": "eni" }, { "type": "portmap", "capabilities": { "portMappings": true },…

EKSでCiliumを試す

EKSでCiliumをネットワークポリシーエンジンとして使う方法を試してみる。CNIとしてCiliumを使う方法と、ネットワークポリシーエンジンとしてだけ使う方法があるが、後者。 https://docs.cilium.io/en/v1.9/gettingstarted/k8s-install-eks/ https://docs.ci…

EKSでIstioとCalicoは動くのか

EKSでCNIとしてCalico等を使うと、AdmissionWebhookが上手く動かないので、Istioのオートインジェクションが使えないらしいので確認する。 また、VPC CNI Pluign + Calicoなら大丈夫かを確認する。 https://github.com/istio/istio/issues/16434 クラスター…

Lambdaをコンテナで実行したときの実行ユーザーを確認する

Lambdaのコンテナイメージサポートを確認しつつ、実行ユーザーを確認したメモ。 参考リンク AWS Lambda の新機能 – コンテナイメージのサポート イメージの作成 イメージを作成する。RIC導入済みのベースイメージは以下のリンクに記載がある。Pythonのイメー…

Kubernetes での Seccomp入門

Seccompに入門したメモ。 SeccompはDockerではデフォルトで有効でDocker用の制限されたプロファイルがある。Kubernetesではデフォルトでは有効ではなく、指定する必要がある。ランタイムのデフォルトを参照することは可能。 参考リンク Restrict a Container…

AppArmor入門

AppArmorに入門したメモ。 AppArmorが使えるLinuxディストリビューションではDockerではデフォルトで有効で、Docker用の制限されたプロファイルがある。Kubernetesではデフォルトでは有効ではなく、指定する必要がある。ランタイムのデフォルトを参照するこ…

Kubernetes auditログの有効化

kubeadmクラスターでauditログを有効化するメモ。 参考リンク https://kubernetes.io/docs/tasks/debug-application-cluster/audit/ https://github.com/killer-sh/cks-course-environment/tree/master/course-content/runtime-security/auditing 手順 ディ…

startupProbeを使ってbashを取り除く

CKSコースで、コンテナをイミュータブルにするための強制方法の一つとして、starupProbeを使ってbashを取り除く方法が紹介されていたのでメモ。 そもそもstartupProbeを知らなかったが、1.18でベータ、1.20でGAしている。livenessProbe、readinessProbeに続…

Falcoを試す

Falcoを試したメモ。 参考リンク https://falco.org/docs/ https://v1-16.docs.kubernetes.io/docs/tasks/debug-application-cluster/falco/ インストール DaemonSetとしてインストールすることもできるが、ここではスタンドアローンでインストールする。 ht…

straceと/proc

straceの使い方と/procディレクトリに関するメモ。 straceはプロセスが読ぶシステムコールをトレースするユーティリティ。内部的にはptraceというシステムコールを使っている。 コマンドを引数で渡す。 root@cks-master:~# strace ls execve("/bin/ls", ["ls…

ImagePolicyWebhookを試す

ImagePolicyWebhookを有効にする手順を確認したメモ。実装はないので動かない。手順の確認のみ。 参考リンク https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook https://github.com/killer-sh/cks-course…

imagePullSecretsの使い方

プライベートレジストリのイメージを実行する手順を確認したメモ。 PublicなDockerHubに置いてあるsotoiwa540/flask-sampleをpullしてきてECRにpushする。 docker pull sotoiwa540/flask-sample:latest aws ecr create-repository --repository-name flask-s…