

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

# AWS PrivateLink
<a name="oauth-privatelink"></a>

AWS サインイン OAuth APIs AWS PrivateLink をサポートしているため、パブリックインターネットを経由することなく、Amazon VPC 内から OAuth 認可エンドポイントにアクセスできます。 AWS サインイン用の VPC エンドポイントを設定して、OAuth 認可トラフィックを AWS ネットワークに保持できます。

必要に応じて AWS 、サインイン OAuth に VPC エンドポイントを使用します。
+ OAuth 認可用のプライベート接続は、Amazon VPC 内または接続されたオンプレミスネットワーク内から流れます。
+ VPC エンドポイントポリシーを使用した OAuth 認可のネットワークレベルのアクセスコントロール。
+ パブリックインターネットアクセスのないネットワーク分離環境での OAuth 認可。

## サインイン OAuth APIs にアクセスするための VPC エンドポイントの設定
<a name="oauth-privatelink-configuring"></a>

AWS サインイン OAuth は、パブリックインターネットにアクセスしないネットワークでの運用をサポートしています。 AWS サインイン用に VPC エンドポイントを設定すると、アプリケーションと AWS サインイン間の OAuth 認可トラフィックは PrivateLink を介して AWS ルーティングされます。OAuth 認可フロー自体にはインターネット接続は必要ありません。

必要な VPC エンドポイントは、認可モデルによって異なります。を独自のリージョン情報`region`に置き換えます。

### インタラクティブ動画
<a name="oauth-privatelink-interactive"></a>

インタラクティブ OAuth 認可 (ブラウザベース) には、次の VPC エンドポイントが必要です。
+ `com.amazonaws.{{region}}.signin`
+ `com.amazonaws.{{region}}.signin-v2`

### 非インタラクティブモード
<a name="oauth-privatelink-non-interactive"></a>

非インタラクティブ OAuth 認可 (SigV4 を使用したクライアント認証情報付与) には、次の VPC エンドポイントが必要です。
+ `com.amazonaws.{{region}}.signin-v2`

## アクセスコントロールの実装
<a name="oauth-privatelink-access-controls"></a>

VPC エンドポイントポリシーを使用して、プライベートネットワークを介して AWS サインイン OAuth APIs の使用を許可する ID とアカウントを制御できます。VPC エンドポイントポリシーは、OAuth オペレーション全体で評価されます。

### 信頼できる ID
<a name="oauth-privatelink-trusted-identities"></a>

 AWS サインイン VPC エンドポイントには、各認証フェーズに適した特定のサインインアクションと条件キーを持つポリシーが必要です。
+ **事前認証フェーズ** – ユーザーの ID が確立される前に評価されます。プリンシパル情報はまだわからないため、リソースベースの条件キーのみを使用できます。
  + サポートされているアクション: `signin:Authenticate`、 `signin:CreateOAuth2PublicClient`
  + サポートされている条件キー: `aws:ResourceOrgId`または `aws:ResourceAccount`
**注記**  
`signin:CreateOAuth2PublicClient` は `signin:OAuthRedirectUri`条件キーのみをサポートします。このアクションでは、他の条件キーはサポートされていません。
+ **認証後フェーズ** – サインインサービスがセッション認証情報を発行すると、認証後に評価されます。完全なプリンシパル情報を利用できます。
  + サポートされているアクション: `signin:AuthorizeOAuth2Access`、`signin:CreateOAuth2Token`、`signin:IntrospectOAuth2Token`、 `signin:RevokeOAuth2Token`
  + サポートされている条件キー: `aws:PrincipalOrgId`または `aws:PrincipalAccount`、`aws:ResourceOrgId`、 `aws:ResourceAccount`

#### 例: 組織内のアカウントに対してのみ OAuth オペレーションを許可する
<a name="oauth-privatelink-example-org"></a>

この AWS サインイン VPC エンドポイントポリシーは、アクション固有のステートメントを使用して、認証前フェーズと認証後フェーズの両方で、指定された AWS 組織内の AWS アカウントの OAuth オペレーションを許可します。

```
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "PreAuthOrgRestriction",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "signin:Authenticate",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceOrgID": "o-xxxxxxxxxxx"
        }
      }
    },
    {
      "Sid": "PostAuthOrgRestriction",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "signin:AuthorizeOAuth2Access",
        "signin:CreateOAuth2Token"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgId": "o-xxxxxxxxxxx"
        }
      }
    }
  ]
}
```

#### 例: 特定のアカウントに対してのみ OAuth オペレーションを許可する
<a name="oauth-privatelink-example-accounts"></a>

この AWS サインイン VPC エンドポイントポリシーは、アクション固有のステートメントを使用して、認証前フェーズと認証後フェーズの両方で、特定の AWS アカウントのリストの OAuth オペレーションを許可します。

```
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "PreAuthAccountRestriction",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "signin:Authenticate",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": [ "123456789012", "210987654321" ]
        }
      }
    },
    {
      "Sid": "PostAuthAccountRestriction",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "signin:AuthorizeOAuth2Access",
        "signin:CreateOAuth2Token"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalAccount": [ "123456789012", "210987654321" ]
        }
      }
    }
  ]
}
```

#### 例: 動的クライアント登録を localhost リダイレクト URIs
<a name="oauth-privatelink-example-dcr"></a>

この AWS サインイン VPC エンドポイントポリシーは、動的クライアント登録を localhost リダイレクト URIs。

```
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "AllowDCRLocalhostOnly",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "signin:CreateOAuth2PublicClient",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "signin:OAuthRedirectUri": "http://localhost:*"
        }
      }
    }
  ]
}
```

#### 例: 特定のアカウントのトークンイントロスペクションと取り消しを許可する
<a name="oauth-privatelink-example-introspect-revoke"></a>

この AWS サインイン VPC エンドポイントポリシーは、特定の AWS アカウントのトークンイントロスペクションと取り消しを許可します。

```
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "AllowIntrospectAndRevoke",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "signin:IntrospectOAuth2Token",
        "signin:RevokeOAuth2Token"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalAccount": [ "123456789012", "210987654321" ]
        }
      }
    }
  ]
}
```

### 予想されるネットワーク
<a name="oauth-privatelink-expected-networks"></a>

ネットワークベースのアクセスコントロールについては、「」を参照してください[リソースベースのポリシーとリソースコントロールポリシーによるコンソールアクセスの制御](console-access-control.md)。

### アカウントサインアップフローの制御
<a name="oauth-privatelink-signup"></a>

`signin:CreateAccount` アクションは、 AWS アカウントサインアップフローがプライベートネットワーク内からアクセス可能かどうかを制御します。このアクションは匿名プリンシパル (サインアップ中にアカウントが存在しない) を使用し、条件キーをサポートしていません。

 AWS サインイン VPC エンドポイントポリシー形式を使用する場合、明示的に許可しない限り、サインアップフローは暗黙的な拒否によってブロックされます。組織でプライベートネットワーク内からのアカウントサインアップが必要な場合は、サインイン VPC AWS エンドポイントポリシーに次のステートメントを追加します。

```
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "AllowAccountSignup",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "signin:CreateAccount",
      "Resource": "*"
    }
  ]
}
```