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

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

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

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

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

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

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

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

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

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

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

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

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

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 アカウントはサポートされていません。

「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>」の形式で表します

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

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

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

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

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

{ "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」で終わる場合、オペレーションが許可されます。

{ "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 と一致するレコードのみに制限します。

{ "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 レコードの作成または編集のみを許可します。

{ "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) に一致するレコードに対してのみにユーザーアクションを制限します。

{ "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 を指定した場合、条件キーは有効になりません。

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