AWSアカウント管理が IAM と機能する方法 - AWS アカウント管理

AWSアカウント管理が IAM と機能する方法

IAM を使用してアカウント管理へのアクセスを管理する前に、アカウント管理で利用できる IAM の機能について学習します。

で使用できる IAM の機能AWSアカウント管理
IAM の機能 アカウント管理のサポート

ID ベースのポリシー

あり

リソースベースのポリシー

なし

ポリシーアクション

あり

ポリシーリソース

あり

ポリシー条件キー

あり

ACL

なし

ABAC (ポリシー内のタグ)

いいえ

一時的な認証情報

あり

プリンシパルアクセス許可

あり

サービスロール

いいえ

サービスリンクロール

なし

大部分の IAM 機能がアカウント管理および AWS のその他のサービスでどのように機能するかに関するおおまかな説明については、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。

アカウント管理の ID ベースのポリシー

アイデンティティベースのポリシーのサポート: あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。

アカウント管理 ID ベースのポリシーの例

アカウント管理 ID ベースのポリシーの例は、「AWS アカウント管理用 ID ベースのポリシーの例」でご確認ください。

アカウント管理内のリソースベースのポリシー

リソースベースのポリシーのサポート: なし

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーションユーザー、または AWS のサービス を含めることができます。

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。

アカウント管理用のポリシーアクション

ポリシーアクションのサポート:あり

管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件アクションを実行できるかということです。

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

アクションのリストを確認するには、サービス認可リファレンスの「AWS で定義されるアクション」を参照してください。

ネットワーク管理 のポリシーアクションは、アクションの前に、プレフィックス を使用します。

account

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "account:action1", "account:action2" ]

ワイルドカード (*) を使用して複数アクションを指定できます。例えば、で動作するすべてのアクションを指定するにはAWS アカウントの代替連絡先、次のアクションを含めます。

"Action": "account:*AlternateContact"

アカウント管理 ID ベースのポリシーの例は、「AWS アカウント管理用 ID ベースのポリシーの例」でご確認ください。

アカウント管理のポリシーリソース

ポリシーリソースのサポート: あり

管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件アクションを実行できるかということです。

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

アカウント管理サービスでは、IAM ポリシーの Resources 要素で以下の特定のリソースタイプがサポートされ、ポリシーをフィルタリングすることでこれらのタイプの AWS アカウント を区別しやすなります。

  • account

    この resource タイプは、AWS Organizations サービスによって管理される組織内のメンバーアカウントではないスタンドアロン AWS アカウント のみに一致します。

  • accountInOrganization

    この resource タイプは、AWS Organizations サービスによって管理される組織内のメンバーアカウントである AWS アカウント のみに一致します。

アカウント管理リソースのタイプとその ARN のリストを確認するには、サービス認可リファレンスの「AWS で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「AWS アカウント管理で定義されるアクション」を参照してください。

アカウント管理 ID ベースのポリシーの例は、「AWS アカウント管理用 ID ベースのポリシーの例」でご確認ください。

アカウント管理用のポリシー条件キー

サービス固有のポリシー条件キーのサポート: あり

管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素は、定義された基準に基づいてステートメントが実行されるタイミングを指定します。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドAWS グローバル条件コンテキストキーを参照してください。

アカウント管理サービスは、IAM ポリシーのきめ細かなフィルタリングを提供するために使用できる以下の条件キーをサポートしています。

  • account:TargetRegion

    この条件キーは、次のリストで構成される引数を取ります。AWSリージョンコード。これにより、指定したリージョンに適用されるアクションのみに影響を与えるように、ポリシーをフィルタリングできます。

  • account:AlternateContactTypes

    この条件キーは、代替連絡先タイプのリストを取ります。

    • 請求

    • 操作

    • SECURITY

    このキーを使用すると、指定された代替連絡先タイプをターゲットとするアクションのみにリクエストをフィルタリングできます。

  • account:AccountResourceOrgPaths

    この条件キーは、組織の階層から特定の組織単位 (OU) へのパスのリストで構成される引数を取ります。これにより、一致する OU 内のターゲットアカウントのみに影響を与えるように、ポリシーをフィルタリングできます。

    o-aa111bb222/r-a1b2/ou-a1b2-f6g7h111/*
  • account:AccountResourceOrgTags

    この条件キーは、タグキーと値のリストで構成される引数を取ります。これにより、組織のメンバーであり、指定されたタグのキーと値でタグ付けされたアカウントのみに影響を与えるように、ポリシーをフィルタリングできます。

  • account:EmailTargetDomain

    この条件キーは、E メールドメインで構成される引数を取ります。これにより、指定した E メールドメインに一致するアクションのみに影響を与えるように、ポリシーをフィルタリングできます。この条件キーでは、大文字と小文字は区別されません。ターゲット E メールアドレスドメインに基づいてアクションを制御するには、ポリシーの条件ブロックで StringEquals の代わりに StringEqualsIgnoreCase を使用する必要があります。E メールドメインに example.comcompany.org、または EXAMPLE.COM などの大文字と小文字の任意の組み合わせが含まれている場合に account:StartPrimaryEmailUpdate アクションを完了できるようにするポリシーの例を次に示します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionKey", "Effect": "Allow", "Action": [ "account:StartPrimaryEmailUpdate" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "account:EmailTargetDomain": [ "example.com", "company.org" ] } } } ] }

アカウント管理条件キーのリストを確認するには、サービス認可リファレンスの「AWS アカウント管理用の条件キー」を参照してください。どのアクションおよびリソースと条件キー組み合わせてを使用できるかについては、「AWS アカウント管理で定義されるアクション」を参照してください。

アカウント管理 ID ベースのポリシーの例は、「AWS アカウント管理用 ID ベースのポリシーの例」でご確認ください。

Account Management のアクセス制御リスト

ACL のサポート: なし

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

アカウント管理を使用した属性ベースのアクセスコントロール

ABAC (ポリシー内のタグ) のサポート: なし

属性ベースのアクセス制御 (ABAC) は、属性に基づいてアクセス許可を定義する認可戦略です。AWS では、属性はタグと呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール)、および多数の AWS リソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致した場合にオペレーションを許可するように ABAC ポリシーをします。

ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。

AWS アカウント管理では、タグベースのアクセスコントロールは account:AccountResourceOrgTags/key-name 条件キーを介してのみサポートされます。標準の aws:ResourceTag/key-name 条件キーは、アカウント名前空間の API ではサポートされていません。

サポートされている条件キーを使用した JSON ポリシーの例

次のポリシー例では、組織内のキー「CostCenter」と「12345」または「67890」の値でタグ付けされたアカウントの連絡先情報を表示するアクセスを許可します。

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "account:GetContactInformation", "account:GetAlternateContact" ], "Resource":"*", "Condition":{ "ForAnyValue:StringEquals":{ "account:AccountResourceOrgTags/CostCenter":[ "12345", "67890" ] } } } ] }

ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可を使用して属性に基づいたアクセス許可を定義する」および「IAM チュートリアル: タグに基づいて AWS リソースにアクセスするアクセス許可を定義する」を参照してください。

アカウント管理での一時的な認証情報の使用

一時的な認証情報のサポート: あり

一時的な認証情報は、AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「IAM ユーザーガイド」の「IAM の一時的な認証情報」および「IAM と連携する AWS のサービス」を参照してください。

アカウント管理のクロスサービスプリンシパル許可

転送アクセスセッション (FAS) のサポート: あり

転送アクセスセッション (FAS) は、AWS のサービスを呼び出すプリンシパルの権限を、AWS のサービスのリクエストと合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

アカウント管理のサービスロール

サービスロールのサポート: なし

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス に許可を委任するロールを作成する」を参照してください。

アカウント管理用のサービスリンクロール

サービスにリンクされたロールのサポート: なし

サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

サービスにリンクされたロールの作成または管理の詳細については、「IAM と提携する AWS のサービス」を参照してください。表の「サービスリンクロール」列に Yes と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。