私はAWS PHP SDKを使用していましたが、IAMの役割と権限以外のすべてを手に入れているようです。AWS IAM簡単な英語の役割とポリシー
誰かがIAMの役割がどのように動作するか、最も単純な用語で私に説明し、次の用語を説明していただけます:StatementId
、Action
、ARN
そして最も重要なPrincipal
簡単な英語で?
あなたに私の混乱の原因を与えるために、私は最近直面した問題です。私は、リソースのメソッドがラムダ関数をトリガするAPIゲートウェイを作成しようとしています。
$lambdaClient->addPermission([
'FunctionName' => 'fn name',
'StatementId' => 'ManagerInvokeAccess',
'Action' => 'lambda:InvokeFunction',
'Principal' => 'apigateway.amazonaws.com',
]);
しかし、いくつかの他のスレッドの誰かが同じため、以下を使用することが提案中:
const permissions = {
FunctionName: target,
StatementId: 'api-gateway-execute',
Action: 'lambda:InvokeFunction',
Principal: 'apigateway.amazonaws.com',
SourceArn: 'arn:aws:execute-api:' + nconf.get('awsRegion') + ':' + nconf.get('awsAccountId') + ':' + nconf.get('apiGatewayId') + '/*'};
最初のものはない来るどのようにコピーするまでは、このビットを貼り付け働いていませんでしたアカウント情報は含まれていますが、2番目のアカウント情報はありますか?また、全く別のものを貼り付けた別の人が、himのために同じ作業をする人もいます。最後の例( "Fn :: Join"のような)にはたくさんのキーがあります。どこから始めるべきか、それが何であるかは分かりません。
どのようにこれらのポリシーを見つけるか?私たちはどこかからコピーして貼り付けますか?それを確認する方法はありますか?その場合、常にどのようなキーを指定する必要があります。
私は今は完全に混乱しているので、助けていただければ幸いです。
ありがとう、それは少し物事を明確にしています。ラムダ関数を作成するときに、S3バケット(バケット)に完全にアクセスしたいと思っています。そのためのポリシーを作成するにはどうすればいいですか(ポリシーをコピーして貼り付ける場所、つまり完全に理解した状態で最初から作成するにはどうすればいいですか)ありがとう! – supersan
S3については、いくつかの概念を理解する必要があります。 S3へのアクセスは、IAMポリシー、バケットポリシー、およびアクセス制御リストによって許可することができます。ラムダを使用してS3バケットにアクセスする場合は、S3へのアクセスを許可するだけでなく、ラムダがポリシーを持つIAMロールを引き受けることを許可するIAMポリシーが必要です。これを行うには、ポリシーに加えてロールで、信頼関係を追加する必要があります。信頼関係は、ロールを作成するときにウィザードでラムダを選択すると自動的に作成されます。 – Ashan