[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
2022-01-25 08:39:28
質問
を呼び出すと、エラーが発生します。
assume role
メソッドを使用します。を実行する権限がないと表示されます。
sts:AsumeRole
リソース上で
xxx
.
次のようにしました。
- S3バケットにアクセスするためのロールを作成しました。
- ポリシーシミュレータでテストしてみたところ、問題なく動作した
- 新しいグループを作成し、その中に新しいポリシーを作成しました。 は、すべてのリソースで、すべてのstsアクションを有効にします。
- ポリシーシミュレータで、stsがロールを引き受けるかどうか、テストしてみました。 ステップ1で作成したロールのARNを指定すると、正常に動作します。
- 新しいユーザーを作成し、ステップ3で作成したグループに入れました。
- 新しいユーザーの認証情報を使って、新しい認証情報を取得しようとしたところ sts asume roleを使用していますが、「私のユーザは、このロールを使用できません」というエラーが表示されます。 sts:AssumeRole を実行する権限があります。
私は何を間違えているのでしょうか?
グループ内のポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "some-large-id",
"Effect": "Allow",
"Action": [
"sts:*"
],
"Resource": [
"*"
]
}
]
}
ロールでのポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "another-large-id",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my-bucket-name/*"
]
}
]
}
そして最後にこのように呼び出します。
let policy = {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "new-custom-id",
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": ["arn:aws:s3:::my-bucket-name/*"]
}
]
};
let params = {
DurationSeconds: 3600,
ExternalId: 'some-value',
Policy: JSON.stringify(policy),
RoleArn: "arn:aws:iam::NUMBER:role/ROLE-NAME", //Cheked, role is the same that step one
RoleSessionName: this.makeNewSessionId()
};
let sts = new AWS.STS({ apiVersion: '2012-08-10' });
sts.assumeRole(params, (err, data) => {
if(err) console.log(err);
else console.log(data);
});
解決方法は?
ステップ1で作成したロールに信頼関係を設定する、というステップが抜けています。ユーザーがどのような権限を持っていても、信頼関係が設定されていなければ、STSはリクエストを拒否します。
IAMロールのトラブルシューティング がどのように機能するかを説明します。
関連
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】ブロックスコープの宣言は、ストリクトモード以外ではまだサポートされていません。
-
[解決済み】Mongooseで配列の値を更新する方法
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] express は `body-parser deprecated undefined extended` としてエラーを投げます。
-
[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?
-
[解決済み] npm not able to find a fileに関連するエラーは何が原因でしょうか?node_modules サブフォルダ内にコンテンツがありません。なぜでしょうか?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] package.jsonの各依存関係を最新バージョンに更新する方法は?
-
[解決済み] Node.jsで終了する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み】mongoError: トポロジーが破壊されました
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】Mongooseで配列の値を更新する方法
-
webpack ENOENTソリューションの起動
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] EventEmitter のメモリリークの可能性が検出された
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。