LoginSignup
4
1

UiPath Studio - AmazonWebServicesパッケージを使ってS3バケットにアクセス

Last updated at Posted at 2023-08-18

はじめに

AWSの普及に伴い、システム開発・運用の様々な場面で開発や運用が発生しているかと思います。
伴いRPA化したい要望も多くあるかと思いますが、当記事ではUiPathが用意しているAmazonWebServicesパッケージを使ってS3バケットにアクセスするごく簡単なサンプルワークフローをご紹介します。

前提事項

AWS側の設定詳細については、当記事で詳細を触れず、以下が事前に準備されていることを想定しています。

  • S3バケットが作成されていること。
  • IAMユーザー発行およびそれに紐づいてアクセスキー作成がされており、アクセスキーIDシークレットキー を控えてあること
  • 上記IAMユーザーに該当S3バケットアクセスに必要な権限ポリシーが付与されていること

AmazonWebServicesパッケージの利用

当記事で利用しているパッケージバージョン:UiPath.AmazonWebServices.Activities 2.5.0

今回実装する流れ:S3バケットに保存されているファイルを端末ローカルにダウンロードする
image.png
↓ ↓ ↓
image.png

0. ワークフロー全体像

AmazonWebServicesパッケージは、既定ではStudioに入っていないため、Studioの「パッケージを管理」メニューより予めインストールしておきます。
image.png

ワークフロー全体像は以下のようになっており、「1. 各設定の準備」と「2. S3バケットにアクセス」部分に分けて紹介します。
image.png

1. 各設定の準備

複数代入 アクティビティを用いて必要な情報を変数に設定しておきます。
image.png

変数 説明 備考
アクセスキーID IAMユーザーのアクセスキーに紐づいたアクセスキーID
シークレットキー IAMユーザーのアクセスキーに紐づいたシークレットキー
シークレットキー_SecureStr シークレットキー変数を用いたSecureString型オブジェクト (※)型変換の記述は表の下に記載
AWSリージョン 該当のリージョンを設定 AWSリージョン一覧
バケット名 アクセスしたいS3バケット名
ダウンロードフォルダー ダウンロード先フォルダー

(※) サンプル:String型のSecretKey変数を元に、SecureString型に変換

(New System.Net.NetworkCredential("", シークレットキー)).SecurePassword

2. S3バケットにアクセス

アマゾンウェブサービススコープ

「アマゾンウェブサービススコープ」アクティビティで認証情報を設定し、スコープ内で各アクティビティを実装していきます。
image.png

バケットを取得

S3バケットにアクセスするため、バケット名を元にAWSS3Bucketオブジェクトを取得します。
image.png

繰り返し(バケットの各オブジェクト)

S3バケット内の複数ファイルをアクセスするため、「繰り返し(バケットの各オブジェクト)」アクティビティを利用します。
対象のS3オブジェクト1つずつを s3Objectインスタンスとして処理をします
image.png

繰り返し内:オブジェクトを取得

「オブジェクトを取得」アクティビティで、各s3ObjectのKeyName(名前)を元にAWSS3Bucketオブジェクトを取得します。
image.png

繰り返し内:オブジェクトファイルにダウンロード

「オブジェクトファイルにダウンロード」アクティビティで、s3Objectとして保存されている対象オブジェクトをダウンロードし、端末ローカルにファイルとして保存します
なお、ファイル名はS3に保存されたファイル名(s3ObjectのKeyname)とします。
image.png

参考

各アクティビティに必要なパーミッションは以下のリンクで参照できます
https://docs.uipath.com/ja/activities/other/latest/it-automation/aws-permissions-list

当記事ではS3バケットにフルアクセスのある FullS3Access ポリシーを該当IAMユーザーに付与していますが、実運用では必要に応じて権限を適宜制限ください。

おまけ:Orchestratorのアセット機能でよりスマートに

上述では、個人が簡単に始められるようシンプルなワークフローをご紹介してきました。
ただし、複数人でのRPA利用や企業内の展開などにおいては、認証情報をより安全に共有しやすくしたいニーズがあるかと思います。Orchestrator環境があれば、その一ソリューションとしてOrchestratorのアセット機能を利用して実現することができます。

Orchestratorアセットの設定

当記事では、Cloud版Orchestratorのアセット機能を使っていきます。また、Studioが対象Orchestratorに接続されていることを前提としています。

Orchestratorの対象フォルダーから、[アセット]メニューを選択して、[アセットを追加] します
image.png

種類=Credentialを選択することで、認証情報「パスワード」の値が安全にSecureStringとして保存されます。ユーザー名=アクセスキーID、そしてパスワード=シークレットキーを設定します。
image.png
image.png

ワークフローから認証情報を取得

上述でご紹介したワークフローに「認証情報を取得」アクティビティを加えて、準備されたアセットを取得し、S3にアクセスします。
「アクセスキーID」と「シークレットキー_SecureStr」変数を代入で設定するのではなく、「認証情報を取得」アクティビティの出力として設定します。なお、アセットが用意されているOrchestratorの対象フォルダーにStudioが接続されている必要があります。
image.png

ワークフローの最終形
image.png

この実装によって認証情報そのものを各ワークフローで扱う必要がなくなり、より安全に複数人での開発でも展開しやすなります。

おわりに

いかがでしたでしょうか?
今回は簡単なアクセス方法をご紹介しましたが、AmazonWebServicesパッケージでは、以下のように豊富なアクティビティが用意されているので、必要であれば確認してみてください。
https://docs.uipath.com/ja/activities/other/latest/it-automation/aws-activities

UiPathのSaaSクラウドを利用されている方は、当記事で紹介した方法に加え Integration ServiceAmazon Web Services コネクタ で管理されるコネクションも使用できるようになりました。
Integration Serviceを利用すれば、認証されたコネクタを複数ロボット・ユーザーに共有するなどより楽にRPA実装をすることができます。

RPAを上手に活用してより生産的な生活をしていきましょう!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1