

# セキュリティグループの更新とピアセキュリティグループの参照
<a name="vpc-peering-security-groups"></a>

VPC セキュリティグループのインバウンドルールまたはアウトバウンドルールを更新して、ピアリング接続された VPC のセキュリティグループを参照できます。これにより、トラフィックはピアリング接続された VPC の参照セキュリティグループに関連付けられたインスタンスに出入りできます。

**注記**  
ピア VPC のセキュリティグループは、コンソールで選択できるものとして表示されません。

**要件**
+ ピア VPC でセキュリティグループを参照するには、VPC ピアリング接続の状態が `active` である必要があります。
+ ピア VPC はアカウントの VPC とするか、別の AWS アカウントの VPC とすることができます。別の AWS アカウントにあるが、同じリージョンに存在するセキュリティグループを参照するには、セキュリティグループの ID を持つアカウント番号を含めます。例えば、`123456789012/sg-1a2b3c4d`。
+ 別のリージョンにあるピア VPC のセキュリティグループは参照できません。代わりに、ピア VPC の CIDR ブロックを使用します。
+ ミドルボックスアプライアンスを介して異なるサブネット内の 2 つのインスタンス間のトラフィックを転送するようにルートを設定するには、両方のインスタンスのセキュリティグループでインスタンス間のトラフィックがフローできるようにする必要があります。各インスタンスのセキュリティグループは、他のインスタンスのプライベート IP アドレス、または他のインスタンスを含むサブネットの CIDR 範囲を送信元として参照する必要があります。他のインスタンスのセキュリティグループを送信元として参照する場合、インスタンス間のトラフィックは許可されません。

**コンソールを使用してセキュリティグループルールを更新するには**

1. Amazon VPC コンソール ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) を開きます。

1. ナビゲーションペインで、[**セキュリティグループ**] を選択します。

1. セキュリティグループを選択し、次のいずれかを実行します。
   + インバウンドルールを変更するには、**[アクション]**、**[インバウンドルールを編集]** の順に選択します。
   + アウトバウンドルールを変更するには、**[アクション]**、**[アウトバウンドルールを編集]** の順に選択します。

1. ルールを追加するには、**[ルールの追加]** を選択し、タイプ、プロトコル、ポート範囲を指定します。**[送信元]** (インバウンドルール) または **[送信先]** (アウトバウンドルール) で、次のいずれかの操作を行います。
   + 同じアカウントとリージョンのピア VPC の場合は、セキュリティグループの ID を入力します。
   + 別のアカウントにあるが、同じリージョンに存在するピア VPC の場合は、アカウント ID とセキュリティグループ ID をスラッシュで区切って入力します (例: `123456789012/sg-1a2b3c4d`)。
   + 別のリージョンに存在するピア VPC の場合は、ピア VPC の CIDR ブロックを入力します。

1. 既存のルールを編集するには、値 (ソースや説明など) を変更します。

1. ルールを削除するには、ルールの隣にある **[削除]** を選択します。

1. **[Save Rules]** (ルールの保存) を選択してください。

**コマンドラインを使用してインバウンドルールを更新するには**
+ [authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html) および [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html) (AWS CLI)
+ [Grant-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupIngress.html) および [Revoke-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupIngress.html) (AWS Tools for Windows PowerShell)

例えば、ピア VPC の `sg-bbbb2222` からの HTTP 経由のインバウンドアクセスを許可するようにセキュリティグループ `sg-aaaa1111` を更新するには、次のコマンドを使用します。ピア VPC が同じリージョンに存在するが、別のアカウントにある場合は、`--group-owner` *aws-account-id* を追加します。

```
aws ec2 authorize-security-group-ingress --group-id sg-aaaa1111 --protocol tcp --port 80 --source-group sg-bbbb2222
```

**コマンドラインを使用してアウトバウンドルールを更新するには**
+ [authorize-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-egress.html) および [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html) (AWS CLI)
+ [Grant-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupEgress.html) および [Revoke-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupEgress.html) (AWS Tools for Windows PowerShell)

セキュリティグループルールを更新したら、[describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html) コマンドを使って、セキュリティグループルールで参照されるセキュリティグループを確認します。

## 参照されるセキュリティグループを特定する
<a name="vpc-peering-referenced-groups"></a>

セキュリティグループがピア VPC のセキュリティグループのルールで参照されているかどうかを確認するには、アカウントの 1 つ以上のセキュリティグループに対して、次のいずれかのコマンドを使用します。
+ [describe-security-group-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-group-references.html) (AWS CLI)
+ [Get-EC2SecurityGroupReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SecurityGroupReference.html) (AWS Tools for Windows PowerShell)

次の例では、応答はセキュリティグループ `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 の所有者が、参照されたセキュリティグループを削除した場合、セキュリティグループルールは古くなります。

## 古くなったセキュリティグループルールを表示および削除する
<a name="vpc-peering-stale-groups"></a>

古いセキュリティグループルールとは、同じ VPC またはピア VPC 内の削除されたセキュリティグループを参照するルール、または VPC ピアリング接続が削除されたピア VPC のセキュリティグループを参照するルールのことです。セキュリティグループルールは古くなっても、セキュリティグループから自動的に削除されません。手動で削除する必要があります。VPC ピアリング接続が削除されたためにセキュリティグループルールが古くなった場合、同じ VPC で新しい VPC ピアリング接続を作成すると、そのルールは古くなったとマークされなくなります。

Amazon VPC コンソールを使用して、VPC の古くなったセキュリティグループルールを表示および削除できます。

**古くなったセキュリティグループルールを表示および削除するには**

1. Amazon VPC コンソール ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) を開きます。

1. ナビゲーションペインで、**[Security Groups]** (セキュリティグループ) を選択します。

1. [**Action**] (アクション)、[**Manage stale rules**] (古いルールの管理) の順に選択します。

1. **VPC** で古いルールを持つ VPC を選択します。

1. [**Edit**] を選択します。

1. 削除するルールの横にある [**Delete**] (削除) ボタンを選択します。[**変更のプレビュー**]、[**ルールの保存**] を選択します。

**コマンドラインを使用して古いセキュリティグループルールを記述するには**
+ [describe-stale-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-stale-security-groups.html) (AWS CLI)
+ [Get-EC2StaleSecurityGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2StaleSecurityGroup.html) (AWS Tools for Windows PowerShell)

次の例では、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](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html) コマンドまたは [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html) コマンドを使用してそれらのルールを削除できます。