いくつかの異なるAMIビルドのビルド/プロビジョニングを管理するパッカー.jsonファイルがあります。各AMIの違いは、変更する内容に応じて、異なるbase-config.json変数セットをpackerに渡すことによって設定されます(たとえば、base_config-us-west-1.jsonとbase_config-us-east-2がある場合など)。 jsonを選択し、vpc_id、subnet_id & security_group_idフィールドに値を設定します)。ユーザ変数を使用してpackerでsnapshot_usersオプションを設定する方法
外部account_idにkms_key_idを使用し、新しく作成されたスナップショットへのアクセス権をキーを所有するaccount_idに付与するAMIを構築する必要があります。
.jsonがこの新しいAMIのためだけのものだったなら、私は簡単に"snapshot_users" : [ "{{user external_account_id}}" ]
をjsonに追加して、それを使って完了させることができました。ただし、.jsonに"snapshot_users" : [ "" ]
があっても、デフォルトのkms_key_idが使用されている場合("kms_key_id": ""
のように)、「デフォルトのKMSキーで暗号化されたスナップショットを共有できません」というエラーでbakeが失敗します。
セクションには、packerコマンドに指定された基準によってのみsnapshot_users
オプションを挿入できますか、またはec2-api-toolsを使用してビルドのアクセス許可を変更する必要があります。複数の完全な.jsonファイルを持つことで、別のAMIを構築することはできません)。
snapsho_users配列が空であるか、空の文字列のみを含むかどうかをパッカーが認識する必要があるため、おそらくパッカーのバグです。無視することができます。