説明
AMI は必要な AWS アカウントだけに共有してください。承認済みの複数アカウントへの共有は正当な運用方法であり、特定のアカウントへの共有が公開共有を意味するわけではありません。ただし、共有先が増えるほど、誰が AMI を使用できるかの管理は難しくなります。
AMI には、アプリケーションコード、エージェント、運用設定などが含まれる場合があります。不要なアカウントにも起動許可があると、社内基準が適用されていない環境にイメージが広がる可能性があります。
想定される影響
- イメージの拡散: 業務上の必要がないアカウントも、その AMI からインスタンスを起動できます。
- 運用管理の複雑化: どのアカウントがどのイメージを使用しているかを追跡しにくくなります。
- 機密設定が広がる可能性: イメージ内の設定やエージェント構成が、より多くの環境に渡る可能性があります。
対処方法
- 各 AMI の共有先を、実際に必要なアカウントに限定してください。
- 共通利用するイメージと、個別アカウント専用のイメージを分けて管理してください。
aws_ami_launch_permissionを定期的に確認し、不要になったアカウントの起動許可を削除してください。
例
AMI とアカウント ID は例示です。対象リージョンで所有する実際の AMI と、承認済みの 12 桁のアカウント ID を使用してください。
変更前
hcl
resource "aws_ami_launch_permission" "example_a" {
image_id = "ami-0abcdef1234567890"
account_id = "123456789012"
}
resource "aws_ami_launch_permission" "example_b" {
image_id = "ami-0abcdef1234567890"
account_id = "111122223333"
}
変更後
hcl
resource "aws_ami_launch_permission" "example_a" {
image_id = "ami-0abcdef1234567890"
account_id = "123456789012"
}
変更前は、2 つのアカウントが同じ AMI を起動できます。変更後は、承認済みの最初のアカウントだけに起動許可を残しています。両方のアカウントに必要であれば両方の許可を維持し、すでに展開またはコピーされたイメージの管理も別途確認してください。