Amazon Route 53 での ID ベースのポリシー (IAM ポリシー) の使用 - Amazon Route 53

Amazon Route 53 での ID ベースのポリシー (IAM ポリシー) の使用

このトピックでは、ID ベースのポリシーの例として、アカウント管理者が IAM ID (ユーザー、グループ、ロール) にアクセス許可ポリシーをアタッチし、これによりアクセス許可を付与して Amazon Route 53 リソースに対するオペレーションの実行を許可する方法を示します。

重要

初めに、Route 53 リソースへのアクセスを管理するための基本概念とオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「Amazon Route 53 リソースに対するアクセス許可の管理の概要」を参照してください

以下の例に示しているのは、アクセス許可ポリシーです。Sid (ステートメント ID) はオプションです。

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "AllowPublicHostedZonePermissions", "Effect": "Allow", "Action": [ "route53:CreateHostedZone", "route53:UpdateHostedZoneComment", "route53:GetHostedZone", "route53:ListHostedZones", "route53:DeleteHostedZone", "route53:ChangeResourceRecordSets", "route53:ListResourceRecordSets", "route53:GetHostedZoneCount", "route53:ListHostedZonesByName" ], "Resource": "*" }, { "Sid" : "AllowHealthCheckPermissions", "Effect": "Allow", "Action": [ "route53:CreateHealthCheck", "route53:UpdateHealthCheck", "route53:GetHealthCheck", "route53:ListHealthChecks", "route53:DeleteHealthCheck", "route53:GetCheckerIpRanges", "route53:GetHealthCheckCount", "route53:GetHealthCheckStatus", "route53:GetHealthCheckLastFailureReason" ], "Resource": "*" } ] }

ポリシーには、2 つのステートメントが含まれています。

  • 最初のステートメントでは、パブリックホストゾーンとそのレコードの作成と管理に必要なアクションに対する権限が付与されます。Amazon リソースネーム (ARN) にワイルドカード文字 (*) が使用されていると、現在の AWS アカウントにより所有されているすべてのホストゾーンへのアクセスが許可されます。

  • 2 番目のステートメントでは、ヘルスチェックの作成と管理に必要なすべてのアクションに対する権限が付与されます。

各アクションを使用するアクセス許可を付与または拒否するために指定するアクションおよび ARN のリストについては、「Amazon Route 53 API のアクセス許可: アクション、リソース、条件のリファレンス」を参照してください。

Amazon Route 53 コンソールを使用するために必要なアクセス許可

Amazon Route 53 コンソールへのフルアクセスを許可するには、次のアクセス許可ポリシーでアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:*", "route53domains:*", "cloudfront:ListDistributions", "elasticloadbalancing:DescribeLoadBalancers", "elasticbeanstalk:DescribeEnvironments", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketWebsite", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:ModifyNetworkInterfaceAttribute", "sns:ListTopics", "sns:ListSubscriptionsByTopic", "sns:CreateTopic", "kms:ListAliases", "kms:DescribeKey", "kms:CreateKey", "kms:CreateAlias", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics" ], "Resource":"*" }, { "Effect": "Allow", "Action": "apigateway:GET", "Resource": "arn:aws:apigateway:*::/domainnames" } ] }

アクセス許可が必要な理由は次のとおりです。

route53:*

以下を除くすべての Route 53 アクションを実行できます。

  • [エイリアス先] の値が CloudFront ディストリビューション、Elastic Load Balancing ロードバランサー、Elastic Beanstalk 環境、または Amazon S3 バケットであるエイリアスレコードを作成および更新する。(これらの権限があると、[Alias Target] (エイリアス先) の値が同じホストゾーン内の別のレコードであるエイリアスレコードを作成できます)

  • プライベートホストゾーンを操作する。

  • ドメインを操作する。

  • CloudWatch アラームを作成、削除、および表示する。

  • Route 53 コンソールで CloudWatch メトリクスをレンダリングします。

route53domains:*

ドメインの操作を許可します。

重要

route53 のアクションを個別にリストする場合は、route53:CreateHostedZone を含めてドメインを操作する必要があります。ドメインを登録すると同時にホストゾーンも作成されるため、ドメインを登録する権限を含むポリシーにはホストゾーンを作成する権限も必要です

(ドメイン登録について、Route 53 は個別のリソースへのアクセス許可の付与または拒否をサポートしていません)。

route53resolver:*

Route 53 Resolverを操作できます。

cloudfront:ListDistributions

[エイリアス先] の値が CloudFront ディストリビューションであるエイリアスレコードを作成および更新できます。

Route 53 コンソールを使用していない場合、これらのアクセス許可は必要ありません。Route 53 は、ディストリビューションのリストを取得してコンソールに表示する場合のみ、これを使用します。

elasticloadbalancing:DescribeLoadBalancers

[Alias Target(エイリアス先)] の値が ELB ロードバランサーとなるエイリアスレコードを作成および更新できます。

Route 53 コンソールを使用していない場合、これらのアクセス許可は必要ありません。Route 53 は、ロードバランサーのリストを取得してコンソールに表示する場合のみ、これを使用します。

elasticbeanstalk:DescribeEnvironments

[エイリアス先] の値が Elastic Beanstalk 環境となるエイリアスレコードを作成および更新できます。

Route 53 コンソールを使用していない場合、これらのアクセス許可は必要ありません。Route 53 は、環境のリストを取得してコンソールに表示する場合のみ、これを使用します。

s3:ListAllMyBucketss3:GetBucketLocation、および s3:GetBucketWebsite

[エイリアス先] の値が Amazon S3 バケットとなるエイリアスレコードを作成および更新できます。(Amazon S3 バケットのエイリアスは、バケットがウェブサイトエンドポイントとして設定されている場合のみ作成できます。s3:GetBucketWebsite は必要な設定情報を取得します)。

Route 53 コンソールを使用していない場合、これらのアクセス許可は必要ありません。Route 53 は、バケットのリストを取得してコンソールに表示する場合のみ、これを使用します。

ec2:DescribeVpcs: 、および ec2:DescribeRegions

プライベートホストゾーンの操作を許可します。

すべてのリストされている ec2 アクセス許可

Route 53 Resolverを操作できます。

sns:ListTopics, sns:ListSubscriptionsByTopic, sns:CreateTopic, cloudwatch:DescribeAlarms, cloudwatch:PutMetricAlarm, cloudwatch:DeleteAlarms

CloudWatch アラームを作成、削除、および表示できます。

cloudwatch:GetMetricStatistics

CloudWatch メトリクスヘルスチェックを作成することができます。

Route 53 コンソールを使用していない場合、これらのアクセス許可は必要ありません。Route 53 は、統計を取得してコンソールに表示する場合のみ、これを使用します。

apigateway:GET

[エイリアス先] の値が Amazon API Gateway であるエイリアスレコードを作成および更新できます。

Route 53 コンソールを使用していない場合、このアクセス許可は必要ありません。Route 53 は、API のリストを取得してコンソールに表示する場合のみ、これを使用します。

kms:*

AWS KMS を使用して DNSSEC 署名をAWS KMS有効にできます。

ドメインレコード所有者のアクセス許可の例

場合によっては、ホストゾーンの所有者がホストゾーンの全体的な管理を担当し、組織内の別のユーザーがそれらのタスクのサブセットを担当することがあります。例えば、DNSSEC 署名を有効にしたホストゾーンの所有者は、他のユーザーがホストゾーンの Resource Set Records (RR) を追加および削除するためのアクセス許可などを含む IAM ポリシーを作成したい場合があります。ホストゾーン所有者がレコード所有者または他のユーザーに対して有効にする特定のアクセス許可は、組織のポリシーによって異なります。

以下は、レコード所有者に RR、トラフィックポリシー、ヘルスチェックの変更を許可する IAM ポリシーの例です。このポリシーを持つレコード所有者は、ゾーンの作成と削除、クエリログの有効化または無効化、再利用可能な委任セットの作成と削除、DNSSEC 設定の変更など、ゾーンレベルの操作を実行できません。

{ "Sid": "Do not allow zone-level modification ", "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets", "route53:CreateTrafficPolicy", "route53:DeleteTrafficPolicy", "route53:CreateTrafficPolicyInstance", "route53:CreateTrafficPolicyVersion", "route53:UpdateTrafficPolicyInstance", "route53:UpdateTrafficPolicyComment", "route53:DeleteTrafficPolicyInstance", "route53:CreateHealthCheck", "route53:UpdateHealthCheck", "route53:DeleteHealthCheck", "route53:List*", "route53:Get*" ], "Resource": [ "*" ] }

DNSSEC 署名に必要なRoute 53 CMK アクセス許可

Route 53 の DNSSEC 署名を有効にすると、Route 53 によって、AWS Key Management Service (AWS KMS) で、カスタマー管理のカスタマーマスターキー (CMK) に基づいてキー署名キー (KSK) が作成されます。DNSSEC 署名をサポートしている既存のカスタマー管理 CMK を使用することも、新しい CMK を作成することもできます。Route 53 は、KSK を作成できるように CMK にアクセスするアクセス許可を持っている必要があります。

Route 53 が CMK にアクセスできるようにするには、CMK ポリシーに次のステートメントが含まれていることを確認します。

{ "Sid": "Allow Route 53 DNSSEC Service", "Effect": "Allow", "Principal": { "Service": "dnssec-route53.amazonaws.com" }, "Action": ["kms:DescribeKey", "kms:GetPublicKey", "kms:Sign"], "Resource": "*" }, { "Sid": "Allow Route 53 DNSSEC to CreateGrant", "Effect": "Allow", "Principal": { "Service": "dnssec-route53.amazonaws.com" }, "Action": ["kms:CreateGrant"], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

お客様が管理するポリシーの例

独自のカスタム IAM ポリシーを作成して、Route 53 アクションにアクセス許可を付与することもできます。これらのカスタムポリシーは、指定されたアクセス許可が必要な IAM ユーザーまたはグループにアタッチできます。これらのポリシーは、Route 53 API、AWS SDK、または AWS CLI を使用しているときに機能します。次の例では、いくつかの一般的ユースケースのアクセス許可を示します。Route 53 へのフルアクセスをユーザーに許可するポリシーについては、「Amazon Route 53 コンソールを使用するために必要なアクセス許可」を参照してください。

例 1: すべてのホストゾーンへの読み取りアクセスを許可する

以下の権限ポリシーは、すべてのホストゾーンをリストし、ホストゾーン内のすべてのレコードを表示するユーザー権限を付与します。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:GetHostedZone", "route53:ListResourceRecordSets" ], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:ListHostedZones"], "Resource":"*" } ] }

例 2: ホストゾーンの作成と削除を許可する

次の権限ポリシーは、ホストゾーンの作成と削除、および変更の進行状況の追跡をユーザーに許可します。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["route53:CreateHostedZone"], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:DeleteHostedZone"], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:GetChange"], "Resource":"*" } ] }

例 3: すべてのドメインに対するフルアクセスを許可する (パブリックホストゾーンのみ)

次の権限ポリシーは、ドメインの登録権限やホストゾーンの作成権限など、ドメイン登録に関するすべてのアクションの実行をユーザーに許可します。

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53domains:*", "route53:CreateHostedZone" ], "Resource":"*" } ] }

ドメインを登録すると同時にホストゾーンも作成されるため、ドメインを登録する権限を含むポリシーにはホストゾーンを作成する権限も必要です (ドメイン登録について、Route 53 は個別のリソースへのアクセス許可の付与をサポートしていません)。

プライベートホストゾーンを操作するために必要なアクセス許可については、「Amazon Route 53 コンソールを使用するために必要なアクセス許可」を参照してください。

例 4: インバウンドおよびアウトバウンド Route 53 エンドポイントの作成を許可する

次のアクセス許可ポリシーは、ユーザーが Route 53 コンソールを使用して Resolver のインバウンドおよびアウトバウンドエンドポイントを作成することを許可します。

これらのアクセス許可の一部は、コンソールでエンドポイントを作成するためにのみ必要です。インバウンドおよびアウトバウンドエンドポイントのみをプログラムで作成するアクセス許可を付与する場合は、これらのアクセス許可を省略できます。

  • route53resolver:ListResolverEndpoints では、インバウンドまたはアウトバウンドエンドポイントのリストが表示されるため、ユーザーはエンドポイントが作成されたことを確認できます。

  • DescribeAvailabilityZones は、アベイラビリティーゾーンのリストを表示するために必要です。

  • DescribeVpcs は VPC のリストを表示するために必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "route53resolver:CreateResolverEndpoint", "route53resolver:ListResolverEndpoints", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" } ] }