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

defaultAllowPrivilegeEscalationの挙動

PodSecuriyPolicyのdefaultAllowPrivilegeEscalationの意味がよくわからなかったので、確認したメモ。 まず、KubernetesのデフォルトでPSPを有効にしていない状態では、権限昇格は許可されている。 root@cks-master:~# k run pod1 --image=nginx pod/pod1 cr…

プロセスの権限の確認

プロセスに与えられているケーパビリティーや、権限昇格を許されているかなどを確認するには以下を見ればよい。 cat /proc/<PID>/status / # cat /proc/1/status Name: sleep Umask: 0022 State: S (sleeping) Tgid: 1 Ngid: 0 Pid: 1 PPid: 0 TracerPid: 0 Uid: </pid>…

kubeadmクラスターでcontainerd/runscを使う

kubeadmで作成したクラスターでランタイムをDocker/conainerd/runcからcontainerd/runsc(gvisor)に変えてみたメモ。 参考リンク https://gvisor.dev/docs/user_guide/install/ https://github.com/killer-sh/cks-course-environment/tree/master/course-cont…

kubeadmクラスターでetcdでのSecretの暗号化を有効にする

kubeadmで作成したクラスターでetcdでのSecretの暗号化を有効にする方法のメモ。 デフォルト状態 デフォルト状態ではSecretは暗号化されていないので、etcdctlを使ってetcdに直接アクセスすれば見ることができる。 Secretを作成する。 root@cks-master:~# k …

EKSのkube-apiserverの設定の確認

CKSの勉強をしていて、kube-apiserverの特にセキュリティまわりの設定ポイントを学んだので、EKSの場合はどうなのかを確認したメモ。 フラグの確認方法 kuber-apiserverの起動フラグを確認するには、コントロールプレーンのロギングを有効化して、ログを見れ…

ユーザーの証明書でEKSにアクセスできるのか

EKSクラスターへのアクセスは普通はIAMで行うが、それ以外のやり方で行うとしたら以下がありそう。 ユーザーの証明書を発行する ServiceAccountを作ってそのトークンをダウンロードして使う できるのかを確認しようとしたメモ。 コンポーネント バージョン …

スペースを改行に置換

プロセスの引数が長いとき、スペースを改行に置換してあげると多少見やすい。 ps -ef | grep kubelet | tr ' ' '\n' root@cks-master:~# ps -ef | grep kubelet root 1178 1 3 17:46 ? 00:01:00 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bo…

Kubernetes The Hard Way関連リンク

オリジナル https://github.com/kelseyhightower/kubernetes-the-hard-way 日本語訳・解説 https://github.com/inductor/kubernetes-the-hard-way Kubernetes The Hard Wayする AWS版 https://github.com/prabhatsharma/kubernetes-the-hard-way-aws https:/…

kubectl proxyとkubectl port-forword

ClusterIPで公開されたPodにアクセスするには普通はkubectl port-forwardを使う。 k port-forward grafana-5fc4f5779d-wbmsd 3000:3000 # あるいは k port-forward deploy/grafana 3000:3000 # あるいは k port-forward svc/grafana 3000:80 これでhttp://lo…

curlで名前解決

curlで名前解決のメモ。 Nginx Ingress Controllerを使って以下のようなIngressリソースを作成したとする。 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: secure-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / s…

kubeadmでEKS Distroをデプロイする

kubeadmでEKS Distroをデプロイしてみたメモ。 kubeadmを使用したシングルコントロールプレーンクラスターの作成 AWSでCentOS 7にKubernetes 1.11をkubeadmでインストール Running Kubernetes cluster with Amazon EKS Distro across AWS Snowball Edge シン…

CloudShellをいい感じにセットアップする

CloudShellをいい感じにセットアップするメモ。随時更新予定。 ツールの導入。 sudo yum -y install bash-completion mkdir -p $HOME/bin curl -L "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar …

aws-auth ConfigMapの書き方

いつもわからなくなるのでメモ。 apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - groups: - system:bootstrappers - system:nodes rolearn: arn:aws:iam::XXXXXXXXXX:role/eksctl-ekshandson-nodegro…

EKS Distroをkopsで試す

EKS Distroをkopsで動かしてみたメモ。 参考リンク EKS Distro Amazon EKS Distro: Amazon EKS で使用される Kubernetes ディストリビューション 手順 https://distro.eks.amazonaws.com/users/index.html まずリポジトリをクローンする。 git clone git@git…

ALBの後ろにLambdaを置いてみる

ALBの後ろにLambdaを置いてみたメモ。 アプリケーションロードバランサー(ALB)のターゲットにAWS Lambdaが選択可能になりました 手順 マネコンでLambda関数を作成する。以下を設定しその他はデフォルトを選択。 項目 値 備考 作成方法 一から作成 関数名 myH…

KindでEKS Distroを起動する

KindでEKS Distroを起動してみたメモ。 Unboxing EKS Distro! #ContainersFromTheCouch EKS Distro Amazon EKS Distro: Amazon EKS で使用される Kubernetes ディストリビューション 手順 Kindのクラスター定義ファイルを作成する。これはKubestackが提供し…

kops を試す

kopsを試してみたメモ。 コンポーネント バージョン 備考 kops 1.18.2 参考リンク https://github.com/kubernetes/kops https://kops.sigs.k8s.io/ kopsを使ったAWS上でのKubernetesのインストール kopsを使ってKubernetesクラスタをAWS上で構成 手順 準備 G…

EFKによるロギングのチュートリアル

eksworkshopのEFKスタックによるロギングのチュートリアルをやってみたメモ。 コンポーネント バージョン 備考 eksctl 0.32.0 Kubernetes バージョン 1.18 プラットフォームのバージョン eks.3 Elasticsearch のバージョン 7.4 AWS for Fluent Bit 2.9.0 参…

OPAのチュートリアル

eksworkshop.comのOPAのチュートリアルをやってみたメモ。 コンポーネント バージョン 備考 eksctl 0.31.0 Kubernetes バージョン 1.18 プラットフォームのバージョン eks.2 Gatekeeper 3.1.0 参考リンク Using Open Policy Agent (OPA) for policy-based co…

EKSでPodSecurityPolicyを適用する

EKSでPodSecurityPolicyをちゃんと設定する方法を確認してみたメモ。 コンポーネント バージョン 備考 eksctl 0.31.0 Kubernetes バージョン 1.18 プラットフォームのバージョン eks.2 kube-psp-advisor 2.0.0 参考リンク ポッドのセキュリティポリシー Usin…

Fargateタスクでターゲット追跡スケーリングとスケジュールスケーリングの併用

ターゲット追跡スケーリングとスケジュールスケーリングを併用できるのか確認したメモ。 参考リンク ECSをスケジュールベースでスケールさせる スケジュールに基づくスケーリング AWS CLI を使用した開始方法 put-scheduled-action 準備 前回の続きとして実…

Fargateタスクをカスタムメトリクスでターゲット追跡オートスケーリングさせる

マネジメントコンソールからはECSタスク用にApplication Auto Scalingで事前定義された以下のメトリクスでのターゲット追跡スケーリングが設定できる。 ECSServiceAverageCPUUtilization (Average) ECSServiceAverageMemoryUtilization (Average) ALBRequest…

external-dnsを試す

external-dnsを試してみたメモ。 前回AWS Load Balancer Controllerを試したクラスターをそのまま使う。 コンポーネント バージョン 備考 eksctl 0.30.0 Kubernetes バージョン 1.18 プラットフォームのバージョン eks.1 aws-load-balancer-controller 2.0.0…

AWS Load Balancer Controllerを試す

AWS Load Balancer Controllerを試してみたメモ。 コンポーネント バージョン 備考 eksctl 0.30.0 Kubernetes バージョン 1.18 プラットフォームのバージョン eks.1 aws-load-balancer-controller 2.0.0 参考リンク [What's New]Introducing the AWS Load Ba…

Elastic BeanstalkのFlaskチュートリアル

Elastic Beanstalkの理解のためにFlaskでのチュートリアルをやってみたメモ。 Elastic Beanstalk への flask アプリケーションのデプロイ 仮想環境の設定 ローカルのPythonのバージョンを確認する。 $ python --version Python 2.7.16 $ python3 --version P…

kube-benchでEKSのCISベンチマークを実行してみる

kube-benchを使ってEKSのCISベンチマークを実行してみたメモ。EKS Workshopにトピックがあるのでそちらにしたがって実施する。 コンポーネント バージョン 備考 eksctl 0.27.0 Kubernetes バージョン 1.17 プラットフォームのバージョン eks.3 kube-bench 0.…

Organizations配下のマルチアカウントでのConfigアグリゲータの設定

Organizations配下のマルチアカウントでのAWS Config設定 上記の続きで、アグリゲータを設定したメモ。 参考リンク マルチアカウントマルチリージョンのデータ集約 AWS::Config::ConfigurationAggregator 方針 ユーザーガイドにはマネジメントコンソールやCL…

Telepresenceを試す

Telepresenceを試してみたメモ。 大きくは3つの機能がある。 ローカルのプロセスをクラスターのDelpoymentと入れ替える機能 ローカルのプロセスをクラスター と接続する機能 ローカルマシンにクラスターのDeploymentへのアクセスを流す 準備 Installing Tele…

MFAが必須の場合のCLIでのスイッチロール

MFAが必須の場合のCLIでのスイッチロール方法のメモ。 参考リンク MFA トークンを使用して、AWS CLI 経由で AWS リソースへのアクセスを認証する方法を教えてください。 CLIでのスイッチロール アクセスキーだけでMFAが必須なIAMロールへスイッチロールする…

CLIでのスイッチロール

CLIでスイッチロールする方法のメモ。 アカウント111111111111から222222222222のhogehoge-roleロールにスイッチする アカウント222222222222ではアカウント111111111111を信頼したhogehoge-roleロールが作成済み コマンドでスイッチロール 現在のアイデンテ…