セキュリティグループの更新とピアセキュリティグループの参照
VPC セキュリティグループのインバウンドルールまたはアウトバウンドルールを更新して、ピアリング接続 VPC のセキュリティグループを参照できます。これにより、トラフィックはピア VPC の参照されるセキュリティグループに関連付けられたインスタンスに出入りできます。
要件
-
ピア VPC はアカウントの VPC とするか、別の AWS アカウントの VPC とすることができます。別の AWS アカウントのセキュリティグループを参照するには、[Source] (送信元) または [Destination] (送信先) フィールドにアカウント番号 (
123456789012/sg-1a2b3c4d
など) を含めます。 -
別のリージョンにあるピア VPC のセキュリティグループは参照できません。代わりに、ピア VPC の CIDR ブロックを使用します。
-
ピア VPC でセキュリティグループを参照するには、VPC ピアリング接続の状態が
active
である必要があります。 -
ミドルボックスアプライアンスを介して異なるサブネット内の 2 つのインスタンス間のトラフィックを転送するようにルートを設定するには、両方のインスタンスのセキュリティグループでインスタンス間のトラフィックがフローできるようにする必要があります。各インスタンスのセキュリティグループは、他のインスタンスのプライベート IP アドレス、または他のインスタンスを含むサブネットの CIDR 範囲を送信元として参照する必要があります。他のインスタンスのセキュリティグループを送信元として参照する場合、インスタンス間のトラフィックは許可されません。
コンソールを使用してセキュリティグループルールを更新するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで [セキュリティグループ] をクリックします。
-
セキュリティグループを選択し、インバウンドのルールを変更する場合は [アクション] で [インバウンドのルールを編集] を、アウトバウンドのルールを変更する場合は [アクション] で [アウトバウンドのルールを編集] を選択します。
-
ルールを追加するには、[ルールの追加] を選択し、タイプ、プロトコル、ポート範囲を指定します。[送信元] (インバウンドのルールの場合) または [送信先] (アウトバウンドのルールの場合) に、ピア VPC が同じリージョンにある場合は ピア VPC のセキュリティグループの ID を、別のリージョンにある場合はピア VPC の CIDR ブロックを入力します。
注記
ピア VPC のセキュリティグループは自動的に表示されません。
-
既存のルールを編集するには、値 (ソースや説明など) を変更します。
-
ルールを削除するには、ルールの隣にある [削除] を選択します。
-
[Save Rules] (ルールの保存) を選択します。
コマンドラインを使用してインバウンドルールを更新するには
-
authorize-security-group-ingress (AWS CLI)
-
Grant-EC2SecurityGroupIngress (AWS Tools for Windows PowerShell)
-
Revoke-EC2SecurityGroupIngress (AWS Tools for Windows PowerShell)
-
revoke-security-group-ingress (AWS CLI)
コマンドラインを使用してアウトバウンドルールを更新するには
-
authorize-security-group-egress (AWS CLI)
-
Grant-EC2SecurityGroupEgress (AWS Tools for Windows PowerShell)
-
Revoke-EC2SecurityGroupEgress (AWS Tools for Windows PowerShell)
-
revoke-security-group-egress (AWS CLI)
例えば、セキュリティグループ sg-aaaa1111
を更新して、ピア VPC にある sg-bbbb2222
から HTTP を介したインバウンドアクセスを許可するには、次の AWS CLI コマンドを使用できます。
aws ec2 authorize-security-group-ingress --group-id
sg-aaaa1111
--protocol tcp --port80
--source-groupsg-bbbb2222
セキュリティグループルールを更新したら、describe-security-groups コマンドを使って、セキュリティグループルールで参照されるセキュリティグループを確認します。
参照されるセキュリティグループを特定する
セキュリティグループがピア VPC のセキュリティグループのルールで参照されているかどうかを確認するには、アカウントの 1 つ以上のセキュリティグループに対して、次のいずれかのコマンドを使用します。
-
describe-security-group-references (AWS CLI)
-
Get-EC2SecurityGroupReference (AWS Tools for Windows PowerShell)
-
DescribeSecurityGroupReferences (Amazon EC2 Query API)
次の例では、応答はセキュリティグループ sg-bbbb2222
が VPC のセキュリティグループ vpc-aaaaaaaa
で参照されていることを示します。
aws ec2 describe-security-group-references --group-id
sg-bbbb2222
{
"SecurityGroupsReferenceSet": [
{
"ReferencingVpcId": "vpc-aaaaaaaa",
"GroupId": "sg-bbbb2222",
"VpcPeeringConnectionId": "pcx-b04deed9"
}
]
}
VPC ピアリング接続が削除されたか、またはピア VPC の所有者が、参照されたセキュリティグループを削除した場合、セキュリティグループルールは古くなります。
古いセキュリティグループルールを操作する
古いセキュリティグループルールとは、同じ VPC またはピア VPC 内の削除されたセキュリティグループを参照するルール、または VPC ピアリング接続が削除されたピア VPC のセキュリティグループを参照するルールのことです。セキュリティグループルールは古くなっても、セキュリティグループから自動的に削除されません。手動で削除する必要があります。VPC ピア接続が削除されたためにセキュリティグループルールが古くなった場合、同じ VPC で新しい VPC ピア接続を作成すると、そのルールは古くなったとマークされなくなります。
Amazon VPC コンソールを使用して、VPC の古くなったセキュリティグループルールを表示および削除できます。
古くなったセキュリティグループルールを表示および削除するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[Security Groups] (セキュリティグループ) を選択します。
-
[Action] (アクション)、[Manage stale rules] (古いルールの管理) の順に選択します。
-
VPC で古いルールを持つ VPC を選択します。
-
[Edit] を選択します。
-
削除するルールの横にある [Delete] (削除) ボタンを選択します。[変更のプレビュー]、[ルールの保存] を選択します。
コマンドラインまたは API を使用して古いセキュリティグループルールを記述するには
-
describe-stale-security-groups (AWS CLI)
-
Get-EC2StaleSecurityGroup (AWS Tools for Windows PowerShell)
-
DescribeStaleSecurityGroups (Amazon EC2 Query API)
次の例では、VPC A (vpc-aaaaaaaa
) および VPC B がピア接続され、VPC ピア接続は削除されています。VPC A のセキュリティグループ sg-aaaa1111
は VPC B の sg-bbbb2222
を参照します。VPC に対して describe-stale-security-groups
コマンドを実行すると、応答では、セキュリティグループ sg-aaaa1111
に、sg-bbbb2222
を参照する古くなった SSH ルールがあることが示されます。
aws ec2 describe-stale-security-groups --vpc-id
vpc-aaaaaaaa
{
"StaleSecurityGroupSet": [
{
"VpcId": "vpc-aaaaaaaa",
"StaleIpPermissionsEgress": [],
"GroupName": "Access1",
"StaleIpPermissions": [
{
"ToPort": 22,
"FromPort": 22,
"UserIdGroupPairs": [
{
"VpcId": "vpc-bbbbbbbb",
"PeeringStatus": "deleted",
"UserId": "123456789101",
"GroupName": "Prod1",
"VpcPeeringConnectionId": "pcx-b04deed9",
"GroupId": "sg-bbbb2222"
}
],
"IpProtocol": "tcp"
}
],
"GroupId": "sg-aaaa1111",
"Description": "Reference remote SG"
}
]
}
古くなったセキュリティグループルールを特定した後、revoke-security-group-ingress コマンドまたは revoke-security-group-egress コマンドを使用してそれらのルールを削除できます。