GS2-Guard GS2-Deploy/CDK リファレンス
エンティティ
Namespace
ネームスペース
ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。
GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。
そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 128文字 | ネームスペース名 | |
description | string | ~ 1024文字 | 説明文 | ||
blockingPolicy | BlockingPolicyModel | ✓ | ブロッキングポリシー |
GetAttr
型 | 説明 | |
---|---|---|
Item | Namespace | 作成したネームスペース |
実装例
Type: GS2::Guard::Namespace
Properties:
Name: namespace1
Description: null
BlockingPolicy:
PassServices:
- account
DefaultRestriction: Deny
IpAddresses:
- 192.168.0.0/24
IpAddressRestriction: Allow
from gs2_cdk import Stack, core, guard
class SampleStack(Stack):
def __init__(self):
super().__init__()
guard.Namespace(
stack=self,
name="namespace-0001",
blocking_policy=guard.BlockingPolicyModel(
pass_services=['account'],,
default_restriction='Deny',,
options=guard.BlockingPolicyModelOptions(
locations=,
location_restriction=,
anonymous_ip_restriction=,
hosting_provider_ip_restriction=,
reputation_ip_restriction=,
ip_addresses=['192.168.0.0/24'],
ip_address_restriction='Allow',
)
),
)
print(SampleStack().yaml()) # Generate Template
class SampleStack extends \Gs2Cdk\Core\Model\Stack
{
function __construct() {
parent::__construct();
new \Gs2Cdk\Guard\Model\Namespace_(
stack: $this,
name: "namespace-0001",
blockingPolicy: (new \Gs2Cdk\Guard\Model\BlockingPolicyModel(
passServices: ['account']
defaultRestriction: "Deny",
options: new \Gs2Cdk\Guard\Model\Options\BlockingPolicyModelOptions(
locations: ,
locationRestriction: ,
anonymousIpRestriction: ,
hostingProviderIpRestriction: ,
reputationIpRestriction: ,
ipAddresses: ['192.168.0.0/24'],
ipAddressRestriction: "Allow"
)
)
);
}
}
print((new SampleStack())->yaml()); // Generate Template
class SampleStack extends io.gs2.cdk.core.model.Stack
{
public SampleStack() {
super();
new io.gs2.cdk.guard.model.Namespace(
this,
"namespace-0001",
new io.gs2.cdk.guard.model.BlockingPolicyModel(
passServices = ['account'],
defaultRestriction = "Deny",,
new io.gs2.cdk.guard.model.options.BlockingPolicyModelOptions(
,
,
,
,
,
['192.168.0.0/24'],
"Allow"
)
)
);
}
}
System.out.println(new SampleStack().yaml()); // Generate Template
import core from "@/gs2cdk/core";
import guard from "@/gs2cdk/guard";
class SampleStack extends core.Stack
{
public constructor() {
super();
new guard.model.Namespace(
this,
"namespace-0001",
new guard.model.BlockingPolicyModel(
['account'],
"Deny",
,
,
,
,
,,
{
,
,
,
,
,
['192.168.0.0/24'],
"Allow"
}
)
);
}
}
console.log(new SampleStack().yaml()); // Generate Template
public class SampleStack : Gs2Cdk.Core.Model.Stack
{
public SampleStack() {
new Gs2Cdk.Gs2Guard.Model.Namespace(
this,
"namespace-0001",
new Gs2Cdk.Gs2Guard.Model.BlockingPolicyModel(
PassServices = ['account'],
DefaultRestriction = "Deny",,
new Gs2Cdk.Gs2Guard.Model.Options.BlockingPolicyModelOptions {
Locations = ,
LocationRestriction = ,
AnonymousIpRestriction = ,
HostingProviderIpRestriction = ,
ReputationIpRestriction = ,
IpAddresses = ['192.168.0.0/24'],
IpAddressRestriction = "Allow"
}
)
);
}
}
Debug.Log(new SampleStack().Yaml()); // Generate Template
BlockingPolicyModel
ブロッキングポリシー
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
passServices | List<string> | ✓ | 1 ~ 100 items | アクセス可能なGS2サービスのリスト | |
defaultRestriction | enum { “Allow”, “Deny” } | ✓ | “Allow” | ~ 128文字 | 制限の方針 |
locationDetection | enum { “Enable”, “Disable” } | ✓ | “Disable” | ~ 128文字 | アクセス元国検知 |
locations | List<string> | {locationDetection} == “Enable” | 1 ~ 100 items | アクセスを検知する国リスト | |
locationRestriction | enum { “Allow”, “Deny” } | {locationDetection} == “Enable” | ~ 128文字 | 国リストにマッチした際の挙動 | |
anonymousIpDetection | enum { “Enable”, “Disable” } | ✓ | “Disable” | ~ 128文字 | 匿名IPサービス検知 |
anonymousIpRestriction | enum { “Deny” } | {anonymousIpDetection} == “Enable” | “Deny” | ~ 128文字 | 匿名IPサービス検知時の挙動 |
hostingProviderIpDetection | enum { “Enable”, “Disable” } | ✓ | “Disable” | ~ 128文字 | ホスティングサービス検知 |
hostingProviderIpRestriction | enum { “Deny” } | {hostingProviderIpDetection} == “Enable” | “Deny” | ~ 128文字 | ホスティングサービス検知時の挙動 |
reputationIpDetection | enum { “Enable”, “Disable” } | ✓ | “Disable” | ~ 128文字 | 悪意のあるアクセス元IP検知 |
reputationIpRestriction | enum { “Deny” } | {reputationIpDetection} == “Enable” | “Deny” | ~ 128文字 | 悪意のあるアクセス元IP検知時の挙動 |
ipAddressesDetection | enum { “Enable”, “Disable” } | ✓ | “Disable” | ~ 128文字 | アクセス元IP検知 |
ipAddresses | List<string> | {ipAddressesDetection} == “Enable” | ~ 100 items | IPリスト | |
ipAddressRestriction | enum { “Allow”, “Deny” } | {ipAddressesDetection} == “Enable” | ~ 128文字 | IPアドレスリストにマッチした際の挙動 |
defaultRestriction に指定する列挙型の定義
定義 | 説明 |
---|---|
Allow | 条件に一致しないアクセスを許可 |
Deny | 条件に一致しないアクセスを拒否 |
locationDetection に指定する列挙型の定義
定義 | 説明 |
---|---|
Enable | 有効 |
Disable | 無効 |
locationRestriction に指定する列挙型の定義
定義 | 説明 |
---|---|
Allow | アクセスを許可 |
Deny | アクセスを拒否 |
anonymousIpDetection に指定する列挙型の定義
定義 | 説明 |
---|---|
Enable | 有効 |
Disable | 無効 |
anonymousIpRestriction に指定する列挙型の定義
定義 | 説明 |
---|---|
Deny | アクセスを拒否 |
hostingProviderIpDetection に指定する列挙型の定義
定義 | 説明 |
---|---|
Enable | 有効 |
Disable | 無効 |
hostingProviderIpRestriction に指定する列挙型の定義
定義 | 説明 |
---|---|
Deny | アクセスを拒否 |
reputationIpDetection に指定する列挙型の定義
定義 | 説明 |
---|---|
Enable | 有効 |
Disable | 無効 |
reputationIpRestriction に指定する列挙型の定義
定義 | 説明 |
---|---|
Deny | アクセスを拒否 |
ipAddressesDetection に指定する列挙型の定義
定義 | 説明 |
---|---|
Enable | 有効 |
Disable | 無効 |
ipAddressRestriction に指定する列挙型の定義
定義 | 説明 |
---|---|
Allow | アクセスを許可 |
Deny | アクセスを拒否 |