# API キーとアクセスの管理

サンドボックスの API キーを管理し、ユーザーアクセスを制御します。

[Stripe ダッシュボード](https://dashboard.stripe.com/) を使用して、サンドボックスの API キーを管理し、ユーザーにサンドボックスへのアクセスを付与します。

## API キーを管理する

Stripe は、サンドボックスに関連付けられた API キーを使用して、サンドボックス環境への API リクエストを認証します。キーが含まれていない場合は [無効なリクエストエラー](https://docs.stripe.com/error-handling.md#invalid-request-errors) が発生し、キーが正しくないまたは期限切れの場合は [認証エラー](https://docs.stripe.com/error-handling.md#authentication-errors) が発生します。

サンドボックスの[開発者ダッシュボード](https://dashboard.stripe.com/test/apikeys)を使用して、API キーの表示、取り消し、作成を行います。[API キー](https://docs.stripe.com/keys.md)について説明します。

## アクセスを管理

各サンドボックスへのアクセスは、サンドボックス内での直接の役割の割り当て、またはサンドボックス外で割り当てられた継承された役割によって管理できます。

### サンドボックスへの直接の役割の割り当て

サンドボックスまたは組織サンドボックスの [チーム管理](https://docs.stripe.com/get-started/account/teams.md) を使用して、サンドボックス内でユーザーに直接役割を割り当て、そのサンドボックスへのアクセスを付与できます。他のサンドボックスや本番環境のアカウント・組織でユーザーが持つ役割とは異なる役割をサンドボックスに割り当てることも可能です。

組織サンドボックスへのアクセス権を付与するには、本番組織の役割をユーザーに割り当てる必要があります。

### 継承された役割のアクセスの管理

サンドボックスのアクセスレベルを変更することで、サンドボックスに継承される役割を制御できます。新しいサンドボックスでは、デフォルトで **Private** アクセスレベルが使用されます。組織サンドボックスのアクセスレベルを変更すると、その組織サンドボックス内のすべてのワークスペースサンドボックスが同じアクセスレベルを継承します。

組織サンドボックス内のワークスペースサンドボックスのアクセスレベルを単独で変更することはできません。本番環境で **Admin**、**Super Admin**、または **Sandbox Administrator** の役割を持つチームメンバーは、すべてのサンドボックスでその役割を自動的に継承します。

- **Private** アクセスレベル: チームメンバーはサンドボックスにアクセスするために招待が必要です。継承されるのは **Admin**、**Super Admin**、**サンドボックス管理者** の役割のみです。
- **開発者**のアクセスレベル: **開発者**の役割を持つチームメンバーには、サンドボックスで **Administrator** の役割が付与されます。**Admin**、**Super Admin**、または **Sandbox Administrator** の役割を持つチームメンバーは、既存のアクセス権を保持します。他のチームメンバーは招待する必要があります。
- **すべてのチームメンバー** アクセスレベル: 本番環境の役割を持つチームメンバーはサンドボックスへのアクセスを継承しますが、**サンドボックスユーザー** の役割のみを持つユーザーは対象外です。サンドボックス内でより多くの権限を持つ別の役割を割り当てることも可能です。

### アカウント内のすべてのサンドボックスへのアクセス権をユーザーに付与する

本番アカウントのチームメンバーにサンドボックス管理者の役割を割り当てると、メンバーはそのアカウントに関連付けられているすべてのサンドボックスにアクセスできるようになります。

直接の役割の割り当てによって、本番環境アカウントに接続されたすべてのサンドボックスに特定のチームメンバーを追加するには、次の手順を実行します。:

1. ダッシュボードで本番アカウントに移動します。
2. ダッシュボードで、アカウントピッカー > **設定** をクリックします。
3. **チームとセキュリティ** > **+ メンバーを追加** をクリックして、1 つ以上のメールアドレスを入力します。[サンドボックス管理者のロール](https://docs.stripe.com/get-started/account/teams/roles.md)を選択します。
4. **招待を送信**をクリックします。

本番アカウントに接続されているサンドボックスへの継承アクセス権を付与するには:

1. ダッシュボードで本番アカウントに移動します。
2. ダッシュボードでアカウントピッカー > **Switch to sandbox** > **Manage sandboxes** をクリックします。すべてのチームメンバーにアクセス権を付与する各サンドボックスのオーバーフローメニュー (⋯) をクリックし、**Change access** をクリックします。
3. **開発者**または**すべてのチームメンバー**を選択します。
4. **保存** をクリックします。

> サンドボックスを作成する際に、各サンドボックスのアクセスレベルを更新します。新しいサンドボックスはデフォルトで**プライベート**アクセスレベルを使用するため、ユーザーを個別に招待する必要があります。

### 組織内のすべてのサンドボックスへのアクセス権をユーザーに付与する

本番組織のチームメンバーにサンドボックス管理者の役割を割り当てると、メンバーはその組織に関連付けられているすべての組織サンドボックスと、組織内の本番アカウントに関連付けられているすべてのサンドボックスにアクセスできるようになります。

組織サンドボックスのアクセスレベルを変更する方法:

1. Organizations ダッシュボードでアカウントピッカーをクリックし、**サンドボックスに切り替え** > **サンドボックスを管理**をクリックします。
2. 更新する組織サンドボックスのオーバーフローメニュー (⋯) をクリックし、**アクセス権を変更**をクリックします。
3. アクセスレベルを選択します。
4. **保存** をクリックします。

組織サンドボックス内のすべてのワークスペースサンドボックスは、設定したアクセスレベルを継承します。組織サンドボックス内の個々のワークスペースサンドボックスのアクセスレベルを変更することはできません。

直接の役割の割り当てによって、本番組織に接続されたすべてのサンドボックスおよび組織サンドボックスにチームメンバーを追加するには、次の手順を実行します。:

1. ダッシュボードで本番組織に移動します。
2. ダッシュボードで、アカウントピッカー > **設定** をクリックします。
3. **チームとセキュリティ** > **+ メンバーを追加** をクリックして、1 つ以上のメールアドレスを入力します。[サンドボックス管理者のロール](https://docs.stripe.com/get-started/account/teams/roles.md)を選択します。
4. **招待を送信**をクリックします。

### ユーザーにテスト環境のみのアクセス権限を付与する

チームメンバーにサンドボックスユーザーの役割を付与すると、サンドボックスを作成したり、作成したサンドボックスを削除したりするためのアクセス権が付与されます。

本番環境のアカウントまたは組織の詳細へのアクセスを付与せず、本番環境のアカウントまたは組織に関連付けられたサンドボックス *only* にチームメンバーを招待するには、次の手順を実行します。:

1. ダッシュボードで本番アカウントまたは本番組織に移動します。
2. ダッシュボードで、アカウントピッカー > **設定** をクリックします。
3. **チームとセキュリティ** > **+ メンバーを追加**をクリックして、1 つ以上のメールアドレスを入力します。[サンドボックスユーザーのロール](https://docs.stripe.com/get-started/account/teams/roles.md)を選択します。
4. **招待を送信**をクリックします。

### ユーザーに特定のサンドボックスへのアクセス権限を付与する

特定のサンドボックスまたは組織サンドボックスにチームメンバーを招待するには、次の手順を実行します。:

1. ダッシュボードでサンドボックスまたは組織のサンドボックスに移動します。
2. ダッシュボードで、アカウントピッカー > **設定** をクリックします。
3. **チームとセキュリティ** > **+ メンバーを追加**をクリックして、1 つ以上のメールアドレスを入力し、役割を選択します。
4. **招待を送信**をクリックします。

> 招待されたユーザーが本番の Stripe アカウントまたは組織での役割をまだ持っていない場合、Stripe は自動的にサンドボックスユーザーの役割を割り当てます。ただし、これはそのアカウントまたは組織にメンバーを追加できる役割がある場合に限られます。

### サンドボックスへのユーザーアクセスを取り消す

ユーザーのアクセス許可を取り消すには、以下の手順に従います。

1. ダッシュボードで、そのユーザーにロールが割り当てられている本番アカウント、本番組織、サンドボックス、または組織のサンドボックスに移動します。
2. ダッシュボードで、アカウントピッカー > **設定** をクリックします。
3. **チームとセキュリティ**をクリックして、オーバーフローメニュー (⋯) をクリックします。
4. **メンバーを削除**をクリックして、アクセス権を取り消します。

**開発者**または**すべてのチームメンバー**のアクセスレベルを持つサンドボックスへの継承アクセス権を取り消すには、本番アカウントへのユーザーのアクセス権を取り消すか、サンドボックスのアクセスレベルを変更する必要があります。

## SSO によるサンドボックスへのユーザーアクセスの管理

サンドボックス内のロールを指定するように属性ステートメントを更新することで、[シングルサインオン (SSO)](https://docs.stripe.com/get-started/account/sso/okta.md#assign-stripe-roles) SAML アサーションによるサンドボックスへのアクセスを管理できます。

SSO を使用してサンドボックスにアクセスするには、チームメンバーは以下の条件を満たしている必要があります:

- 本番環境の親でのロール (本番組織または本番アカウント)
- 特定のサンドボックスまたは本番アカウントのサンドボックスへのアクセスを許可するロール

本番アカウントの以下のロールは、サンドボックスへのアクセスを自動的に提供します。

- **管理者とスーパー管理者**: 管理者とスーパー管理者のユーザーは、アカウントまたは組織の下にあるすべてのサンドボックスを作成、管理、表示できます。
- **開発者**: 開発者のユーザーは新しいサンドボックスを作成し、作成したすべてのサンドボックスにアクセスできます。また、**開発者**のアクセスレベルを持つサンドボックスでは、**Administrator** の役割を自動的に継承します。
- **サンドボックス管理者**: サンドボックス管理者のユーザーは、アカウントまたは組織の下にあるすべてのサンドボックスを作成、管理、および表示できます。ただし、このロールでは本番環境の権限は付与されません。
- **サンドボックスユーザー**: サンドボックスユーザーは、サンドボックスのみにアクセスできます。本番環境のアカウントでは権限がありません。開発者と同様に、新しいサンドボックスを作成し、自分で作成したサンドボックスにアクセスできます。

これらのロールの詳細については、[ユーザーロール](https://docs.stripe.com/get-started/account/teams/roles.md)を参照してください。

### SSO の設定例

次の例は、SAML 属性ステートメントを使用してサンドボックスへのアクセスを許可するように ID プロバイダー (IdP) を設定する方法を示しています。

#### SSO を使用して特定のサンドボックスへのアクセスをユーザーに付与します

ユーザーに特定のサンドボックスへのアクセスを許可するには、IdP 管理者が SAML アサーションでサンドボックスアカウント ID を含むロール属性を送信する必要があります。

たとえば、ユーザーに特定のサンドボックスアカウントで `analyst` ロールを付与するには、以下のようにします。

```xml
<Attribute Name="Stripe-Role-acct_SANDBOX_ID">
    <AttributeValue>
        analyst
    </AttributeValue>
</Attribute>
```

#### テスト用アクセスをユーザーに付与します

本番環境のアカウントまたは組織の詳細へのアクセスを付与せず、チームメンバーがサンドボックスを作成し、作成したサンドボックスを削除できるようにするには、本番アカウントで `sandbox_user` の役割を割り当てます:

```xml
<Attribute Name="Stripe-Role-acct_LIVEMODE_ACCOUNT_ID">
    <AttributeValue>
        sandbox_user
    </AttributeValue>
</Attribute>
```

本番アカウントでユーザーに追加の権限を付与する場合は、`sandbox_user` ロールを他のロールと組み合わせることができます。

```xml
<Attribute Name="Stripe-Role-acct_LIVEMODE_ACCOUNT_ID">
    <AttributeValue>
        analyst
    </AttributeValue>
    <AttributeValue>
        sandbox_user
    </AttributeValue>
</Attribute>
```

ユーザーに `sandbox_user` ロールが割り当てられている場合、ユーザーはサンドボックスを作成し、作成したサンドボックスにアクセスできます。個別のサンドボックスごとにロールステートメントを送信する必要はありません。

#### SSO を使用してすべてのサンドボックスへのアクセスをユーザーに付与します。

本番アカウントまたは組織のすべてのサンドボックスへのユーザーアクセスを許可するには、本番アカウントで `sandbox_admin` ロールを割り当てます。

```xml
<Attribute Name="Stripe-Role-acct_LIVEMODE_ACCOUNT_ID">
    <AttributeValue>
        sandbox_admin
    </AttributeValue>
</Attribute>
```

`sandbox_admin` を本番アカウントまたは組織の追加のロールと組み合わせることができます。

```xml
<Attribute Name="Stripe-Role-acct_LIVEMODE_ACCOUNT_ID">
    <AttributeValue>
        analyst
    </AttributeValue>
    <AttributeValue>
        sandbox_admin
    </AttributeValue>
</Attribute>
```

ユーザーに `sandbox_admin` ロールが割り当てられている場合、ユーザーはすべてのサンドボックスにアクセスできます。個別のサンドボックスのロールステートメントを送信する必要はありません。
