Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行した手順。
- Amazon Keyspaces のアイデンティティベースポリシーの例 - Amazon Keyspaces (Apache Cassandra 向け)
- GitHub - aws-samples/aws-sigv4-auth-cassandra-java-driver-examples: Coding Example for aws-sigv4-auth-cassandra-java-driver-plugin, a SigV4 authentication plugin for use with DataStax java driver and Apache Cassandra.
前提
- JDK がインストールされていること
- Apache Maven 3.6.3 以降がインストールされていること
- EC2 に KeySpaces へのアクセス権を持った IAM ロールがアタッチされていること(以下は例)
- IAM 権限 "AmazonKeyspacesFullAccess" をアタッチする
- 信頼関係
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
準備手順
KeySpaces にテーブルを作成してデータを登録する
マネコンの Amazon KeySpaces の CQL エディタから以下の CQL を実行する
-キースペースを作成する
create keyspace acme with replication = {'class': 'SimpleStrategy', 'replication_factor' : 1 };
- テーブルを作成する
create table acme.orders ( customer_id text, order_timestamp timestamp, order_id uuid, primary key (customer_id, order_timestamp)) with clustering order by (order_timestamp desc);
- レコードを挿入する
insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid()); insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid()); insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid()); insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid());
サンプル Java アプリをビルドする
- ソースコードを入手してビルドする
$ git clone https://github.com/aws/aws-sigv4-auth-cassandra-java-driver-plugin.git
$ cd aws-sigv4-auth-cassandra-java-driver-examples
$ mvn package
- cassandra_truststore.jks をダウンロードする
$ pwd /home/ec2-user/github/aws-sigv4-auth-cassandra-java-driver-examples $ cd target $ curl -L -O https://github.com/aws-samples/aws-sigv4-auth-cassandra-java-driver-examples/raw/master/cassandra_truststore.jks
実行手順
- サンプル Java アプリを実行する。
$ pwd /home/ec2-user/github/aws-sigv4-auth-cassandra-java-driver-examples/target $ java -Djavax.net.ssl.trustStore=./cassandra_truststore.jks \ -Djavax.net.ssl.trustStorePassword=amazon -jar \ aws-sigv4-auth-cassandra-java-driver-examples-1.0.3.jar \ ap-northeast-1 cassandra.ap-northeast-1.amazonaws.com 1234 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Date Order Id 2023-09-20T04:52:17.311Z 4a0b1d82-dfad-4a2c-bc19-bd3d59579b3c 2023-09-20T04:52:05.949Z f735fabf-7cf9-490c-8db1-cd3dc09a8b78 2023-09-20T04:51:57.898Z ce466fec-505f-48d2-b116-9f75cf412e9a 2023-09-20T04:51:21.194Z 5da3d365-cf2b-474c-92b6-acdc431aa90e