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/*"
]
}
]
}