PowerShell AWS Toolインストールと S3接続

PowerShell S3Bucket取得

PowerShellAWS Toolsモジュールをインストールして S3に接続する方法です。

このPowerShellモジュールを使うと AWS CLIをインストールする必要がありません。

PowerShell 上で、 AWS.Toolsをインストールする

下↓のコマンドを使ってAWS.Toolsをインストールします。

Install-Module -Name AWS.Tools.Installer

実行すると下記↓のように「信頼できないリポジトリ」とでます。

You are installing the modules from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from
'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"):

「Y」を入力します。

再インストールしたい場合は、 Install-Moduleに -Forceをつけます。

-Forceオプションは、インストールされたモジュールを一旦削除して再度インストールしてくれます。

NetCore, Tools.S3をインストール

Install-Module -name AWSPowerShell.NetCore
Install-AWSToolsModule AWS.Tools.S3 -CleanUp

Install-AWSToolsModuleを実行したら下↓が表示されます。

Are you sure you want to perform this action?
Performing the operation "Install-AWSToolsModule" on target "AWS Tools version 4.1.125.0".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): 

「Y」を入力後、 インストール完了です。

Installing module AWS.Tools.S3 version 4.1.125.0が入りました。

Credential (AccessKey, SecretKey)の設定

Set-AWSCredential -AccessKey xxxxxxxxx -SecretKey xxxxxxxx -StoreAs default

設定後、 Credentialを確認する場合下記コマンドを使う。

Get-AWSCredential -ListProfileDetail
Credentialを確認する
Credentialを確認

デフォルトのリージョンの設定

下記コマンドで、デフォルトのリージョンを設定します。

Initialize-AWSDefaults -Region ap-northeast-1 -StoredCredentials xxxx

PowerShell S3コマンド

下記コマンドで、Bucket名一覧が取得できます。

Get-S3Bucket -StoredCredentials default

Credentialをdefault設定しているので、 [-StoredCredentials default] ナシても大丈夫です。

下記↓のコマンドで、S3オブジェクトを確認できます。

 Get-S3Object -BucketName Bucket名

Python boto3 Amazon SES メール送信

Python boto3 SES メール送信

AWSAmazon SES を利用し、 Python + boto3 から メール送信する コード例です。

Amazon SES は、ユーザー自身の Eメールアドレスとドメインを使用して Eメールを送受信サービスを提供しています。

SES画面左側の「Verified identities」を選択し 「Create identity」で自分のメールアドレスを登録します。

[Create identity]で設定完了すると Amazon Web Services から自分宛てにメールが届きます。 本文のリンクをクリッククリックし verification します。

上記の設定完了後、 Python + boto3 から SES送信 をテストします。

SES送信 コード例

import boto3
ses = boto3.Session(region_name="ap-northeast-1",
    aws_access_key_id="アクセスキー",
    aws_secret_access_key="シークレット").client("ses")
res = ses.send_email(
    Destination={'ToAddresses': ["宛先自分のメールアドレス"] },
    Message={
        'Body': { 
            'Html': { 'Charset': "UTF-8",'Data': "<html><body>HTMLの場合の本文</body></html>"},
            'Text': { 'Charset': "UTF-8",'Data': "テキストの場合の本文"}
            },
        'Subject': { 'Charset': "UTF-8",'Data': "タイトル"}
        },
    Source="自分のメールアドレス"
    )
print(res)

自分の gmailだと 下のような 「このメールはなりすましの可能性があります。」とでてしまいます。 ドメインあれば DNSでこのメッセージは回避できます

「このメールはなりすましの可能性があります。」メッセージが表示される

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED