この記事は Google Cloud Japan Customer Engineer Advent Calendar 2020 の 21日目の記事です。 みなさん、こんにちは、Google Cloud の柳原 (@yanashin18618)です。 2020 年の今年は Java が公開されてから 25 周年というアニバーサリー・イヤーで盛り上がりを見せた年でした。Java に馴染みのない人も 今年は Java というキーワードを目にしたりしたのではないでしょうか。 私はと言えば、日夜 Google Cloud 上で Java アプリケーションをどう組み上げていくかと想いを馳せた1年でした。 TL;DRこれから Google Cloud 上で Java アプリケーションを作っていこうとしている方のために参考になるような話を綴っていきます。 特に開発フレームワークの Spring が提供して
Using OpenID Connect (OIDC) and Keycloak to centralize authorization Learn how to enable bearer token authorization in your Quarkus application using Keycloak Authorization Services for secure access to protected resources. The quarkus-keycloak-authorization extension relies on quarkus-oidc. It includes a policy enforcer that regulates access to secured resources. Access is governed by permissions
Quarkusとは、KubernetesネイティブのJavaフレームワークです。Quarkusを使用することで、コンテナに最適化されたJavaアプリケーションを開発できます。ここではQuarkusとKeycloakを組み合わせた堅牢化方法をご紹介します(図2)。 前回は各サービスにそれぞれIstioのAuthorizationPolicyを作成し導入することで、各サービスにJWTによるアクセス制御を追加しました。Quarkusのkeycloak-authorizationエクステンションを使うと、各サービスのアクセス制御ロジックをKeycloakの認可サービスに集約することができます。 各サービスのアクセス制御ロジックを、各サービスで個別に持つべきか、認可サーバ側で集約して持つべきかについては一長一短があり、またシステムの要件に大きく依存する部分があるため、一概にどちらが良いとは言えません
【2019年10月版】Quarkus の REST API を KeyCloak で SSO するデモを docker-compose で動かしてみた。JavaJWTSSOKeycloakQuarkus Quarkus + KeyCloakの SSO 連携が簡単らしい。 Quarkus は JBoss 御謹製のK8sネイティブなマイクロサービスが素早く作れるフレームワークでございまして GraalVM でのビルドが簡単にできるらしいのでちょっと注目をしておりましたところ、以下のような記事を見つけました。 Quarkus の採用は慎重に検討する Quarkus は RedHat 社が開発しており、同社製または同社がスポンサーの OSS 製品(KeyCloak、Hibernate)との連携を前提としている。 あらそうなの?KeyCloakの代替になる SSO の OSS はほぼないのでKeyC
# KeyCloak keycloak.realm={レルム名} keycloak.auth-server-url={keycloak URL} keycloak.resource={リソース名} keycloak.credentials.secret={シークレット値} @KeycloakConfiguration public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { @Autowired public KeycloakClientRequestFactory keycloakClientRequestFactory; @bean public KeycloakSpringBootConfigResolver KeycloakConfigResolver() { return new K
※この投稿は米国時間 2020 年 8 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。 Java アプリケーションの Docker イメージをビルドする際に、開発者の間では Jib の人気が高まっています。Docker の知識がない方でも、Jib を使えばどんな Java アプリもスペース効率の良い最適化されたコンテナ イメージに変えることができます。Jib は、再現可能な宣言型の方法でコンテナ イメージをビルドし、編集、コンパイル、テストからなる極めて短い開発サイクルを実施して、コンテナのベスト プラクティスを透過的に適用します。Docker をインストールする必要はなく、スクリプトのような Dockerfile を記述する必要もありません。 さらに良いことに、Jib はますます幅広い Java 開発エコシステムをサポートするようになりました。昨年 Ji
はじめに 最近、AWS Lambdaの勉強をしているのですがログまわりの機能が非常に便利だと感じました。私がAWS Lambdaのログ周りで調査した内容をまとめます。 Lambda使いたいけどCloudWatchあまり使ったことない方にぜひ読んでもらいたいです。言語は私はPythonとNode.jsを使えないのでJavaで試しています。 ロギングライブラリに関して まずはロギングライブラリに関してです。 Javaに関する話になっていしまいますが、LambdaLoggerかlog4jを利用することでCloudWatchログに書き込むことが可能です。CloudWatchであれば過去ログの検索が簡単できたり、特定の文字列を含むログが出力された場合に通知することができるためかなり便利です。バックアップを自分で作成する必要もありません。 CloudWatchに書き込んだログを確認する まずはLamb
AWS Lambda は、Lambda 関数を自動的にモニタリングし、Amazon CloudWatch にログエントリを送信します。Lambda 関数には、関数のインスタンスごとに CloudWatch Logs ロググループとログストリームが用意されています。Lambda のランタイム環境は、各呼び出しの詳細や、関数のコードからのその他の出力をログストリームに送信します。CloudWatch Logs の詳細については、「Lambda で CloudWatch Logs ログを使用する」を参照してください。 関数コードからログを出力するには、「java.lang.System」のメソッドを使用するか、stdout または stderr に書き込む任意のログ記録モジュールを使用できます。 ログを返す関数の作成 関数コードからログを出力するには、java.lang.System のメソッド
アプリのログ出力を slf4j + logback の構成にするときに、依存モジュールのログ出力もslf4jに集める必要があります。 Javaには複数のロガーがあっていろいろとわかりにくい状況になっていますが、以下の記事などで状況や対処方法がまとめられています。 javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ http://www.bunkei-programmer.net/entry/2012/10/20/javaのロガーが多すぎて訳が解らないので整理して Javaのロガーの種類が多すぎ、一元化したい - Qiita http://qiita.com/k_ui/items/7ed7d9f9c15dc9bcc26f 大体はこれらの記事の内容でいいのですが、jul-to-slf4jについてだけは導入方法などが不足しているようだったので、そこ
[Amazon Cognito] Facebook / Google / Amazon だけじゃない!独自の認証システムも利用可能になりました! オリジナルの認証システムも利用可能に! 本日、Amazon Cognito で Developer Authenticated Identities がサポートされました。 Enhanced Identity Support for Amazon Cognito | Amazon Web Services Blog Amazon Cognito : Announcing Developer Authenticated Identities | AWS Developer Blog - Mobile 今までは Amazon / Facebook / Google しか使えませんでしたが、それ以外のサービスプロパイダも使えるようになりました!既存の認
こんにちは。LeapMotionが届いてる人がチラホラいるようですね。正直うらやましい。こむろです 今回は、AWS SDK for Javaを利用して、S3へのファイル転送の機能を作る際に、一箇所ハマった箇所があるので忘れないように記事にしておきます。 S3とは Amazon S3とは、Amazonが提供するクラウドストレージサービスです。バケットと呼ばれるプライベートな領域にどんなファイルでも格納することができ、さらに数テラバイトに及ぶデータ容量でも容易に格納・取得が可能です。当然、認証により守られているので、許可されていないとファイルは見ることはできません。詳しくはこちら JavaでS3へファイルの格納・取得を行う JavaなどのプログラムからAmazon S3にファイルをアップロード、ダウンロードする操作は簡単です。SDKに含まれているAmazonS3Clientというクラスを利用し
よく訓練されたアップル信者、都元です。前回(昨日)はAWSのクレデンシャルとプリンシパルを整理し、「開発運用スタッフ」が利用するクレデンシャルについてプラクティスを整理しました。今回はAWS上で稼働する「システム」が利用するクレデンシャルについてのプラクティスを整理しましょう。 システムが利用するクレデンシャル システムが利用するとはどういうことかといいますと、要するに「ユーザがアップロードしたファイルをS3に保存する」だとか「S3バケットに保存されたファイル一覧を取得して表示する」だとか、そういう操作をするシステムを作ることです。このようなシステムでは、APIキーを利用しますね。 AWSのAPIキーには、これもまた大きく分けて2種類があります。 long lived credentials (永続キー) short lived session credentials (一時キー) 皆さん
はじめに 好物はインフラとフロントエンドのかじわらゆたかです。 Talendで作ったジョブをAWS サービスを使う時にローカル開発とEC2で動かす時に同一のジョブ定義で動かしたいけど、 その時クレデンシャルの管理はこんなふうになるよねって話です。 AWS の各種サービスを用いる認証情報はEC2で動くアプリケーションならばEC2に付与しましょう。 ローカル開発環境では、環境変数なりシステムプロパティなりに、自分の持っているIAMのクレデンシャルを突っ込んでおきましょう。 これはのAWSで開発している人間からすれば耳タコなお話です。 IAMによるAWS権限管理運用ベストプラクティス (2) フルスクラッチで作っている時は上記の方針でやれば問題ないのですが、さまざまなケースでIAM Roleが非対応だったり、 対応されていても、それローカル環境でどうやってつかうのって実装だったりすることがあった
#翻訳 https://www.scalyr.com/blog/the-10-commandments-of-logging/ CC BY 4.0 @Brice Figureau 1.自分でログの書き出しをしない printfをつかったり、ログエントリを自分でファイルに書き出したり、ログローテションを自分でやったりしてはいけない。運用担当者にお願いして、標準ライブラリやシステムAPIコールを使うようにしよう。そうすれば、実行中のアプリケーションが他のシステムコンポーネントと適切に連携して、特別なシステム設定なしに適切な場所またはネットワークサービスにログを記録できるようになる。 ロギングライブラリを使いたければ、特にJavaの世界にはLog4j, JCL, slf4j, logbackなど多くのものが存在する。私はslf4jとlogbackを組み合わせて使うのが好きだ。とてもパワフルで、設
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く