DD-WRTでWake on LAN
Administration -> WOL
でMAC Address・Hostname・Net Broadcastを入力しAdd Host
追加した機器のWake UP
で起動
Administration -> WOL
でMAC Address・Hostname・Net Broadcastを入力しAdd Host
追加した機器のWake UP
で起動
Step1: Create repositoryをクリックしてリポジトリを作成
Step2: リポジトリ名とPublic/Privateを選択Create repository
dockerアカウント名/dockerリポジトリ名:タグ名
になるdocker push dockerアカウント名/dockerリポジトリ名:タグ名
docker pull dockerアカウント名/リポジトリ名
Step1: DockerアカウントでDockerHUBにログイン
Step2: Create Repositoryを選択してリポジトリを作成
Step3: リポジトリ名とvisibility(public or private)を選択してCreate
Step4: 生成されたリポジトリページ
Step1: BuildsタブのAutomated Buildを選択
Step2: GitHubにログイン
Step3: Authorized Dockerを選択
step4: Linked Accountが設定される
作成したリポジトリにDockerfileをPush
1 | PS > git init |
連携したGitHubに対するPushイベントをトリガーにDockerHubでビルドを実行する。
Step1: BuildsタブのAutomated BuildでLink to GitHubを選択
Step2: Build ConfigurationでGitHubアカウントとGitHubリポジトリ名を選択し、Save and Build
Step3: Automated Buildsの状態を確認できる
Step4: PENDINGがSUCESSに変われば終了
Step5: Tagsタブで生成されたタグを確認
Step6: Generalタブでリポジトリの情報が確認できる
Step1: GitHubのリポジトリを更新する
1 | PS > git add -u |
Step2: 処理が開始される
Step3: SUCESSになれば終了
Step1: GitのタグをもとにDockerのタグを付与してビルドする例
Step2: タグ名を付与してPushする。
1 | PS > git tag -a タグ名 -m 'コメント' |
ssh-keygenコマンドでキーペアを生成する。
1 | PS > ssh-keygen -t rsa -C XXXXXXX@XXXXXXX -f XXXXXXX.key |
SSH and GPG keys - SSH Keys - New SSH Key
作成した公開鍵XXXXXXX.key.pub
の内容を登録する。
ここでは他のアカウントで使用している公開鍵を登録できない。
Windowsの標準のssh設定フォルダー(C:\Users\ログインユーザ名\.ssh
)にあるconfig
ファイルを以下のように構成する
1 | Host github-USER_X |
デフォルトパスで1つのみ使用する場合はssh -T git@github.com
で接続確認ができるがエラーになる
デバッグはssh -vT git@github.com
のようにvを付けることで詳細が出力される
1 | PS > ssh -T git@github.com |
使用するアカウントを指定する必要があるのでconfig
で指定したHostに接続する
1 | PS > ssh -T github-USER_X |
このままではgitコマンドコマンドを使用した際に接続エラーとなるため、接続先の切替を行う。
1 | PS > git remote -v |
新しリポジトリ作成時は以下の設定を行う
1 | PS > git clone https://github.com/<GIT_ACCOUNT>/<GIT_REPOSITORY_NAME> |
sudo pip install -U awscli
でアップデートできるが…
1 | $ aws --version |
アップデート後にaws-cliを実行するとImportError: No module named rsa
が発生。
1 | Traceback (most recent call last): |
Exceptions with the latest release #641を参考に、sudo pip install awscli --force-reinstall --upgrade
で再インストールによって復旧
GitをSingle Source of Truthとして扱い、ほぼすべての操作をGitを介して行う。
What exactly is GitOps? By using Git as our source of truth, we can operate almost everything. For example, version control, history, peer review, and rollback happen through Git without needing to poke around with tools like kubectl.
- Our provisioning of AWS resources and deployment of k8s is declarative
- Our entire system state is under version control and described in a single Git repository
- Operational changes are made by pull request (plus build & release pipelines)
- Diff tools detect any divergence and notify us via Slack alerts; and sync tools enable convergence
- Rollback and audit logs are also provided via Git
開発者はGitを扱える前提のPull Requestベースのソフトウェアデリバリーフローになっている。
- A pull request for a new feature is pushed to GitHub for review.
- The code is reviewed and approved by a colleague. After the code is revised, and re-approved it is merged to Git.
- The Git merge triggers the CI and build pipeline, runs a series of tests and then eventually builds a new image and deposits to the new image to a registry.
- The Weave Cloud ‘Deployment Automator’ watches the image registry, notices the image, pulls the new image from the registry and updates its YAML in the config repo.
- The Weave Cloud ‘Deployment Synchronizer’ (installed to the cluster), detects that the cluster is out of date. It pulls the changed manifests from the config repo and deploys the new feature to production.
一般的なCI/CDツールはPushベースのモデルで、CIをトリガーにデプロイまで行う。このモデルの問題点は本番クラスターの外部に認証情報を公開する必要があるということ。一方、GitOpsではPullベースのモデルで、クラスターが変更を検知して自動的に同期するため、外部に認証情報を持つ必要がない。
(ここはWeaveWorksの宣伝ポイント)
Most CI/CD tools available today use a push-based model. A push-based pipeline means that code starts with the CI system and may continue its path through a series of encoded scripts or uses ‘kubectl’ by hand to push any changes to the Kubernetes cluster.
The reason you don’t want to use your CI system as the deployment impetus or do it manually on the command line is because of the potential to expose credentials outside of your cluster. While it is possible to secure both your CI/CD scripts and the command line, you are working outside the trust domain of your cluster. This is generally not good practice and is why CI systems can be known as attack vectors for production.
2020年3月のWindowsUpdateで2つの機能が有効化される
LDAP認証はRFC4513で規定されてる。
バインド(bind)はLDAPサービスへのログインのこと。
ldapsarchでは-D
オプションでBIND DNとしてログインユーザを指定する。
RFCではBIND OperationとしてSimple Authentication MethodとSASL Authentication Methodが規定されている。
SASL(Simple Authentication and Security Layer)はRFC4422で規定されているプロトコルで、LDAPの他に、SMTP、IMAP、Databaseなどで利用される。
RFC4422のIntroductionで示されるように、利用するプロトコルと認証メカニズムの間の抽象化レイヤーとしてのフレームワークで、認証メカニズム自体は別のプロトコルと組み合わせて利用する。
認証メカニズムはIANAでSASL Mechanism Registryとして公開されている。
昔よく見かけたDIGEST-MD5やKERBEROS_V4はすでにOBSOLETE扱いで、CRAM-MD5やNTLMもLIMITED扱いになっている。
SASLが規定するのは認証(Authentication)、機密性(Confidentiality)、完全性(Integrity)が規定されているが、すべてを満たす必要はない。
GSS-APIはRFC5179で規定されている。
GSS-APIを使用したプログラミングについてはOracle GSS-APIのプログラミングが参考になる。
結局GSS-APIも抽象化レイヤーでしかなく、実態はKERBEROS_V5を使用する。
SASL Mechanism Registryで規定された、GSSAPIはRFC4752で規定されたKERVEROS_V5(GSSAPI)を使用したSASL Mechanism。
ActiveDirectoryのディレクトリサービスはLDAP v3でユーザ認証はKERBEROS_V5が使用されている。
LDAP署名(LDAP Signing)はSASLの完全性(Integrity)のためのintegrity verificationの機能。
ActiveDirectoryのSASL実装は既定の設定では認証(Authentication)のみを使用するが、LDAP署名を有効化することで完全性(Integrity)も使用することとなる。
チャネルバインディングは認証されたトランザクションと機密性(Confidentiality)が確保された通信路(セキュアチャネル)を結びつけ、man-in-the-middle攻撃から保護する機能。
チャネルバインディングはLDAPに関しての規定は見当たらないが、GSS-APIでチャネルバインディングが存在する。
セキュアチャネルにチャネルバインディングを使用する場合についてRFC5056で規定されている。セキュアチャネルとしてはSSHv2(SSH-CB)、TLS(TLS-CB)が示されている。
また、RFC6542でKERBEROS_V5のGSS-APIにおけるチャネルバインディングが規定されている。
いずれもわかりにくく、平易にチャネルバインディングについて説明されたものではないが、Microsoftの認証の拡張保護の概要がわかりやすい。
LinuxクライアントはChannel Binding Tokenを提出できないのではないか?(完全を設定した場合拒否されるのでは?)
延期された。
2020 年 2 月 5 日: セキュリティ アドバイザリ ADV190023 の更新に伴い、2020 年 3 月での更新予定内容を追加し、有効化措置の予定を 2020 年後半に変更しました。
めも
募集中