翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
きめ細かなアクセスコントロールのための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 |
複数値 |
のリクエスト内のDNSレコード名のリストを表しますChangeResourceRecordSets。想定される動作を取得するには、IAMポリシー内のDNS名前を次のように正規化する必要があります。
|
|
route53:ChangeResourceRecordSetsRecordTypes |
複数値 |
のリクエスト内のDNSレコードタイプのリストを表します
|
|
route53:ChangeResourceRecordSetsActions |
複数値 |
|
|
route53:VPCs |
複数値 |
、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指定された で DisassociateVPCFromHostedZone
ListHostedZonesByVPC
、CreateVPCAssociationAuthorization
、、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": "*" } ] }