GS2-Guard GS2-Deploy/CDK リファレンス

エンティティ

Namespace

ネームスペース

ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。
GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。

そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。

必須デフォルト値の制限説明
namestring~ 128文字ネームスペース名
descriptionstring~ 1024文字説明文
blockingPolicyBlockingPolicyModelブロッキングポリシー

GetAttr

説明
ItemNamespace作成したネームスペース

実装例

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

ブロッキングポリシー

必須デフォルト値の制限説明
passServicesList<string>1 ~ 100 itemsアクセス可能なGS2サービスのリスト
defaultRestrictionenum {
    “Allow”,
    “Deny”
}
“Allow”~ 128文字制限の方針
locationDetectionenum {
    “Enable”,
    “Disable”
}
“Disable”~ 128文字アクセス元国検知
locationsList<string>{locationDetection} == “Enable”1 ~ 100 itemsアクセスを検知する国リスト
locationRestrictionenum {
    “Allow”,
    “Deny”
}
{locationDetection} == “Enable”~ 128文字国リストにマッチした際の挙動
anonymousIpDetectionenum {
    “Enable”,
    “Disable”
}
“Disable”~ 128文字匿名IPサービス検知
anonymousIpRestrictionenum {
    “Deny”
}
{anonymousIpDetection} == “Enable”“Deny”~ 128文字匿名IPサービス検知時の挙動
hostingProviderIpDetectionenum {
    “Enable”,
    “Disable”
}
“Disable”~ 128文字ホスティングサービス検知
hostingProviderIpRestrictionenum {
    “Deny”
}
{hostingProviderIpDetection} == “Enable”“Deny”~ 128文字ホスティングサービス検知時の挙動
reputationIpDetectionenum {
    “Enable”,
    “Disable”
}
“Disable”~ 128文字悪意のあるアクセス元IP検知
reputationIpRestrictionenum {
    “Deny”
}
{reputationIpDetection} == “Enable”“Deny”~ 128文字悪意のあるアクセス元IP検知時の挙動
ipAddressesDetectionenum {
    “Enable”,
    “Disable”
}
“Disable”~ 128文字アクセス元IP検知
ipAddressesList<string>{ipAddressesDetection} == “Enable”~ 100 itemsIPリスト
ipAddressRestrictionenum {
    “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アクセスを拒否