SlideShare uma empresa Scribd logo
1 de 81
アクセス制御 Zend_Aclin ServiceLayer
CWE(Common Weakness Enumeration)~脆弱性の種類を識別するための共通の脆弱性タイプの一覧~ http://cwe.mitre.org/top25/ http://www.ipa.go.jp/security/vuln/CWE.html
脆弱性タイプの一覧 1位:XSS 2位:SQLインジェクション 3位:バッファオーバーフロー 4位:CSRF 5位:不正確なアクセス制御 制御方法がさまざまでノウハウが蓄積されにくい? http://cwe.mitre.org/top25/ http://cwe.mitre.org/top25/#CWE-285 http://www.ipa.go.jp/security/vuln/CWE.html
手動アクセス制御の失敗 アクセス制御を個別メソッドに書く限りうっかりミスは防げない。 動作とアクセス制御は分離するべき テストで防げる? ついうっかりが発生するシチュエーションではテスト仕様自体に漏れがある 制御コードを回避? ある画面へのアクセス許可があっても、その画面から対象外のリソースへアクセスするコードが混入すると、回避リスクが発生する 課題
サイバー・ノーガード戦法 対策は 例えば、PHPを避ける サービスレイヤーでアクセス制御
アクセス制御 アクセス制御は脆弱性ランキング5位 コントローラーでアクセス制御 ZF+ OSSで見るアクセス制御の実例 サービス層でリファレンスモニタを使う テーマ
アクセス制御用コンポーネント Zend_Acl(承認) ロールベースアクセス制御(RBAC) Zend_Auth(認証) 認証アダプタを利用した認証 DBアダプタを利用するとユーザーの関連情報も取得できる。 認証の永続化 デフォルトではセッションを利用するが、memcached等の分散ストレージで構成することも可能。ファーム構成でも使える
クィックスタート http://framework.zend.com/manual/ja/learning.multiuser.html Zend Frameworkによるマルチユーザーアプリケーションの構築 ユーザーセッション管理 ユーザー認証 承認システムの構築
Zend_Acl
ルールの設定 定義 セット(リソース・ロール・権限)に対するルールを設定する nullは常に一致する 同じセットへのルールは上書きされる。 同じセットに対して、原則許可、assert付きで拒否というようなルールは作成できない
リソースとロールの継承 継承はクラス継承ではなく、Aclへの登録時に親を指定する。 権限チェックは親を辿ってルールを探索 リソース継承 リソースをツリー状に構成 ロール継承 権限の集約 許可がわかりやすくなる × if super-admin or manager ○ if manager 複数ロールの所有をまとめる Zend_Acl 2.0では、複数ロールに対応するかもしれない
疑似ロールの例(CURRENT_USER) 単一ユーザーアクセス規約 現在アクセスしているユーザーの権限でだけ動作すると仮定できる場合 ログインしたユーザーが持つ複数のロールを、疑似ロール CURRENT_USERでまとめる 特定の許可は与えず、ユーザーが保持しているロールを継承するのみとする。 権限チェックは疑似ロールに対して行う
疑似ロール(CURRENT_USER) 構成 @singleton Current_User $user = Current_User::getInstance(); $roles = $user->getRoles(); $acl->addRole(CURRENT_USER,$roles); チェック $acl->isAllowed(CURRENT_USER, $resource, $priv);
Assertion $acl->allow($role, $res, $priv, $assertion);
Assertionの仕様 http://framework.zend.com/manual/ja/zend.acl.advanced.html#zend.acl.advanced.assertions Zend_Acl_Assert_Interface // @return boolean   functionassert(Zend_Acl $acl,                            Zend_Acl_Role_Interface $role = null,                            Zend_Acl_Resource_Interface $resource = null,                            $privilege = null) リソース自身がassetするassertionという実装も
Assertionの使いどころ banリスト IPアドレス等でアクセス拒否 個別ユーザーの任意アクセス制御 友達まで公開 一時的特権 1日店長とか ASPで試用期間、サポートチケットとか ※Zend_Cacheを使うと簡単
ルール+Assertion $acl->allow($role, $res, $priv, $assert); $assertがtrueならallow、 falseならnull $acl->deny($role, $res, $priv, $assert); $assertがtrueならdeny、 falseならnull $acl->allow(null, null, null, $assert); assertがtrueならallow、falseならdeny Assertに失敗した場合は次のルールを評価する。全null許可は最後に確認され、反転した許可タイプが返される
ルール評価順チートシート 指定リソース 指定ロール 指定権限 全権(null) 親ロール 指定権限 全権(null) 親リソース 指定ロール 指定権限 全権(null) 親ロール 指定権限 全権(null) nullリソース 以下同じ $acl->isAllowed($resource, $role, $privilege) 指定したリソース、ロール、権限に一致するルールを順に検索する。 一致したルール以後は評価されない。 (assertionは一致条件の追加) nullを指定した検索では、nullルールにマッチする 注)間違いがあったら、ご指摘ください。
ルール作成と運用のコツ 複雑化するときはスコープを分けてAclオブジェクト自体を切り替える アクセスブロック、コントローラー、サービス リソースと権限の表を作り、分割と集約で整理する 権限が多すぎる場合は、リソースを分割 リソースが多すぎる場合には、リソースの継承で集約リソースを作成 ロールを組み立てる リソース毎の権限を整理して、機能ロールを作成 機能ロールを集め、集約ロールを作る
リソース、権限の整理
サンプルコード
規約重視の制御例 NewsControllerextends Zend_Controller_Action News_Aclextends Zend_Acl  Newsextends Zend_Db_Table_Abstract 参考)  http://weierophinney.net/matthew/archives/201-Applying-ACLs-to-Models.html http://www.oplabo.jp/article/44
News_Acl <?php class News_Acl extends Zend_Acl {     protected $_name = 'news';     public function __construct() {         //sample         $this->addRole(new Zend_Acl_Role('marketing'), 'staff')              ->addResource(new Zend_Acl_Resource($this->_name))              ->allow('marketing', $this->_name, array('publish', 'archive')); } }
NewsController <?php class NewsController extends Zend_Controller_Action {     // resource name     protected $_name = 'news';     public function init() {         $this->_acl = new News_Acl; } }
NewsController::preDispatch() $action = $this->getRequest()->getActionName(); $auth = Zend_Auth::getInstance(); $role = $this->getRole($auth->getIdentity()); if (! $this->_acl->isAllowed($role, $this->_name, $action)) {     throw new Exception('action not permitted');     //ここでエラーアクションに書き換えてもよい。 } parent::preDispatch();
コントローラーでのアクセス制御 介入ポイント init preDispatch アクションヘルパー プラグイン メリット MVCで動作するかぎり必ず処理される 代替画面などクライアント向けの親切対応ができる
Final Answer? "Keep it simple, stupid“ システムに複雑さを持ち込まない。 アクセス制御は可能な限りシンプルに 必要最小限の複雑さで実装する 規約重視パターンは単純な実装形態の一つ 単純な実装で複雑な仕様を実現しようとすれば破綻する 仕様と実装のバランスで最適な表現方法を見つけることが重要
Zend_Aclの実際 オープンソースで見る
Live Commerce http://www.live-commerce.com/ LoginController Aclを定義してZend_Aclインスタンスを返す セッションにAclごと保存 アクションヘルパーLoginValidator ログインチェック セッションに保存されたAclでコントローラーに対する権限チェック 管理画面用モジュール コントローラー::initで、コントローラーへのアクセス権があるかどうかを必ずチェックしてリダイレクト c::isAllowed グローバル参照可能なチェックメソッド ビューでメニューの表示を調整
Omeka http://omeka.org/ AclはZend_Application用のAclリソースを作成して使う aclを定義したリソースファイルから読み込むOmeka_Aclを準備してリソースとして返す omeka/application/core/acl.php アクションヘルパーacl preDispatchで基本的な権限チェック モジュール+コントローラー = リソース 基底コントローラーにisAllowedメソッドを持ち、重要なアクションの前にチェック リソースに権限セットを割り当て
TomatoCMS http://www.tomatocms.com/ SingletonServices_Acl データベースからルールセットを取得してAclをビルドしている isUserOrRoleAllowed Authプラグイン preDispatchでモジュール・コントローラーへのアクセス権をチェック Services_RuleChecker アクセス許可があればコールバックの結果を返すプロキシ 主にviewヘルパーで使う Block IP assertion BackEnd Access white list
Aclデータの保存 データの使用法にはさまざまなものが考えられるので、 ACL データの保存は、場面に応じて開発者側で考えることになります。 Zend_Acl はシリアライズ可能なので、ACL オブジェクトを PHP の serialize() 関数でシリアライズすることができます。シリアライズした結果を、 ファイルやデータベースあるいはキャッシュなどのお好みの場所に保存することができます。 マニュアルより
Aclデータのロード・保存方法比較 Live Commerce コントローラーに設定 セッションに保存 Omeka Zend_Applicationリソースでacl.phpを読む TomatoCMS データベースから読み込み 任意アクセス制御にはDB読込
いずれも コントローラーでのアクセス制御
コントローラー制御の困り所 プラグイン開発 サービスBの機能を利用するプラグインαは、コントローラーYと同様のアクセス制御を自主的にセット サービスBへのアクセス制御レベルが変更になった 変更を必要とするのはどのライブラリ?? WebサービスサーバーやCLIの実装 サーバーライブラリやCLIからサービスを使いたいというシナリオは増加傾向
複雑なシステムでの制御 コントローラーでのアクセス制御は画面に対するアクセス制御 回避ルートを作らない 境界とポリシーを明確にする サービスはコントローラーを無条件で信用してはいけない。 モデルでの制御が不要になるのは、サービスとコントローラーの関係が固定されているときのみ
安全な仕組みを提供する コントローラーの仕事 クライアント認証を保証する 画面レベルの制御ポリシーを作る モデルへ問い合わせる サービスレイヤー 承認を経ていないアクセスを拒否する クライアントからの問い合わせに答える? Mediatorを入れている場合はMediatorで
Zend_Acl in Service Layer
アクセス制御レイヤーについて調べてみた http://www.infoq.com/articles/ddd-in-practice
サービスレイヤーでアクセス制御 Service Layer(PofEAA) http://www.martinfowler.com/eaaCatalog/serviceLayer.html http://www.slideshare.net/weierophinney/architecting-ajax-applications-with-zend-framework P28~32 参考
Domain Layer Data Source Layer ServiceLayer Presentation Layer ドメインロジックと アプリケーションロジックの境界で、アプリケーション層からの要求を監査する http://www.martinfowler.com/eaaCatalog/serviceLayer.html
サービスレイヤーで実装例 サービスはリソース 渡されたAclに自分のAclを追加定義する 渡されたRoleを元に、権限をチェックして許可がなければ実行しない
サンプルコード
Model_User implements Zend_Acl_Role_Interface       public function getRoleId()     {         if ($this->_aclRoleId == null) {             return 'guest';         }           return $this->_aclRoleId;     }
Service_Posts implements Zend_Acl_Resource_Interface  public function getResourceId()     {         return ‘service_posts';     }
Aclの受け入れと設定  public function setAcl(Zend_Acl $acl)     {         $acl->add($this)             // ...             ->allow('admin', $this, array(                 'register', 'update', 'list', 'delete'));         $this->_acl = $acl;         return $this;     }
Roleの受け入れ(subject設定)  public function setRole(        Zend_Role_Interface $role    ) {         $this->_role = $role;         return $this;     }
メソッドに制御を追加  public function getList()     {         if (!$this->getAcl()->isAllowed(                 $this->getRole(), $this, 'list')         ) {             throw new UnauthorizedException();         }         // ...     }
クライアントコード $service->setAcl($acl); $service->setRole($role); try {   $list = $service->getList(); } catch (UnauthorizedException $e) { 	$this->_redirect(‘unauth’); }
これでサービスレイヤーでのアクセス制御が可能になりました
サンプルソースの課題 サービスがAclを操作している 制御実装がサービスクラスに依存 Aclに対する操作は実際は単純ではない ロールやリソースの継承、2重登録チェック メソッドにアクセス制御コード必須 メソッドに要件以外の内容を追加すべきか すべてのサービスにsetAcl SetRoleを実装すべきか。 SRP単一責任原則は?
そこで、セキュリティといえばIPA ということで、調べてみました http://www.ipa.go.jp/security/awareness/administrator/security-model.pdf
リファレンスモニターを使う Subject 参考 Acl http://www.ipa.go.jp/security/awareness/administrator/security-model.pdf Object リファレンス モニタ
リファレンスモニター アクセスをする側(サブジェクト)から、アクセスされる対象(オブジェクト)へどんなアクセス(リファレンス)ができるのかを明確化する。 「リファレンス・モニター」はすべてのアクセス(リファレンス)を監視・仲介してアクセス制御ポリシーを適用する。 参考
目標 Acl操作はリファレンスモニターの責務 制御に対応するサービス getRulesでルールを提供 許可されていないメソッドを禁止する 制御に対応するサブジェクト getRoleIdでロールを提示 サービスコンテナ オブジェクトの関係を定義して、使えるサービスを保管する
リファクタリング手順 クラスの責務と関係を明確にする Visitorパターン 処理を仲介する Mediatorパターン 構成を管理する コンテナ
「金づちを持つとすべて釘に見える」 http://www.doyouphp.jp/phpdp/phpdp_01-2-2_demerit_of_design_pattern.shtml
サンプルの構成 ,[object Object]
サービスがAclに対する操作を知っている必要がある,[object Object]
interface interface Acceptor { public function accept(visitor $visitor); } interface Visitor  {     public function visit(Acceptor $acceptor); }
interface Object  	extends Acceptor, Zend_Acl_Resource_Interface {} interface Subject  	extends Acceptor, Visitor, Zend_Acl_Role_Interface {} interface Monitor  	extends Visitor {}
Object::accept($monitor) ・子オブジェクトにも伝達 Monitor::visit(Acceptor $acceptor) ・オブジェクトのAclリストを取得 ・サブジェクトのロールを取得 Subject::visit(Acceptor $object) ・オブジェクトに対する処理 Visitorパターン オブジェクト間処理の定型化 SubjectからObjectへの要求 リファレンスモニターの受け入れ 受け入れの再帰処理 メリット 定型処理を集中管理できる クライアントが定型処理を知る必要がない phpにはオーバーロードがないけど? 型チェックでswitchしたら意味がない?
    public function accept(Visitor $visitor) {         switch (true) {             case $visitor instanceof Subject:                 $this->_subject = $subject;                 break;             case $visitor instanceof Monitor:                 $this->_monitor = $visitor;                 break;             default:                 return $this; }         $visitor->visit($this);         return $this; }
public function visit(Acceptor $acceptor) {         switch (true) {             case $acceptor instanceof Object:                 $this->_visitObject($acceptor);                 break;             case $acceptor instanceof Subject:                 $this->_visitSubject($acceptor);                 break; } }
protected function _visitObject(Object $object) {         $resourceID = $object->getResourceId();         if (! $this->_acl->has($object)) {             $this->_acl->addResource($object); }         if ($object instanceofRuleAggregate) {             $rules = $object->getRules(); foreach ($rules as $rule) {                 $type = isset($rule['type']) ? $rule['type'] : Zend_Acl::TYPE_ALLOW;                 $role = isset($rule['role']) ? $rule['role'] : null;                 $resource = isset($rule['resource']) ? $rule['resource'] : $object;                 $privileges = isset($rule['privileges']) ? $rule['privileges'] : null;                 $assert = isset($rule['assert']) && $rule['assert'] instanceof Zend_Acl_Assert_Interface ? $rule['assert'] : null;                 $this->_acl->setRule(Zend_Acl::OP_ADD, $type, $resource, $acceptor, $privileges, $assert); } } if ($object instanceof Zend_Acl_Assert_Interface) {             $this->_acl->allow(null, $object, null, $object); }         return $this; }
Mediatorを通す 手続きをMediatorに任せる クライアントからはサービスがMediatorに見える public function __construct(....... $object->accept($monitor); $subject->accept($monitor); $object->accept($subject);
Mediator  public function __construct(Monitor $monitor                               , Subject $subject                               , Object $object) {         $this->_monitor = $monitor;         $this->_subject = $subject;         $this->_object = $object;         $this->_subject->accept($this->_monitor);         $this->_object->accept($this->_monitor);         $this->_object->accept($this->_subject); }
Mediator  public function __call($method, $args) {         $privilege =  		$this->_object->getPrivilege($method);         if (! $this->_monitor->isAllowed( 		$this->_subject->getRole() 		, $this->_object, $privilege)) {             throw new Exception('method not allowed'); }     }
ContainerからMediatorを取得 ・Zend_ApplicationのBootstrap用リソースで、サービス用コンテナを作成しMediatorを取得します。 ・アクセス制御用コードを分離 ・Aclルールはサービスのプロパティとする
DIコンテナを使う Zend_Applicationのリソースだと、メソッドからのビルドを設定に書き出せません。 yadif等をZend_Applicationのリソースで使ってみるとよいと思います。 手前みそですがブログに書きました http://d.hatena.ne.jp/noopable/20100213/1266050466
コンテナでのサンプル実装(1) $acl = $this->getApplication()->acl; $accessControl = new Foo_Service_AccessControl($acl); $user = new Foo_Model_User; $user->accept($accessControl); $service = new Foo_Service; $service->accept($accessControl);
コンテナでのサンプル実装(2) $acl = $this->getApplication()->acl; $monitor = new Monitor($acl); $mediator =  	new Mediator($monitor, $user, $service);
Controller $container = $this->getInvokeArg(‘bootstrap’); $service = $container->services->bugService; try { 	$service->execFoo(); } catch (PermissionDeniedException $e) {     die($e->getMessage()); }
許可されたメソッドだけを実行      public function __call($methodName, $args) {         if (! $this->_isAllowed($methodName)) {             throw new Exception('method not allowed'); }         if (method_exists($this, '_' . $methodName)) {             return call_user_func_array(array($this, ‘_’ .    		$methodName), $args); }         // etc. etc. etc. }
メソッドと権限をマップして許可 protected function _isAllowed($methodName) {         $privilege = $this->getPrivilege($methodName);         if (!$this->_monitor || !$this->_subject) {             throw new Exception('Acc  is not activated.'); }         return $this->_monitor 		->isAllowed($this->_subject, $this, $privilege); }
基礎設計の完成 コントローラーはサービスを利用する 制御情報はサービスのプロパティ 制御操作・約束事は集中管理 回避できないアクセス制御
サービスレイヤーでのアクセス制御をお勧めするもうひとつの理由はZF 2.0 バージョンアップ対応 アプリ層でのアクセス制御では、アプリ層のV.upで再実装になるリスクが高い。サービスレイヤーなら、そのまま移植できる リファレンスモニターを使う理由 setAcl形式だとZF1.xのZend_Aclを前提とせざるをえない リファレンスモニターなら両バージョンに対応可能
まとめ モデルもAclもコアな部分は 実装対象にベストマッチする アーキテクチャを構成しよう
何か作りませんか? 共同開発者募集中
ご清聴ありがとうございました
参考書籍、サイトなど http://framework.zend.com/manual Patterns of Enterprise Application Architecture エンタープライズアーキテクチャパターン: マーチン・ハウラー著 長瀬嘉秀 監訳 Domain-Driven Design: Tackling Complexity in the Heart of Software :Eric Evans著 http://www.martinfowler.com/eaaCatalog/transactionScript.html ,[object Object],http://cwe.mitre.org/top25/ http://www.ipa.go.jp/ http://www.2ch.net http://weierophinney.net/matthew/archives/201-Applying-ACLs-to-Models.html http://www.slideshare.net/weierophinney/architecting-ajax-applications-with-zend-framework http://www.oplabo.jp/article/44 http://www.live-commerce.com/ http://omeka.org/ http://tomatocms.com/

Mais conteúdo relacionado

Semelhante a Zend_Acl in ServiceLayer

Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例OSSラボ株式会社
 
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせphpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせHiroshi Tokumaru
 
AWS Black Belt Techシリーズ AWS Command Line Interface
AWS Black Belt Techシリーズ  AWS Command Line InterfaceAWS Black Belt Techシリーズ  AWS Command Line Interface
AWS Black Belt Techシリーズ AWS Command Line InterfaceAmazon Web Services Japan
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティYasuo Ohgaki
 
リクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティリクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティRecruit Technologies
 
データ可視化とコスト管理 Slideshare
データ可視化とコスト管理 Slideshareデータ可視化とコスト管理 Slideshare
データ可視化とコスト管理 SlideshareYu Nishimura
 
実践 自動復旧
実践 自動復旧実践 自動復旧
実践 自動復旧gree_tech
 
初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談Makoto Haruyama
 
20180918_ops on azure-main
20180918_ops on azure-main20180918_ops on azure-main
20180918_ops on azure-mainJun Misawa
 
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥Insight Technology, Inc.
 
Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Akio Katayama
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理junichi anno
 
Serverless Frameworkを本番環境に投入するために
Serverless Frameworkを本番環境に投入するためにServerless Frameworkを本番環境に投入するために
Serverless Frameworkを本番環境に投入するためにSachirou Inoue
 
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-SORACOM, INC
 
AWS WAF を使いこなそう Security JAWS #13
AWS WAF を使いこなそう Security JAWS #13AWS WAF を使いこなそう Security JAWS #13
AWS WAF を使いこなそう Security JAWS #13YOJI WATANABE
 

Semelhante a Zend_Acl in ServiceLayer (20)

Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例Zabbix監視運用業務の自動化事例
Zabbix監視運用業務の自動化事例
 
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせphpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
 
AWS Black Belt Techシリーズ AWS Command Line Interface
AWS Black Belt Techシリーズ  AWS Command Line InterfaceAWS Black Belt Techシリーズ  AWS Command Line Interface
AWS Black Belt Techシリーズ AWS Command Line Interface
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティ
 
リクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティリクルートの利用事例から考える AWSの各サービスとセキュリティ
リクルートの利用事例から考える AWSの各サービスとセキュリティ
 
データ可視化とコスト管理 Slideshare
データ可視化とコスト管理 Slideshareデータ可視化とコスト管理 Slideshare
データ可視化とコスト管理 Slideshare
 
実践 自動復旧
実践 自動復旧実践 自動復旧
実践 自動復旧
 
初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談
 
20180918_ops on azure-main
20180918_ops on azure-main20180918_ops on azure-main
20180918_ops on azure-main
 
AWS as code_and_test
AWS as code_and_testAWS as code_and_test
AWS as code_and_test
 
はじめてのAWS CLI
はじめてのAWS CLIはじめてのAWS CLI
はじめてのAWS CLI
 
150726cmdbuild jtf2015
150726cmdbuild jtf2015150726cmdbuild jtf2015
150726cmdbuild jtf2015
 
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう  by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
 
Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
 
Serverless Frameworkを本番環境に投入するために
Serverless Frameworkを本番環境に投入するためにServerless Frameworkを本番環境に投入するために
Serverless Frameworkを本番環境に投入するために
 
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
 
AWS WAF を使いこなそう Security JAWS #13
AWS WAF を使いこなそう Security JAWS #13AWS WAF を使いこなそう Security JAWS #13
AWS WAF を使いこなそう Security JAWS #13
 

Último

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Último (10)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Zend_Acl in ServiceLayer