SPIRE: v1.1.0 変更内容

# はじめに

SPIRE v1.1.0 の変更内容を紹介します。

内容は下記CHANGELOGの翻訳です。
https://github.com/spiffe/spire/releases/tag/v1.1.0

:pencil: がついた文章は、CHANGELOG の公式内容ではなく筆者の補足です。

(以前のバージョン(v1.0.2)は https://qiita.com/ryysud/items/1b23ef5917fa9c21496b )

※この記事は、[Z Lab](https://qiita.com/organizations/zlab)の業務の一環として作成したものです。

## Added

- SPIREのコンテナイメージをGitHub Container Registryで公開するようにしました。今まで通りGoogle Container Registryでも公開し続けます。[#2576](https://github.com/spiffe/spire/pull/2576), [#2580](https://github.com/spiffe/spire/pull/2580)
  - :pencil: GHCRのものはベースイメージがalpineからscratchに変わりました。GCRのイメージは今まで通りですが廃止予定とのことです。
- SPIRE Serverが Federation管理のための[TrustDomain API](https://github.com/spiffe/spire-api-sdk/blob/main/proto/spire/api/server/trustdomain/v1/trustdomain.proto)を実装し、それに関するCLIコマンドも実装されました。(https://github.com/spiffe/spire/projects/11)
- SVIDStoreプラグインが有効となりました。これはAgentlessな仕組みを実現するためのものです。[#2176](https://github.com/spiffe/spire/pull/2176), [#2483](https://github.com/spiffe/spire/pull/2483)
  - :pencil: サーバレス環境でSPIREを使うためにSVIDをサードーパーティのシークレットストアに格納するためのプラグイン機構が導入されました。（[SPIFFE Meetup Tokyo #3 での SPIRE Updates](https://speakerdeck.com/ryysud/spire-updates?slide=28)にサーバレスサポートについての概要が紹介されています。)
- TPM DevID Node Attestorが新たなセレクタ `issuer:cn` を付与するようになりました。これは証明書の発行元のCommonNameを表します。[#2581](https://github.com/spiffe/spire/pull/2581)
- K8s Bundle Notifierプラグインが、複数クラスタをサポートしました。[#2531](https://github.com/spiffe/spire/pull/2531)
- AWS Secrets Manager SVIDStoreプラグインがビルトインとして実装されました。これはWorkload SVIDを AWS secretsに格納しLambdaなどから使うためのものです。[#2542](https://github.com/spiffe/spire/pull/2542)
- agent, entry をリストするCLIのコマンドに追加のフィルタリング機能が実装されました。[#2478](https://github.com/spiffe/spire/pull/2478), [#2479](https://github.com/spiffe/spire/pull/2479)
  - :pencil: `agent list`コマンドには`matchSelectorsOn`、`selector`というセレクタで絞り込むオプションが、`entry show`コマンドには`-matchSelectorsOn` と　`-matchFederatesWithOn`という絞り込みのルールを設定するオプションが追加されました。
- GCP CAS UpstreamAuthority にて`ca_pool`が設定できるようになりました。[#2569](https://github.com/spiffe/spire/pull/2569)

## Changed

- GCP CASのGAリリースにより、UpstreamAuthorityプラグインがCAの属するプールを知る必要が出てきました。この設定がないと、正しいCAを特定するために無駄にCAプールをスキャンする必要があります。このスキャンする動作は将来廃止予定です。[#2569](https://github.com/spiffe/spire/pull/2569)
- [K8s Workload Registrar](https://github.com/spiffe/spire/tree/main/support/k8s/k8s-workload-registrar)はKubernetes1.22をサポートしました。[2515](https://github.com/spiffe/spire/pull/2515), [#2540](https://github.com/spiffe/spire/pull/2540)
- 自己署名CA証明書のシリアルナンバーをRFC5280に準拠させました。[#2490](https://github.com/spiffe/spire/pull/2494)
- AWS KMS Key Managerプラグインが より制限のきついポリシーで鍵を作るようになりました。[#2424](https://github.com/spiffe/spire/pull/2424)
- 廃止予定だったagentの鍵ファイル(svid.key)を削除しました。これはv1.0からv0.12にロールバックする時のためだけにサポートしていたものです。[#2493](https://github.com/spiffe/spire/pull/2493)

## Removed

- 廃止予定だったRegistration APIは削除されました。[#2487](https://github.com/spiffe/spire/pull/2487)
- レガシープラグイン(v0)は削除されました。全てのプラグインはplugin SDKを使う必要があります。
- SAT と PSAT Node Attestor プラグインで設定できた、`service_account_whitelist`が削除されました。[#2543](https://github.com/spiffe/spire/pull/2543)
- GCP IIT Node Attestor プラグインで設定できた `projectid_whitelist`が削除されました。[#2492](https://github.com/spiffe/spire/pull/2492)
- SPIRE Serverの引数で、廃止予定だった`bundle_endpoint`　と`registration_uds_path`という設定が削除されました。([#2486](https://github.com/spiffe/spire/pull/2486), [#2519](https://github.com/spiffe/spire/pull/2519))

## Fixed

- GCP CAS UpstreamAuthorityはGAリリースされた GCP CASをサポートするようになりました。[#2569](https://github.com/spiffe/spire/pull/2569)
- scratchベースのイメージをサポートするために幾つかの問題を修正しました。[#2582](https://github.com/spiffe/spire/pull/2582)
- Kubernetes Workload Attestorが正式なパスでservice account tokenを使うようになりました。[#2583](https://github.com/spiffe/spire/pull/2583)
- SPIRE ServerのsocketPathオプションは設定ファイルにより上書きされるようになりました。[#2570](https://github.com/spiffe/spire/pull/2570)
- SPIRE Serverは強制シャットダウンののちにも正しく再起動できるようになりました。 [#2496](https://github.com/spiffe/spire/pull/2496)
- CLIのagent listコマンドが大量のエントリがある場合も動作するようになりました。 [#2456](https://github.com/spiffe/spire/pull/2456)