私たちはAmazon S3を全面的に使用し、メンテナンスを容易にするために、適切なバケット権限などを持つ別個のIAMユーザを設定します。これのように私たちのRuby /シナトラアプリの初期化セクションでユーザー:AWS-SDKのデフォルトの資格情報を無効にする
# MyS3UserIAM
Aws.config.update({
:region => 'us-east-1',
:credentials => Aws::Credentials.new(ENV['AWS_S3_KEY'],ENV['AWS_S3_SECRET'])
})
我々はS3の資格情報を再指定するたびにすることなく、すべての我々のコードを通じてオブジェクトをインスタンス化することができますので、これは、素晴らしい作品。
問題が発生しました。ここでは、わずか2回のコールでAmazon DynamoDBを使用する必要があるサイトのサブセクションに小さなルーチンを追加しました。私たちは、DynamoDBのテーブルへのアクセス権を持つ別のIAMを設定して、私たちは日常の中にためなどのオブジェクトを作成している:
# MyDynamoUserIAM
mydynamodb = Aws::DynamoDB::Client.new(
access_key_id: ENV['AWS_DYNAMO_KEY'],
secret_access_key: ENV['AWS_DYNAMO_SECRET']
)
問題であり、我々はmydynamodbを使用して、任意のクエリを作成しようとすると、 MyS3UserIAMには、DynamoDBテーブルに対する権限がありませんというアクセスエラーが発生します。
(エラーメッセージは、エラー文字列に、当社のMyDynamoUserIAM ARNを与えるが、IAM名としてMyS3UserIAMを表示するので実際には、エラーは、紛らわしいです!)
私が指定していると考えているだろうAws::Object
インスタンシエーション中の資格情報はAws.config
設定を上書きしますが、そうではないと思われます。これを回避する方法はありますか?