View a markdown version of this page

詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用 - Amazon Route 53

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用

Route 53 では、IAM ポリシーを使用してアクセス許可を付与するときに条件を指定できます (「アクセスコントロール」参照)。例えば、以下のことが可能です:

  • 単一のリソースレコードセットへのアクセスを許可する。

  • ホストゾーン内の特定の DNS レコードタイプ (A レコードや AAAA レコードなど) のすべてのリソースレコードセットへのアクセスを許可する。

  • 名前に特定の文字列が含まれるリソースレコードセットへのアクセスをユーザーに許可する。

  • Route 53 コンソール上で、あるいは ChangeResourceRecordSets API 使用時に、CREATE | UPSERT | DELETE アクションの一部のみの実行をユーザーに許可する。

  • 特定の VPC からプライベートホストゾーンを関連付けたり、関連付けを解除できるアクセス許可をユーザーに付与します。

  • 特定の VPC に関連付けられたホストゾーンを一覧表示できるアクセス許可をユーザーに付与します。

  • 新しいプライベートホストゾーンを作成し、特定の VPC に関連付けることができるアクセス許可をユーザーに付与します。

  • VPC 関連付け認可を作成または削除できるアクセス許可をユーザーに付与します。

  • ユーザーが Route 53 プロファイルで特定のリソースタイプのみを管理 (associate/disassociate/update) できるようにするアクセス許可を付与します。

  • Route 53 プロファイルを持つ特定のリソース ARNs のみをユーザーが管理 (associate/disassociate/update) できるようにするアクセス許可を付与します。

  • 特定のホストゾーンドメインのみを Route 53 プロファイルで管理 (associate/disassociate/update) することをユーザーに許可するアクセス許可を付与します。

  • 特定のリゾルバールールドメインのみを Route 53 プロファイルで管理 (associate/disassociate/update) することをユーザーに許可するアクセス許可を付与します。

  • Route 53 プロファイル内の特定の優先度範囲のファイアウォールルールグループの管理 (associate/disassociate/update) をユーザーに許可するアクセス許可を付与します。

  • Route 53 プロファイルを特定の VPCs。

また、任意のきめ細かなアクセス許可を組み合わせたアクセス許可を作成することもできます。

Route 53 コンディションキー値の正規化

ポリシー条件に入力する値は、次のようにフォーマット (正規化) する必要があります。

route53:ChangeResourceRecordSetsNormalizedRecordNames の場合

  • すべての文字を小文字にする必要があります。

  • DNS 名は末尾のドットなしにする必要があります。

  • a~z、0~9、- (ハイフン)、_ (アンダースコア)、. (ラベル間の区切り文字としてのピリオド) 以外の文字は、\ に 3 桁の 8 進コードを続けた形式のエスケープコードを使用する必要があります。例えば、\052 は文字 * の 8 進コードです。

route53:ChangeResourceRecordSetsActions では、値には次のいずれかを指定でき、大文字にする必要があります。

  • CREATE

  • UPSERT

  • DELETE

route53:ChangeResourceRecordSetsRecordTypes の場合:

  • 値は大文字である必要があり、Route 53 がサポートするどの DNS レコードタイプでもかまいません。詳細については、「サポートされる DNS レコードタイプ」を参照してください。

route53:VPCs の場合:

  • 値は、VPCId=<vpc-id>,VPCRegion=<region> 形式である必要があります。

  • <vpc-id><region> の値は、VPCId=vpc-123abcVPCRegion=us-east-1 などの小文字にする必要があります。

  • コンテキストキーと値では大文字と小文字が区別されます。

重要

アクセス許可で意図したとおりにアクションを許可または制限するには、次の規則に従う必要があります。この条件キーでは VPCId および VPCRegion要素のみが受け入れられ、 などの他の AWS リソース AWS アカウントはサポートされていません。

の場合route53profiles:ResourceTypes、値は次のいずれかであり、大文字と小文字が区別されます。

  • HostedZone

  • FirewallRuleGroup

  • ResolverQueryLoggingConfig

  • ResolverRule

  • VPCEndpoint

route53profiles:ResourceArns の場合:

  • 値は、 などの有効な AWS リソース ARN である必要がありますarn:aws:route53:::hostedzone/Z12345

  • ARN 値を比較するときは、 ArnEquals または ArnLike条件演算子を使用します。

route53profiles:HostedZoneDomains の場合:

  • 値は、 などの有効なドメイン名である必要がありますexample.com

  • ドメイン名には末尾のドットを含めないでください。

  • これらの値は大文字と小文字が区別されます。

route53profiles:ResolverRuleDomains の場合:

  • 値は、 などの有効なドメイン名である必要がありますexample.com

  • ドメイン名には末尾のドットを含めないでください。

  • これらの値は大文字と小文字が区別されます。

route53profiles:FirewallRuleGroupPriority の場合:

  • 値は、ファイアウォールルールグループの優先度を表す数値である必要があります。

  • NumericEquals、、 などの数値条件演算子NumericLessThanEqualsを使用して、優先度値を比較したりNumericGreaterThanEquals、優先度範囲を定義したりできます。

route53profiles:ResourceIds の場合:

  • 値は、 などの有効な VPC ID である必要がありますvpc-1a2b3c4d5e6f

  • これらの値は大文字と小文字が区別されます。

IAM ユーザーガイド」の「Access Analyzer」または「Policy Simulator」を使用して、ポリシーで想定どおりにアクセス許可が付与または制限されていることを検証できます。IAM ポリシーをテストユーザーまたはロールに適用して Route 53 オペレーションを実行することで、アクセス許可を検証することもできます。

条件の指定: 条件キーの使用

AWS は、アクセスコントロールのために IAM をサポートするすべての AWS サービスに対して、一連の事前定義された条件キー (AWS全体の条件キー) を提供します。たとえば、aws:SourceIp 条件キーを使用して、リクエスタの IP アドレスを確認してから、アクションの実行を許可できます。詳細について、および AWS全体を対象とするキーのリストについては、「IAM ユーザーガイド」の「Available Keys for Conditions」(条件に使用可能なキー) を参照してください。

注記

Route 53 では、タグベースの条件キーはサポートされていません。

以下の表では、Route 53 に適用される Route 53 サービス固有の条件キーを示しています。

Route 53 条件キー API オペレーション 値の型 説明
route53:ChangeResourceRecordSetsNormalizedRecordNames

ChangeResourceRecordSets

複数値

ChangeResourceRecordSets のリクエストに含まれる DNS レコード名のリストを表します。想定どおりの動作を実現するには、IAM ポリシーの DNS 名を次のように正規化する必要があります。

  • すべての文字を小文字にする必要があります。

  • DNS 名は末尾のドットなしにする必要があります。

  • a~z、0~9、- (ハイフン)、_ (アンダースコア)、. (ラベル間の区切り文字としてのピリオド) 以外の文字は、\ に 3 桁の 8 進コードを続けた形式のエスケープコードを使用する必要があります。

route53:ChangeResourceRecordSetsRecordTypes

ChangeResourceRecordSets

複数値

ChangeResourceRecordSets のリクエストに含まれる DNS レコードタイプのリストを表します。

ChangeResourceRecordSetsRecordTypes は、Route 53 でサポートされている DNS レコードタイプのどれでもかまいません。詳細については、「サポートされる DNS レコードタイプ」を参照してください。ポリシーではすべて大文字で入力する必要があります。

route53:ChangeResourceRecordSetsActions

ChangeResourceRecordSets

複数値

ChangeResourceRecordSets のリクエストに含まれるアクションのリストを表します。

ChangeResourceRecordSetsActions は、次の値のどれでもかまいません (大文字である必要があります)。

  • CREATE

  • UPSERT

  • DELETE

route53:VPCs

AssociateVPCWithHostedZone

DisassociateVPCFromHostedZone

ListHostedZonesByVPC

CreateHostedZone

CreateVPCAssociationAuthorization

DeleteVPCAssociationAuthorization

複数値

AssociateVPCWithHostedZoneDisassociateVPCFromHostedZoneListHostedZonesByVPCCreateHostedZoneCreateVPCAssociationAuthorizationDeleteVPCAssociationAuthorization のリクエスト内の VPC のリストを、「VPCId=<vpc-id>,VPCRegion=<region>」の形式で表します
route53profiles:ResourceTypes

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

String

特定のリソースタイプでアクセスをフィルタリングします。

route53profiles:ResourceTypes には、次のいずれかの値を指定できます (大文字と小文字が区別されます)。

  • HostedZone

  • FirewallRuleGroup

  • ResolverQueryLoggingConfig

  • ResolverRule

  • VPCEndpoint

route53profiles:ResourceArns

AssociateResourceToProfile

DisassociateResourceFromProfile

ARN

特定のリソース ARNs。
route53profiles:HostedZoneDomains

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

String

ホストゾーンドメインでアクセスをフィルタリングします。予想される動作を取得するには、IAM ポリシーのドメイン名を次のように正規化する必要があります。

  • ドメイン名には末尾のドットを含めないでください。

  • これらの値は大文字と小文字が区別されます。

route53profiles:ResolverRuleDomains

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

String

リゾルバールールドメインでアクセスをフィルタリングします。予想される動作を取得するには、IAM ポリシーのドメイン名を次のように正規化する必要があります。

  • ドメイン名には末尾のドットを含めないでください。

  • これらの値は大文字と小文字が区別されます。

route53profiles:FirewallRuleGroupPriority

AssociateResourceToProfile

DisassociateResourceFromProfile

UpdateProfileResourceAssociation

数値

ファイアウォールルールグループの優先度範囲によってアクセスをフィルタリングします。
route53profiles:ResourceIds

AssociateProfile

DisassociateProfile

String

指定された VPCs。

ポリシー例: きめ細かなアクセスのための条件の使用

このセクションのそれぞれの例では、Effect 句を Allow に設定し、許可されるアクション、リソース、およびパラメータのみを指定します。IAM ポリシーで明示的に指定されたものへのアクセスだけが許可されます。

場合によっては、拒否ベースとなるようにこのポリシーを書き直すことができます。つまり、Effect 句を Deny に設定して、ポリシーのすべてのロジックを逆にします。ただし、拒否ベースのポリシーを使用しないことをお勧めします。このようなポリシーは、許可ベースのポリシーと比べて、正しく記述することが難しいためです。テキストの正規化が必要なため、これは特に Route 53 に当てはまります。

特定の名前の DNS レコードへのアクセスを制限するアクセス許可を付与する

次のアクセス許可ポリシーでは、example.com および  marketing.example.com のホストゾーン Z12345 での ChangeResourceRecordSets アクションを許可する。このポリシーでは route53:ChangeResourceRecordSetsNormalizedRecordNames 条件キーを使用して、指定した名前に一致するレコードに対してのみにユーザーアクションを制限します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com", "marketing.example.com"] } } } ] }

ForAllValues:StringEquals は、複数値のキーに適用される IAM 条件演算子です。上記のポリシーの条件では、ChangeResourceRecordSets のすべての変更が example.com の DNS 名を持つ場合にのみオペレーションが許可されます。詳細については、「IAM ユーザーガイド」の「IAM condition operators」(IAM 条件演算子) と「IAM condition with multiple keys or values」(複数のキーまたは値を含む IAM 条件) 参照してください。

特定のサフィックスを含む名前に一致するアクセス許可を実装するには、条件演算子 StringLike または StringNotLike を含むポリシーで IAM ワイルドカード (*) を使用します。次のポリシーでは、ChangeResourceRecordSets オペレーションのすべての変更の DNS 名が「-beta.example.com」で終わる場合、オペレーションが許可されます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringLike":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["*-beta.example.com"] } } } ] }
注記

IAM ワイルドカードはドメイン名ワイルドカードとは異なります。ドメイン名でワイルドカードを使用する方法については、次の例を参照してください。

ワイルドカードを含むドメイン名と一致する DNS レコードへのアクセスを制限するアクセス許可を付与する

次のアクセス許可ポリシーでは、example.com のホストゾーン Z12345 での ChangeResourceRecordSets アクションを許可する。このポリシーでは route53:ChangeResourceRecordSetsNormalizedRecordNames を使用してユーザーアクションを *.example.com と一致するレコードのみに制限します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["\\052.example.com"] } } } ] }

\052 は DNS 名の文字 * の 8 進コードで、\ に含まれる \052 は JSON 構文に従ってエスケープされて \\ になります。

特定の DNS レコードへのアクセスを制限するアクセス許可を付与する

次のアクセス許可ポリシーでは、example.com のホストゾーン Z12345 での ChangeResourceRecordSets アクションを許可する。3 つの条件キーの組み合わせを使用してユーザーアクションを制限し、特定の DNS 名とタイプの DNS レコードの作成または編集のみを許可します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com"], "route53:ChangeResourceRecordSetsRecordTypes": ["MX"], "route53:ChangeResourceRecordSetsActions": ["CREATE", "UPSERT"] } } } ] }
指定されたタイプの DNS レコードのみの作成と編集にアクセスを制限するアクセス許可を付与する

次のアクセス許可ポリシーでは、example.com のホストゾーン Z12345 での ChangeResourceRecordSets アクションを許可する。このポリシーでは route53:ChangeResourceRecordSetsRecordTypes 条件キーを使用して、指定したタイプ (A および AAAA) に一致するレコードに対してのみにユーザーアクションを制限します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "route53:ChangeResourceRecordSets", "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333", "Condition": { "ForAllValues:StringEquals":{ "route53:ChangeResourceRecordSetsRecordTypes": ["A", "AAAA"] } } } ] }
IAM プリンシパルで操作できる VPC を指定するアクセス許可を付与する

次のアクセス許可ポリシーは、vpc-id で指定された VPC の AssociateVPCWithHostedZoneDisassociateVPCFromHostedZoneListHostedZonesByVPCCreateHostedZoneCreateVPCAssociationAuthorizationDeleteVPCAssociationAuthorization アクションを許可するアクセス許可を付与します。

重要

条件値は VPCId=<vpc-id>,VPCRegion=<region> の形式である必要があります。条件値に VPC ARN を指定した場合、条件キーは有効になりません。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "route53:*" ], "Resource": [ "*" ], "Condition": { "StringLike": { "route53:VPCs": [ "VPCId=<vpc-id>,VPCRegion=<region>" ] } } }, { "Sid": "Statement2", "Effect": "Allow", "Action": "ec2:DescribeVpcs", "Resource": "*" } ] }
重要

route53profiles 条件キーは、me-central-1 と me-south-1 を除き、Route 53 Route53Profiles が利用可能なすべての AWS リージョン で使用できます。

Route 53 Profiles の特定のリソースタイプへのリソースの関連付けを制限するアクセス許可を付与する

次のアクセス許可ポリシーは、リソースタイプがホストゾーンの場合にのみ AssociateResourceToProfile および DisassociateResourceFromProfileアクションを許可するアクセス許可を付与します。route53profiles:ResourceTypes 条件キーを使用して、プロファイルに関連付けることができるリソースタイプを制限します。

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:ResourceTypes": "HostedZone" } } }
Route 53 プロファイルの特定のリソース ARNs へのリソースの関連付けを制限するアクセス許可を付与する

次のアクセス許可ポリシーは、指定されたリソース ARN に対してのみ AssociateResourceToProfile および DisassociateResourceFromProfileアクションを許可するアクセス許可を付与します。route53profiles:ResourceArns 条件キーを使用して、プロファイルに関連付けることができるリソースを制限します。

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile" ], "Resource": "*", "Condition": { "ArnEquals": { "route53profiles:ResourceArns": "arn:aws:route53:::hostedzone/Z12345" } } }
Route 53 プロファイルの特定のホストゾーンドメインへのリソースの関連付けを制限するアクセス許可を付与する

次のアクセス許可ポリシーはAssociateResourceToProfile、ホストゾーンドメインが指定された値と一致する場合にのみ、、DisassociateResourceFromProfile、および UpdateProfileResourceAssociationアクションを許可するアクセス許可を付与します。route53profiles:HostedZoneDomains 条件キーを使用して、プロファイルに関連付けることができるホストゾーンドメインを制限します。

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:UpdateProfileResourceAssociation" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:HostedZoneDomains": "example.com" } } }
Route 53 プロファイルの特定のリゾルバールールドメインへのリソースの関連付けを制限するアクセス許可を付与する

次のアクセス許可ポリシーはAssociateResourceToProfile、リゾルバールールドメインが指定された値と一致する場合にのみ、、DisassociateResourceFromProfile、および UpdateProfileResourceAssociationアクションを許可するアクセス許可を付与します。route53profiles:ResolverRuleDomains 条件キーを使用して、プロファイルに関連付けることができるリゾルバールールドメインを制限します。

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:UpdateProfileResourceAssociation" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:ResolverRuleDomains": "example.com" } } }
ファイアウォールルールグループの関連付けを Route 53 プロファイルの特定の優先度範囲に制限するアクセス許可を付与する

次のアクセス許可ポリシーはAssociateResourceToProfile、ファイアウォールルールグループの優先度が指定された範囲内にある場合にのみ、、DisassociateResourceFromProfile、および UpdateProfileResourceAssociationアクションを許可するアクセス許可を付与します。route53profiles:FirewallRuleGroupPriority 条件キーを使用して、使用できる優先度値を制限します。

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateResourceToProfile", "route53profiles:DisassociateResourceFromProfile", "route53profiles:UpdateProfileResourceAssociation" ], "Resource": "*", "Condition": { "NumericGreaterThanEquals": { "route53profiles:FirewallRuleGroupPriority": "100" } } }
Route 53 プロファイルVPCs へのプロファイルの関連付けを制限するアクセス許可を付与する

次のアクセス許可ポリシーは、指定された VPC に対してのみ AssociateProfile および DisassociateProfileアクションを許可するアクセス許可を付与します。route53profiles:ResourceIds 条件キーを使用して、プロファイルを関連付けることができる VPCsを制限します。

{ "Effect": "Allow", "Action": [ "route53profiles:AssociateProfile", "route53profiles:DisassociateProfile" ], "Resource": "*", "Condition": { "StringEquals": { "route53profiles:ResourceIds": "vpc-1a2b3c4d5e6f" } } }