

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

# アクセスコントロールの属性
<a name="attributesforaccesscontrol"></a>

[**アクセスコントロールの属性**] は、IAM Identity Center コンソールのページ名で、リソースへのアクセスコントロールをするためのポリシーで使用するユーザー属性を選択します。ユーザーの ID ソースの既存の属性 AWS に基づいて、 のワークロードにユーザーを割り当てることができます。

例えば、部署名に基づいて S3 バケットへのアクセスを割り当てたいとします。**[Attributes for access control]** (アクセスコントロールの属性)では、属性ベースのアクセスコントロール (ABAC) で使用する **Department** (部署) ユーザー属性を選択します。IAM Identity Center 権限セットでは、**部署 **属性が、S3 バケットに割り当てた部門タグと一致した場合にのみ、ユーザーにアクセスを許可するポリシーを書き込みます。IAM Identity Center は、アクセスされるアカウントに、ユーザーの部門属性を渡します。そして、その属性は、ポリシーに基づいてアクセスを決定するために使用されます。ABAC の詳細については、「[属性ベースのアクセスコントロール](abac.md)」を参照してください。

## 開始方法
<a name="abac-getting-started"></a>

アクセスコントロールの属性設定をどのように始めるかは、使用している ID ソースによって異なります。選択した ID ソースにかかわらず、属性を選択した後、アクセス権限セットのポリシーを作成または編集する必要があります。これらのポリシーは、ユーザーの ID に AWS リソースへのアクセスを許可する必要があります。

### IAM Identity Center を ID ソースとして使用する際の属性を選択する
<a name="abac-getting-started-sso"></a>

IAM Identity Center を ID ソースとして設定する場合、まずユーザーを追加し、その属性を設定します。次に、**[Attributes for access control]** (アクセスコントロールの属性) ページに移動して、ポリシーで使用する属性を選択します。最後に、**AWS アカウント**のページに移動して、ABAC の属性を使用するための権限セットを作成または編集します。

### を ID ソース AWS Managed Microsoft AD として使用する場合の属性の選択
<a name="abac-getting-started-ms-ad"></a>

を ID ソース AWS Managed Microsoft AD として IAM アイデンティティセンターを設定するときは、まず Active Directory の一連の属性を IAM アイデンティティセンターのユーザー属性にマッピングします。次に、**[Attributes for access control]** (アクセスコントロールの属性) のページに移動します。次に、アクティブディレクトリからマッピングされた既存の SSO 属性のセットに基づいて、ABAC 構成で使用する属性を選択します。最後に、アクセス権限セットに含まれるアクセスコントロール属性を用いて、 AWS リソースへのアクセスをユーザー ID に許可する ABAC ルールを作成します。IAM Identity Center のユーザー属性と AWS Managed Microsoft AD ディレクトリのユーザー属性のデフォルトマッピングのリストについては、「」を参照してください[IAM アイデンティティセンターと Microsoft AD の間のデフォルトのマッピング](attributemappingsconcept.md#defaultattributemappings)。

### 外部 ID プロバイダーを ID ソースとして使用する際の属性を選択する
<a name="abac-getting-started-idp"></a>

外部 ID プロバイダー (IdP) を ID ソースとして IAM Identity Center を構成する場合、ABAC で属性を使用する方法は 2 つあります。
+ SAML アサーションを通じて属性を送信するように IdP を設定することができます。この場合、IAM Identity Center はポリシー評価のために IdP から属性名と値を渡します。
**注記**  
SAML アサーションの属性は、**[Attributes for access control] **(アクセスコントロールの属性) ページには表示されません。これらの属性を事前に把握しておき、ポリシー作成時にアクセスコントロールルールに追加する必要があります。属性の外部 IdP を信頼する場合、ユーザーが AWS アカウントにフェデレーションする際に、これらの属性が常に渡されます。同じ属性が SAML および SCIM を通じて IAM アイデンティティセンターに来る場合は、SCIM の属性値がアクセスコントロールの決定において優先されます。
+ どの属性を使用するかは、IAM Identity Center コンソールの [**アクセスコントロールの属性**] ページから設定できます。ここで選択した属性値は、アサーションを介して IdP から取得された値と一致する属性値に置き換えます。SCIM の使用状況に応じて、次のことを考慮してください。
  + SCIM を使用している場合、IdP は属性値を自動的に IAM Identity Center に同期させます。アクセスコントロールに必要な追加の属性は、SCIM 属性のリストに存在しない可能性があります。その場合、IdP の IT 管理者と協力して、必要な `https://aws.amazon.com/SAML/Attributes/AccessControl:` プレフィックスを使用した SAML アサーションを介して IAM Identity Center にそのような属性を送信することを検討してください。SAML アサーションの送信のために IdP 側でアクセス制御用のユーザー属性を構成する方法については、お使いの IdP の [IAM アイデンティティセンターの ID ソースに関するチュートリアル](tutorials.md) を確認してください。
  + SCIM を使用しない場合は、IAM Identity Center を ID ソースとして使用する場合と同様に、手動でユーザーを追加し、属性を設定する必要があります。次に、**[Attributes for access control]** (アクセスコントロールの属性) ページに移動して、ポリシーで使用する属性を選択します。

IAM Identity Center のユーザー属性から外部 IdP のユーザー属性まで、サポートされている属性の完全なリストについては、「[サポートされている外部 ID プロバイダ属性](attributemappingsconcept.md#supportedidpattributes)」を参照してください。

IAM Identity Center で ABAC を使い始めるには、以下のトピックを参照してください。

**Topics**
+ [開始方法](#abac-getting-started)
+ [アクセスコントロールのための属性の有効化と設定](configure-abac.md)
+ [IAM Identity Center を使用して ABAC の権限セットを作成する](configure-abac-policies.md)

# アクセスコントロールのための属性の有効化と設定
<a name="configure-abac"></a>

属性ベースのアクセス制御 (ABAC) を使用するには、まず IAM アイデンティティセンターコンソールの**[設定]** ページまたは [IAM アイデンティティセンター API](https://docs.aws.amazon.com//singlesignon/latest/APIReference/API_CreateInstanceAccessControlAttributeConfiguration.html) で有効にする必要があります。ID ソースに関係なく、ABAC で使用するように ID ストアのユーザー属性をいつでも設定できます。コンソールで、**[設定]** ページの **[アクセスコントロールの属性]** タブに移動することで、これを行うことができます。ID ソースとして外部 ID プロバイダー (IdP) を使用する場合は、SAML アサーションで外部 IdP から属性を受信するオプションもあります。この場合、目的の属性を送信するように外部 IdP を設定する必要があります。SAML アサーションの属性が IAM アイデンティティセンターの ABAC 属性としても定義されている場合、IAM アイデンティティセンターは、 AWS アカウントへのサインイン時の[セッションタグ](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_session-tags.html)としてアイデンティティストアから値を送信します。

**注記**  
IAM Identity Center コンソールの [**アクセスコントロールの属性**] ページから、外部 IdP によって構成および送信された属性を表示することはできません。外部 IdP からの SAML アサーションでアクセスコントロール属性を渡している場合は、ユーザーがフェデレーションを行う際に、その属性が AWS アカウント に直接送信されます。その属性は IAM Identity Center でのマッピングには利用できません。

**Topics**
+ [アクセスコントロールの属性を有効にする](enable-abac.md)
+ [アクセス制御用の属性を選択する](configure-abac-attributes.md)
+ [アクセスコントロールの属性を無効にする](disable-abac.md)

# アクセスコントロールの属性を有効にする
<a name="enable-abac"></a>

IAM Identity Center コンソールを使用してアクセス属性 (ABAC) コントロール機能を有効にする場合は、次の手順で行います。

**注記**  
既存の権限セットがあり、IAM Identity Center インスタンスで ABAC を有効にする予定の場合、まず、追加のセキュリティ制限により、最初に `iam:UpdateAssumeRolePolicy` ポリシーを設定する必要があります。アカウントにアクセス権限セットを作成していない場合は、これらの追加のセキュリティ制限は必要ありません。  
IAM Identity Center インスタンスが 2020 年 12 月より前に作成され、そのインスタンスで ABAC を有効にする場合は、アカウントでアクセス許可セットが作成されているかどうかにかかわらず、IAM Identity Center 管理ロールに関連付けられた`iam:UpdateAssumeRolePolicy`ポリシーが必要です。

**アクセスコントロールの属性を有効にする**

1. [IAM Identity Center コンソール](https://console.aws.amazon.com/singlesignon) を開きます。

1. **[設定]** を選択します。

1. [**設定**] ページで、[**アクセス制御情報の属性**] ボックスを探し、[**有効化**] を選択します。次の手順に進み、設定します。

# アクセス制御用の属性を選択する
<a name="configure-abac-attributes"></a>

ABAC 構成向け属性設定は、次の手順で行います。

**IAM Identity Center コンソールを使って属性を選択するには**

1. [IAM Identity Center コンソール](https://console.aws.amazon.com/singlesignon) を開きます。

1. **[設定]** を選択します。

1. **[設定]** ページで **[アクセス制御用の属性]** タブを選択し、**[属性の管理]** を選択します。

1. **[アクセス許可の属性]** ページで、**[属性を追加]** を選択し、**[キー]** と **[値]** の詳細を入力します。ここでは、ID ソースから送られてくる属性を、IAM Identity Center がセッションタグとして渡す属性にマッピングします。  
![\[IAM アイデンティティセンターコンソールのキー値の詳細。\]](http://docs.aws.amazon.com/ja_jp/singlesignon/latest/userguide/images/abac_key_value.png)

   **キー**は、ポリシーで使用するための属性に付ける名前を表します。これは任意の名前で構いませんが、アクセスコントロールのために作成したポリシーでは、その正確な名前を指定する必要があります。例えば、Okta (外部の IdP) を ID ソースとして使用しており、組織のコストセンターのデータをセッションタグとして渡す必要があるとします。**キー**には、**CostCenter** のような名前をキーネームとして入力します。重要なのは、ここでどのような名前を設定しても、`aws:PrincipalTag 条件キー` (つまり `"ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"`) で、全く同じ名前を設定する必要があります。
**注記**  
キーには単一値の属性 (例: **Manager**) を使用します。IAM Identity Center は ABAC の複数値属性 (例: **Manager, IT Systems**) をサポートしていません。

   **値**は、設定された ID ソースから取得される属性のコンテンツを表します。ここでは、[IAM アイデンティティセンターと外部 ID プロバイダーディレクトリ間の属性マッピング](attributemappingsconcept.md) にリストされている適切な ID ソーステーブルから任意の値を入力できます。例えば、上記の例では、サポートされている IdP 属性リストを確認して最も近い属性である **`${path:enterprise.costCenter}`** を特定し、それを**値**フィールドに入力します。上記のスクリーンショットを参考にしてください。SAML アサーションで属性を渡すオプションを使用しない限り、このリスト以外の外部 IdP の属性値を ABAC に使用することはできません。

1. **[Save changes]** (変更の保存) をクリックします。

アクセスコントロール属性のマッピング設定できたので、ABAC 設定プロセスを完了させます。そのためには、ABAC ルールを作成し、権限セットやリソースベースのポリシーに追加します。これは、ユーザー ID に AWS リソースへのアクセスを許可するために必要です。詳細については、「[IAM Identity Center を使用して ABAC の権限セットを作成する](configure-abac-policies.md)」を参照してください。

# アクセスコントロールの属性を無効にする
<a name="disable-abac"></a>

次の手順で、ABAC 機能を無効にし、設定されていた属性マッピングをすべて削除します。

**アクセスコントロールの属性を無効にする**

1. [IAM Identity Center コンソール](https://console.aws.amazon.com/singlesignon) を開きます。

1. [**設定**] を選択します。

1. **[設定]** ページで **[アクセス制御用の属性]** タブを選択し、**[属性の管理]** を選択します。

1. **[アクセスコントロールの属性の管理]** ページで、**[無効]** を選択します。

1. **[アクセスコントロールの属性を無効にする]** ダイアログウィンドウで情報を確認し、準備ができたら **DISABLE** と入力し、**[確認]** を選択します。
**重要**  
このステップでは、外部 ID ソースプロバイダーからの SAML アサーションに属性が存在するかどうかに関係なく、 AWS アカウント へのフェデレーション時にすべての属性を削除し、アクセスコントロールの属性の使用を停止します。

# IAM Identity Center を使用して ABAC の権限セットを作成する
<a name="configure-abac-policies"></a>

設定した属性値に基づいて AWS リソースにアクセスできるユーザーを決定するアクセス権限ポリシーを作成できます。ABAC を有効にして属性を指定すると、IAM Identity Center は認証されたユーザーの属性値を IAM に渡し、ポリシー評価で使用できるようにします。

## aws:PrincipalTag 条件キー
<a name="abac-principaltag"></a>

アクセスコントロール属性は、アクセスコントロールルールを作成するための `aws:PrincipalTag` 条件キーを使って、アクセス権限セットに使用することができます。例えば、次のポリシーでは、組織内のすべてのリソースに、それぞれのコストセンターをタグ付けすることができます。また、開発者にコストセンターのリソースへのアクセスを許可する単一のアクセス権限セットを使用することもできます。これで、開発者が SSO とコストセンター属性を使ってアカウントに連携すると、それぞれのコストセンターのリソースにしかアクセスできなくなります。チームがプロジェクトに開発者やリソースを追加しても、リソースに正しいコストセンターをタグ付けするだけで済みます。次に、デベロッパーが AWS フェデレーションするときに、セッションでコストセンター情報を渡します AWS アカウント。その結果、組織がコストセンターに新しいリソースや開発者を追加しても、開発者は権限の更新を必要とせずに、コストセンターに整合したリソースを管理することができます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"
                }
            }
        }
    ]
}
```

------

詳細については、「*IAM ユーザーガイド*」の[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) および「[EC2: 一致するプリンシパルタグとリソースタグに基づいてインスタンスを開始または停止する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_ec2-start-stop-match-tags.html)」を参照してください。

ポリシーの条件に無効な属性が含まれている場合、ポリシーの条件は失敗し、アクセスは拒否されます。詳細については、「[ユーザーが外部の ID プロバイダーを使用してサインインしようとすると、「予期しないエラーが発生しました」というエラーが発生します](troubleshooting.md#issue8)」を参照してください。