きめ細かなアクセスコントロールのためのIAMポリシー条件の使用 - Amazon Route 53

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

きめ細かなアクセスコントロールのためのIAMポリシー条件の使用

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

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

  • ホストゾーン内の特定のレコードタイプのすべてのリソースDNSレコードセットへのアクセスをユーザーに許可するアクセス許可を付与します。例えば、A および AAAAレコードです。

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

  • Route 53 コンソールで、または ChangeResourceRecordSets を使用する場合に、ユーザーがCREATE | UPSERT | DELETEアクションのサブセットのみを実行できるようにするアクセス許可を付与しますAPI。

  • ユーザーが特定の からプライベートホストゾーンを関連付けたり、関連付けを解除したりできるようにするアクセス許可を付与します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> および の値は、 VPCId=vpc-123abcや など小文字<region>にする必要がありますVPCRegion=us-east-1

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

重要

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

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

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

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

注記

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

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

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

ChangeResourceRecordSets

複数値

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

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

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

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

route53:ChangeResourceRecordSetsRecordTypes

ChangeResourceRecordSets

複数値

のリクエスト内のDNSレコードタイプのリストを表しますChangeResourceRecordSets

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

route53:ChangeResourceRecordSetsActions

ChangeResourceRecordSets

複数値

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

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

  • CREATE

  • UPSERT

  • DELETE

route53:VPCs

AssociateVPCWithHostedZone

DisassociateVPCFromHostedZone

ListHostedZonesByVPC

CreateHostedZone

C reateVPCAssociation認証

D eleteVPCAssociation認証

複数値

AssociateVPCWithHostedZone、、、DisassociateVPCFromHostedZone、および のリクエストVPCs内の ListHostedZonesByVPC CreateHostedZone CreateVPCAssociationAuthorizationのリストをVPCId「=<vpc-id>DeleteVPCAssociationAuthorization,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条件演算子です。上記のポリシーの条件では、 のすべての変更の名前が example.com ChangeResourceRecordSets DNS の場合にのみ、 オペレーションが許可されます。詳細については、「 ユーザーガイド」のIAM「 条件演算子」と「複数のキーまたは値を持つ条件IAM」を参照してください。 IAM

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

{ "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 を指定するアクセス許可を付与する

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

重要

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

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