

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

# AWS Resource Explorer アイデンティティベースポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、ロール、グループ、ユーザーなどのAWS Identity and Access Management (IAM) プリンシパルには、Resource Explorer リソースを作成または変更するアクセス許可はありません。また、AWS マネジメントコンソール や AWS Command Line Interface (AWS CLI)、AWS API を使用してタスクを実行することもできません。IAM 管理者は、各プリンシパルが指定されたリソースで特定の API オペレーションを実行するのに必要とするアクセス許可をプリンシパルに付与する IAM ポリシーを作成する必要があります。そのうえで、管理者はアクセス許可を必要とする各 IAM プリンシパルにそれらのポリシーをアタッチします。

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ AWS IAM アイデンティティセンター のユーザーとグループ:

  アクセス許可セットを作成します。「AWS IAM アイデンティティセンター ユーザーガイド」の「[シークレットの作成と管理](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ ID プロバイダーを通じて IAM で管理されているユーザー:

  ID フェデレーションのロールを作成する。詳細については、「IAM ユーザーガイド」の「[サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html)」を参照してください。
+ IAM ユーザー:
  + ユーザーが実行できるロールを作成します。手順については、「IAM ユーザーガイド」の「[IAM ユーザー用ロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。
  + (非推奨) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。「IAM ユーザーガイド」の「[ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」の指示に従います。

JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、「*IAM ユーザーガイド*」の「[JSON タブでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)」を参照してください。

**Topics**
+ [ポリシーのベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [Resource Explorer コンソールの使用](#security_iam_id-based-policy-examples-console)
+ [タグに基づいてビューへのアクセスを許可する](#security_iam_id-based-policy-examples-abac-views)
+ [タグベースのビュー作成のためのアクセス許可を付与する](#security_iam_id-based-policy-examples-abac-createview)
+ [ユーザーが自分の権限を確認できるようにする](#security_iam_id-based-policy-examples-view-own-permissions)

## ポリシーのベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID ベースのポリシーは、お使いのアカウントでそのユーザーが Resource Explorer リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、AWS アカウント に追加料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください。
+ **AWS マネージドポリシーを使用して開始し、最小特権の許可に移行する** – ユーザーとワークロードへの許可の付与を開始するには、多くの一般的なユースケースのために許可を付与する *AWS マネージドポリシー*を使用します。これらは AWS アカウント で使用できます。ユースケースに応じた AWS カスタマーマネージドポリシーを定義することで、許可をさらに減らすことをお勧めします。詳細については、「IAM ユーザーガイド」の「[AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」または「[AWS ジョブ機能の管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)」を参照してください。
+ **最小特権を適用する** – IAM ポリシーで許可を設定するときは、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、*最小特権アクセス許可*とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、「*IAM ユーザーガイド*」の「[IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)」を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** – ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定することができます。また、AWS のサービス などの特定の CloudFormation を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、「IAM ユーザーガイド」の [[IAM JSON policy elements: Condition]](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) (IAM JSON ポリシー要素：条件) を参照してください。
+ **IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な許可を確保する** - IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM Access Analyzer は 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーを作成できるようサポートします。詳細については、「IAM ユーザーガイド」の「[IAM Access Analyzer ポリシーの検証](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)」を参照してください。
+ **多要素認証 (MFA) を要求する** – AWS アカウント で IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、「IAM ユーザーガイド」の「[MFA 保護 API アクセスの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)」を参照してください。

IAM でのベストプラクティスの詳細については、「*IAM ユーザーガイド*」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

## Resource Explorer コンソールの使用
<a name="security_iam_id-based-policy-examples-console"></a>

プリンシパルが AWS Resource Explorer コンソール内で検索を行うには、一連の最小限のアクセス許可が必要です。必要最小限のアクセス許可を持つ ID ベースのポリシーを作成しないと、Resource Explorer コンソールはアカウント内のプリンシパルに対して意図したとおりに機能しません。

`AWSResourceExplorerReadOnlyAccess` という名前の AWS マネージドポリシーを使用して、アカウント内の任意のビューを使用した Resource Explorer コンソールでの検索を可能にすることができます。1 つのビューのみで検索する権限を付与するには、[検索用の Resource Explorer ビューへのアクセス許可の付与](manage-views-grant-access.md) および次の 2 つのセクションの例を参照してください。

AWS CLI または AWS API のみを呼び出すプリンシパルには、最小限のコンソール許可を付与する必要はありません。その場合、そのプリンシパルが実行する必要のある API 操作に一致するアクションのみへのアクセス許可を付与することができます。

## タグに基づいてビューへのアクセスを許可する
<a name="security_iam_id-based-policy-examples-abac-views"></a>

この例では、お使いの AWS アカウント 内の Resource Explorer ビューへのアクセス許可をアカウント内のプリンシパルに付与します。そのためには、Resource Explorer で検索できるようにするプリンシパルに IAM ID ベースのポリシーを割り当てます。次の IAM ポリシーの例では、呼び出し元のプリンシパルに添付されている `Search-Group` タグが、リクエストで使用されているビューに添付されている同じタグの値と完全に一致する場合にそのリクエストへのアクセスを許可します。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "resource-explorer-2:GetView",
                "resource-explorer-2:Search"
            ],
            "Resource": "arn:aws:resource-explorer-2:*:*:view/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Search-Group": "${aws:PrincipalTag/Search-Group}"}
            }
        }
    ]
}
```

このポリシーをアカウント内の IAM プリンシパルに割り当てることができます。タグ `Search-Group=A` を持つプリンシパルが Resource Explorer ビューを使用して検索を行うには、ビュー側にも `Search-Group=A` タグが付されている必要があります。そうでない場合、そのプリンシパルはアクセスを拒否されます。条件キー名では大文字と小文字が区別されないため、条件タグキー `Search-Group` は `Search-group` と `search-group` の両方に一致します。詳細については、「*IAM ユーザーガイド*」の「[IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)」を参照してください。

**重要**  
AWS マネジメントコンソール の統合検索結果にリソースを表示するには、そのプリンシパルがアグリゲーターインデックスを含む AWS リージョン のデフォルトビューに対する `GetView` 権限と `Search` 権限の両方を持っている必要があります。これらの権限を付与する最も簡単な方法は、高速セットアップまたは詳細設定を使用して Resource Explorer をオンにする時にビューに添付されるデフォルトのリソースベースの権限をそのまま使用することです。  
このシナリオでは、まず機密性の高いリソースを除外するようにデフォルトビューを設定してから前の例で説明したようにタグベースのアクセスを許可する追加ビューの設定を検討してください。

## タグベースのビュー作成のためのアクセス許可を付与する
<a name="security_iam_id-based-policy-examples-abac-createview"></a>

この例では、インデックスと同じタグが付けられたプリンシパルのみが、インデックスを含む AWS リージョン のビューを作成できるようにします。そのためには、ID ベースの権限を作成して、プリンシパルがビューを検索できるようにします。

これで、ビュー作成のためのアクセス許可を付与する準備ができました。この例のステートメントは、適切なプリンシパルに `Search` アクセス許可を付与するのに用いるのと同じアクセス許可ポリシーに追加できます。アクションは、ビューが関連付けられるオペレーションとインデックスを呼び出すプリンシパルに付けられたタグに基づいて許可または拒否されます。次の IAM ポリシーの例では、呼び出し元のプリンシパルにアタッチされた `Allow-Create-View` タグの値が、ビューが作成されたリージョンのインデックスにアタッチされた同じタグの値と完全に一致しない場合、ビュー作成リクエストを拒否します。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "resource-explorer-2:CreateView",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {"aws:ResourceTag/Allow-Create-View": "${aws:PrincipalTag/Allow-Create-View}"}
            }
        }
    ]
}
```

## ユーザーが自分の権限を確認できるようにする
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティに添付されたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```