[アップデート] Amazon QuickSight の KMS 設定が API から行えるようになりました

2024.05.25

いわさです。

昨今 Amazon QuickSight では色々な機能が API から操作出来るようになってきています。
これによって、例えば QuickSight を含むインフラ環境導入の自動化などが徐々に行いやすくなってきています。

先日のアップデートでまた API 経由でアクセス出来る機能が増えました。SPICE 暗号化用の KMS キーです。

SPICE の暗号化に KMS を使う機能自体は数年前からえるようになっていましたが、これまでは管理コンソールから手動での構成が必要でした。

登録方法

今回のアップデートで次の API が新しく追加されています。

使い方は KMS を事前に用意しておき、ARN を API で指定する形です。
作成する KMS にはいくつか条件がありまして、そのあたりは前述のブログをご確認ください。

KeyRegistrationに複数指定することが出来ます。
QuickSight の KMS 管理機能にはデフォルトとそれ以外の概念がありまして、DefaultKeyでそのあたりを指定することも出来ます。

% cat hoge.json 
{
    "AwsAccountId": "123456789012",
    "KeyRegistration": [
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/cb152993-1581-46f2-bb3e-abad68146413",
            "DefaultKey": true
        }
    ]
}
% aws-v1 quicksight update-key-registration --cli-input-json file://hoge.json  
{
    "FailedKeyRegistration": [],
    "SuccessfulKeyRegistration": [
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/cb152993-1581-46f2-bb3e-abad68146413",
            "StatusCode": 200
        }
    ],
    "RequestId": "7b526d5b-6d74-4159-b7f1-5c6eefad4dc1"
}

API 実行後に管理コンソールを確認してみると次のように KMS キーが連携されていました。良いですね。

複数キーの登録 & デフォルト変更

なお、登録と更新で API は分かれていません。
ためしにKeyRegistrationに複数登録しつつ、デフォルトキー属性も変更してみましょう。

% cat hoge.json
{
    "AwsAccountId": "123456789012",
    "KeyRegistration": [
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/cb152993-1581-46f2-bb3e-abad68146413",
            "DefaultKey": false
        },
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/fa89e5e2-e19e-455a-8471-05870871a971",
            "DefaultKey": true
        }
    ]
}
% aws-v1 quicksight update-key-registration --cli-input-json file://hoge.json
{
    "FailedKeyRegistration": [],
    "SuccessfulKeyRegistration": [
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/cb152993-1581-46f2-bb3e-abad68146413",
            "StatusCode": 200
        },
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/fa89e5e2-e19e-455a-8471-05870871a971",
            "StatusCode": 200
        }
    ],
    "RequestId": "e35efc61-7cf9-42bb-8e9c-dadc2fdd5b80"
}

更新出来ましたね。
新しいキーが登録されつつ、先程登録したキーの情報も更新されています。

確認する

describe-key-registrationコマンドを使うことでキーの情報を取得することも出来るようになりました。
使ってみましょう。

% aws-v1 quicksight describe-key-registration --aws-account-id 123456789012    
{
    "AwsAccountId": "123456789012",
    "KeyRegistration": [
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/cb152993-1581-46f2-bb3e-abad68146413",
            "DefaultKey": false
        },
        {
            "KeyArn": "arn:aws:kms:ap-northeast-1:123456789012:key/fa89e5e2-e19e-455a-8471-05870871a971",
            "DefaultKey": true
        }
    ],
    "RequestId": "b3da0a8b-6474-44b8-b4c3-5d18f3c9e90f",
    "Status": 200
}

QuickSight コンソールではキーエイリアスなども表示されていましたが、このコマンドからは取得出来ないので注意しましょう。

キー登録をクリアする

登録済みキーのクリア方法ですが、これもupdate-key-registrationを使います。
KeyRegistrationで指定されていないものはクリアされます。
この点は注意しましょう。新しいキーを登録しようとして既存のキーを解除してしまったということがおきそうです。
先程のdescribe-key-registrationで登録済み情報を取得し、それをベースに情報を加工して UPDATE するのが良さそうですね。

% cat hoge.json
{
    "AwsAccountId": "123456789012",
    "KeyRegistration": [
    ]
}
% aws-v1 quicksight update-key-registration --cli-input-json file://hoge.json
{
    "FailedKeyRegistration": [],
    "SuccessfulKeyRegistration": [],
    "RequestId": "2e922859-dbc5-4126-83d1-acfd5fb04f6b"
}

さいごに

本日は Amazon QuickSight の KMS 設定が API から行えるようになったので使ってみました。

QuickSight プロビジョニング処理を自動化したい場合には、KMS 周りも API 操作出来るようになりましたので覚えておきましょう。
ただ、登録・更新・削除すべてがupdate-key-registrationで実行される形ですので、使う際にはその点注意しましょう。