VPC ピアリングの Identity and Access Management - Amazon Virtual Private Cloud

VPC ピアリングの Identity and Access Management

デフォルトでは、 ユーザーは VPC ピア接続を作成または変更することはできません。VPC ピアリングリソースへのアクセス許可を付与するには、IAM アイデンティティ (ロールなど) に IAM ポリシーをアタッチします。

Amazon VPC アクションのリストと、各アクションでサポートされているリソースと条件キーについては、「サービス認証リファレンス」の「Amazon EC2 のアクション、リソース、および条件キー」を参照してください。

例: VPC ピアリング接続の作成

次のポリシーでは、Purpose=Peering というタグが付いている VPC のみを使用して VPC ピアリング接続リクエストを作成するアクセス許可をユーザーに付与しています。最初のステートメントでは、条件キー (ec2:ResourceTag) が VPC リソースに適用されます。CreateVpcPeeringConnection アクションの VPC リソースは、常にリクエスタ VPC であることに注意してください。

2 番目のステートメントでは、VPC ピアリング接続リソースを作成するためのアクセス許可をユーザーに与えます。このため、特定のリソース ID の代わりにワイルドカード * が使用されます。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id:vpc/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Peering" } } }, { "Effect": "Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id:vpc-peering-connection/*" } ] }

次のポリシーでは、特定の AWS アカウントのユーザーに、特定のリージョン内の任意の VPC を使用して VPC ピアリング接続を作成するアクセス許可を付与しています。ただし、ピアリング接続を受け入れる VPC が指定されたアカウントの特定の VPC である場合に限ります。

{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id-1:vpc/*" }, { "Effect": "Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id-1:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:AccepterVpc": "arn:aws:ec2:region:account-id-2:vpc/vpc-id" } } } ] }

例: VPC ピアリング接続の承認

次のポリシーでは、特定の AWS アカウントから VPC ピアリング接続リクエストを受け入れるアクセス許可をユーザーに付与しています。これにより、不明なアカウントから VPC ピア接続リクエストを受け入れることを防ぐことができます。ステートメントでは、これを適用するために ec2:RequesterVpc 条件キーが使用されます。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action": "ec2:AcceptVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id-1:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:RequesterVpc": "arn:aws:ec2:region:account-id-2:vpc/*" } } } ] }

次のポリシーでは、VPC に Purpose=Peering というタグが付いている場合に VPC ピアリクエストを受け入れるアクセス許可をユーザーに与えます。

{ "Version": "2012-10-17", "Statement":[ { "Effect": "Allow", "Action": "ec2:AcceptVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id:vpc/*", "Condition": { "StringEquals": { "ec2:ResourceTag/Purpose": "Peering" } } } ] }

例: VPC ピアリング接続の削除

次のポリシーでは、特定のアカウントのユーザーに、同じアカウント内の指定された VPC を使用する VPC ピアリング接続を除くすべての VPC ピアリング接続を削除するアクセス許可を付与しています。このポリシーでは、ec2:AccepterVpc 条件キーと ec2:RequesterVpc 条件キーの両方を指定しています。これは、VPC がリクエスタ VPC であるか、元の VPC ピアリング接続リクエスト内のピア VPC である可能性があるためです。

{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action": "ec2:DeleteVpcPeeringConnection", "Resource": "arn:aws:ec2:region:account-id:vpc-peering-connection/*", "Condition": { "ArnNotEquals": { "ec2:AccepterVpc": "arn:aws:ec2:region:account-id:vpc/vpc-id", "ec2:RequesterVpc": "arn:aws:ec2:region:account-id:vpc/vpc-id" } } } ] }

例: 特定のアカウントでの操作

次のポリシーでは、特定のアカウント内で VPC ピアリング接続を操作するアクセス許可をユーザーに付与しています。ユーザーは、VPC ピアリング接続の表示、作成、受け入れ、拒否、削除を実行できます (それらの接続がすべて AWS アカウント内の接続である場合)。

最初のステートメントでは、すべての VPC ピアリング接続を表示するアクセス許可をユーザーに付与しています。この場合、Resource エレメントではワイルドカード * が必要になります。現時点では、この API アクション (DescribeVpcPeeringConnections) が、リソースレベルのアクセス権限をサポートしていないためです。

2 番目のステートメントでは、VPC ピアリング接続を作成し、必要であれば、特定のアカウント内のすべての VPC へアクセスする許可をユーザーに付与しています。

3 番目のステートメントでは、すべての VPC ピアリング接続アクションの許可を付与するために、Action エレメントの一部としてワイルドカード * が使用されています。条件キーによって、アカウントの一部である VPC を使用する VPC ピアリング接続に対してのみ、アクションを実行することができます。例えば、アクセプタ VPC またはリクエスタ VPC のどちらかが別のアカウントに属する場合、ユーザーは VPC ピアリング接続を削除できません。ユーザーは、別のアカウントに属する VPC を使用して VPC ピアリング接続を作成することはできません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeVpcPeeringConnections", "Resource": "*" }, { "Effect": "Allow", "Action": ["ec2:CreateVpcPeeringConnection","ec2:AcceptVpcPeeringConnection"], "Resource": "arn:aws:ec2:*:account-id:vpc/*" }, { "Effect": "Allow", "Action": "ec2:*VpcPeeringConnection", "Resource": "arn:aws:ec2:*:account-id:vpc-peering-connection/*", "Condition": { "ArnEquals": { "ec2:AccepterVpc": "arn:aws:ec2:*:account-id:vpc/*", "ec2:RequesterVpc": "arn:aws:ec2:*:account-id:vpc/*" } } } ] }

例: コンソールを使用した VPC ピアリング接続の管理

Amazon VPC コンソールへの VPC ピアリング接続を表示するには、ユーザーに ec2:DescribeVpcPeeringConnections アクションを使用するアクセス権限が必要です。[Create Peering Connection (ピアリング接続の作成)] ページを使用するには、ユーザーは ec2:DescribeVpcs アクションを使用する許可が必要です。これにより、VPC を表示および選択するためのアクセス許可が付与されます。ec2:DescribeVpcPeeringConnections を除くすべての ec2:*PeeringConnection アクションに、リソースレベルのアクセス権限を適用できます。

次のポリシーでは、VPC ピアリング接続を表示し、[Create VPC Peering Connection] (VPC ピアリング接続の作成) ダイアログボックスで、特定のリクエスタの VPC のみを使用して VPC ピアリング接続を作成するアクセス許可がユーザーに付与されます。ユーザーが別のリクエスト元の VPC を使用して VPC ピア接続を作成しようとすると、リクエストは失敗します。

{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Action": [ "ec2:DescribeVpcPeeringConnections", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect":"Allow", "Action": "ec2:CreateVpcPeeringConnection", "Resource": [ "arn:aws:ec2:*:*:vpc/vpc-id", "arn:aws:ec2:*:*:vpc-peering-connection/*" ] } ] }